addArguments(collect([ '--window-size=1920,1080', ])->unless($this->hasHeadlessDisabled(), function ($items) { return $items->merge([ '--disable-gpu', '--headless', ]); })->all()); return RemoteWebDriver::create( $_ENV['DUSK_DRIVER_URL'] ?? 'http://localhost:9515', DesiredCapabilities::chrome()->setCapability( ChromeOptions::CAPABILITY, $options ) ); } /** * Determine whether the Dusk command has disabled headless mode. * * @return bool */ protected function hasHeadlessDisabled() { return isset($_SERVER['DUSK_HEADLESS_DISABLED']) || isset($_ENV['DUSK_HEADLESS_DISABLED']); } /** * Return the default user to authenticate. * * @return \App\Models\User\User */ protected function user() { $user = factory(User::class)->create(); $user->account->populateDefaultFields(); $user->account->update(['has_access_to_paid_version_for_free' => true]); app(AcceptPolicy::class)->execute([ 'account_id' => $user->account->id, 'user_id' => $user->id, 'ip_address' => null, ]); return $user; } public function hasDivAlert(Browser $browser) { $res = $browser->elements('alert'); return count($res) > 0; } public function hasNotification(Browser $browser) { $res = $browser->elements('.notifications'); return count($res) > 0; } public function getDivAlert(Browser $browser) { $res = $browser->elements('alert'); if (count($res) > 0) { return $res[0]; } } public function getNotification($browser) { $res = $browser->elements('.notification'); if (count($res) > 0) { return $res[0]; } } }