Changeset View
Changeset View
Standalone View
Standalone View
src/tests/TestCaseDusk.php
Show All 27 Lines | abstract class TestCaseDusk extends BaseTestCase | ||||
* @return \Facebook\WebDriver\Remote\RemoteWebDriver | * @return \Facebook\WebDriver\Remote\RemoteWebDriver | ||||
*/ | */ | ||||
protected function driver() | protected function driver() | ||||
{ | { | ||||
$options = (new ChromeOptions())->addArguments([ | $options = (new ChromeOptions())->addArguments([ | ||||
'--lang=en_US', | '--lang=en_US', | ||||
'--disable-gpu', | '--disable-gpu', | ||||
'--headless', | '--headless', | ||||
'--window-size=1280,720', | |||||
]); | ]); | ||||
// For file download handling | // For file download handling | ||||
$prefs = [ | $prefs = [ | ||||
'profile.default_content_settings.popups' => 0, | 'profile.default_content_settings.popups' => 0, | ||||
'download.default_directory' => __DIR__ . '/Browser/downloads', | 'download.default_directory' => __DIR__ . '/Browser/downloads', | ||||
]; | ]; | ||||
$options->setExperimentalOption('prefs', $prefs); | $options->setExperimentalOption('prefs', $prefs); | ||||
if (getenv('TESTS_MODE') == 'phone') { | if (getenv('TESTS_MODE') == 'phone') { | ||||
// Fake User-Agent string for mobile mode | // Fake User-Agent string for mobile mode | ||||
$ua = 'Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/537.36' | $ua = 'Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/537.36' | ||||
. ' (KHTML, like Gecko) Chrome/60.0.3112.90 Mobile Safari/537.36'; | . ' (KHTML, like Gecko) Chrome/60.0.3112.90 Mobile Safari/537.36'; | ||||
$options->setExperimentalOption('mobileEmulation', ['userAgent' => $ua]); | $options->setExperimentalOption('mobileEmulation', ['userAgent' => $ua]); | ||||
$options->addArguments(['--window-size=375,667']); | $options->addArguments(['--window-size=375,667']); | ||||
} elseif (getenv('TESTS_MODE') == 'tablet') { | } elseif (getenv('TESTS_MODE') == 'tablet') { | ||||
// Fake User-Agent string for mobile mode | // Fake User-Agent string for mobile mode | ||||
$ua = 'Mozilla/5.0 (Linux; Android 6.0.1; vivo 1603 Build/MMB29M) AppleWebKit/537.36 ' | $ua = 'Mozilla/5.0 (Linux; Android 6.0.1; vivo 1603 Build/MMB29M) AppleWebKit/537.36 ' | ||||
. ' (KHTML, like Gecko) Chrome/58.0.3029.83 Mobile Safari/537.36'; | . ' (KHTML, like Gecko) Chrome/58.0.3029.83 Mobile Safari/537.36'; | ||||
$options->setExperimentalOption('mobileEmulation', ['userAgent' => $ua]); | $options->setExperimentalOption('mobileEmulation', ['userAgent' => $ua]); | ||||
$options->addArguments(['--window-size=800,640']); | $options->addArguments(['--window-size=800,640']); | ||||
} else { | } else { | ||||
$options->addArguments(['--window-size=1280,720']); | $options->addArguments(['--window-size=2560,1440']); | ||||
} | } | ||||
// Make sure downloads dir exists and is empty | // Make sure downloads dir exists and is empty | ||||
if (!file_exists(__DIR__ . '/Browser/downloads')) { | if (!file_exists(__DIR__ . '/Browser/downloads')) { | ||||
mkdir(__DIR__ . '/Browser/downloads', 0777, true); | mkdir(__DIR__ . '/Browser/downloads', 0777, true); | ||||
} else { | } else { | ||||
foreach (glob(__DIR__ . '/Browser/downloads/*') as $file) { | foreach (glob(__DIR__ . '/Browser/downloads/*') as $file) { | ||||
@unlink($file); | @unlink($file); | ||||
Show All 11 Lines | abstract class TestCaseDusk extends BaseTestCase | ||||
/** | /** | ||||
* Replace Dusk's Browser with our (extended) Browser | * Replace Dusk's Browser with our (extended) Browser | ||||
*/ | */ | ||||
protected function newBrowser($driver) | protected function newBrowser($driver) | ||||
{ | { | ||||
return new Browser($driver); | return new Browser($driver); | ||||
} | } | ||||
/** | |||||
* Set baseURL to the admin UI location | |||||
*/ | |||||
protected static function useAdminUrl(): void | |||||
{ | |||||
// This will set baseURL for all tests in this file | |||||
// If we wanted to visit both user and admin in one test | |||||
// we can also just call visit() with full url | |||||
Browser::$baseUrl = str_replace('//', '//admin.', \config('app.url')); | |||||
} | |||||
} | } |