Changeset View
Changeset View
Standalone View
Standalone View
src/tests/Browser/LogonTest.php
Show First 20 Lines • Show All 66 Lines • ▼ Show 20 Lines | class LogonTest extends TestCaseDusk | ||||
/** | /** | ||||
* Successful logon test | * Successful logon test | ||||
*/ | */ | ||||
public function testLogonSuccessful(): void | public function testLogonSuccessful(): void | ||||
{ | { | ||||
$this->browse(function (Browser $browser) { | $this->browse(function (Browser $browser) { | ||||
$browser->visit(new Home()) | $browser->visit(new Home()) | ||||
->submitLogon('john@kolab.org', 'simple123', true); | ->submitLogon('john@kolab.org', 'simple123', true) | ||||
// Checks if we're really on Dashboard page | // Checks if we're really on Dashboard page | ||||
$browser->on(new Dashboard()) | ->on(new Dashboard()) | ||||
->assertVisible('@links a.link-profile') | |||||
->assertVisible('@links a.link-domains') | |||||
->assertVisible('@links a.link-users') | |||||
->assertVisible('@links a.link-wallet') | |||||
->within(new Menu(), function ($browser) { | ->within(new Menu(), function ($browser) { | ||||
$browser->assertMenuItems(['support', 'contact', 'webmail', 'logout']); | $browser->assertMenuItems(['support', 'contact', 'webmail', 'logout']); | ||||
}); | }); | ||||
if ($browser->isDesktop()) { | if ($browser->isDesktop()) { | ||||
$browser->within(new Menu('footer'), function ($browser) { | $browser->within(new Menu('footer'), function ($browser) { | ||||
$browser->assertMenuItems(['support', 'contact', 'webmail', 'logout']); | $browser->assertMenuItems(['support', 'contact', 'webmail', 'logout']); | ||||
}); | }); | ||||
▲ Show 20 Lines • Show All 109 Lines • ▼ Show 20 Lines | public function test2FA(): void | ||||
->assertToast(Toast::TYPE_ERROR, 'Form validation error'); | ->assertToast(Toast::TYPE_ERROR, 'Form validation error'); | ||||
$code = \App\Auth\SecondFactor::code('ned@kolab.org'); | $code = \App\Auth\SecondFactor::code('ned@kolab.org'); | ||||
// Test valid (TOTP) code | // Test valid (TOTP) code | ||||
$browser->type('@second-factor-input', $code) | $browser->type('@second-factor-input', $code) | ||||
->press('form button') | ->press('form button') | ||||
->waitUntilMissing('@second-factor-input.is-invalid') | ->waitUntilMissing('@second-factor-input.is-invalid') | ||||
->waitForLocation('/dashboard')->on(new Dashboard()); | ->waitForLocation('/dashboard') | ||||
->on(new Dashboard()); | |||||
}); | }); | ||||
} | } | ||||
} | } |