Changeset View
Changeset View
Standalone View
Standalone View
src/tests/Browser/Pages/Home.php
Show First 20 Lines • Show All 45 Lines • ▼ Show 20 Lines | class Home extends Page | ||||
/** | /** | ||||
* Submit logon form. | * Submit logon form. | ||||
* | * | ||||
* @param \Laravel\Dusk\Browser $browser The browser object | * @param \Laravel\Dusk\Browser $browser The browser object | ||||
* @param string $username User name | * @param string $username User name | ||||
* @param string $password User password | * @param string $password User password | ||||
* @param bool $wait_for_dashboard | * @param bool $wait_for_dashboard | ||||
* @param array $config Client-site config | |||||
* | * | ||||
* @return void | * @return void | ||||
*/ | */ | ||||
public function submitLogon($browser, $username, $password, $wait_for_dashboard = false) | public function submitLogon( | ||||
{ | $browser, | ||||
$username, | |||||
$password, | |||||
$wait_for_dashboard = false, | |||||
$config = [] | |||||
) { | |||||
$browser->type('@email-input', $username) | $browser->type('@email-input', $username) | ||||
->type('@password-input', $password); | ->type('@password-input', $password); | ||||
if ($username == 'ned@kolab.org') { | if ($username == 'ned@kolab.org') { | ||||
$code = \App\Auth\SecondFactor::code('ned@kolab.org'); | $code = \App\Auth\SecondFactor::code('ned@kolab.org'); | ||||
$browser->type('@second-factor-input', $code); | $browser->type('@second-factor-input', $code); | ||||
} | } | ||||
if (!empty($config)) { | |||||
$browser->script( | |||||
sprintf('Object.assign(window.config, %s)', \json_encode($config)) | |||||
); | |||||
} | |||||
$browser->press('form button'); | $browser->press('form button'); | ||||
if ($wait_for_dashboard) { | if ($wait_for_dashboard) { | ||||
$browser->waitForLocation('/dashboard'); | $browser->waitForLocation('/dashboard'); | ||||
} | } | ||||
} | } | ||||
} | } |