DuskTestCase.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. namespace Tests;
  3. use Dcat\Admin\Models\Administrator;
  4. use Laravel\Dusk\Browser;
  5. use Laravel\Dusk\TestCase as BaseTestCase;
  6. use Facebook\WebDriver\Chrome\ChromeOptions;
  7. use Facebook\WebDriver\Remote\RemoteWebDriver;
  8. use Facebook\WebDriver\Remote\DesiredCapabilities;
  9. abstract class DuskTestCase extends BaseTestCase
  10. {
  11. use CreatesApplication,
  12. BasicTestCase;
  13. /**
  14. * @var Administrator
  15. */
  16. protected $user;
  17. protected $login = true;
  18. public function login(Browser $browser)
  19. {
  20. $browser->loginAs($this->getUser(), 'admin');
  21. }
  22. /**
  23. * Prepare for Dusk test execution.
  24. *
  25. * @beforeClass
  26. * @return void
  27. */
  28. public static function prepare()
  29. {
  30. static::startChromeDriver();
  31. }
  32. /**
  33. * Create the RemoteWebDriver instance.
  34. *
  35. * @return \Facebook\WebDriver\Remote\RemoteWebDriver
  36. */
  37. protected function driver()
  38. {
  39. $options = (new ChromeOptions)->addArguments([
  40. '--disable-gpu',
  41. '--headless',
  42. '--window-size=1920,1080',
  43. ]);
  44. return RemoteWebDriver::create(
  45. 'http://localhost:9515',
  46. DesiredCapabilities::chrome()->setCapability(
  47. ChromeOptions::CAPABILITY,
  48. $options
  49. )
  50. );
  51. }
  52. }