DuskTestCase.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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', DesiredCapabilities::chrome()->setCapability(
  46. ChromeOptions::CAPABILITY, $options
  47. )
  48. );
  49. }
  50. }