| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- <?php
- namespace Tests;
- use Dcat\Admin\Models\Administrator;
- use Facebook\WebDriver\Chrome\ChromeOptions;
- use Facebook\WebDriver\Remote\DesiredCapabilities;
- use Facebook\WebDriver\Remote\RemoteWebDriver;
- use Laravel\Dusk\Browser;
- use Laravel\Dusk\TestCase as BaseTestCase;
- abstract class DuskTestCase extends BaseTestCase
- {
- use CreatesApplication, BrowserExtension, InteractsWithDatabase;
- /**
- * @var Administrator
- */
- protected $user;
- /**
- * @var bool
- */
- protected $login = true;
- public function login(Browser $browser)
- {
- $browser->loginAs($this->getUser(), 'admin');
- }
- public function setUp(): void
- {
- parent::setUp();
- $this->extendBrowser();
- $this->boot();
- }
- public function tearDown(): void
- {
- $this->destory();
- parent::tearDown();
- }
- /**
- * Prepare for Dusk test execution.
- *
- * @beforeClass
- * @return void
- */
- public static function prepare()
- {
- static::startChromeDriver();
- }
- /**
- * @param \Facebook\WebDriver\Remote\RemoteWebDriver $driver
- *
- * @return \Laravel\Dusk\Browser
- */
- protected function newBrowser($driver)
- {
- $browser = parent::newBrowser($driver)->resize(1440, 1080);
- if ($this->login) {
- $this->login($browser);
- }
- return $browser;
- }
- /**
- * Create the RemoteWebDriver instance.
- *
- * @return \Facebook\WebDriver\Remote\RemoteWebDriver
- */
- protected function driver()
- {
- $options = (new ChromeOptions)->addArguments([
- '--disable-gpu',
- '--headless',
- '--window-size=1920,1080',
- ]);
- return RemoteWebDriver::create(
- 'http://localhost:9515', DesiredCapabilities::chrome()->setCapability(
- ChromeOptions::CAPABILITY_W3C, $options
- )
- );
- }
- }
|