Changeset View
Changeset View
Standalone View
Standalone View
src/tests/Browser/LogonTest.php
Show All 15 Lines | class LogonTest extends TestCaseDusk | ||||
/** | /** | ||||
* Test menu on logon page | * Test menu on logon page | ||||
*/ | */ | ||||
public function testLogonMenu(): void | public function testLogonMenu(): void | ||||
{ | { | ||||
$this->browse(function (Browser $browser) { | $this->browse(function (Browser $browser) { | ||||
$browser->visit(new Home()) | $browser->visit(new Home()) | ||||
->within(new Menu(), function ($browser) { | ->within(new Menu(), function ($browser) { | ||||
$browser->assertMenuItems(['signup', 'explore', 'blog', 'support', 'webmail']); | $browser->assertMenuItems(['signup', 'explore', 'blog', 'support', 'login']); | ||||
}); | }); | ||||
if ($browser->isDesktop()) { | if ($browser->isDesktop()) { | ||||
$browser->within(new Menu('footer'), function ($browser) { | $browser->within(new Menu('footer'), function ($browser) { | ||||
$browser->assertMenuItems(['signup', 'explore', 'blog', 'support', 'tos', 'webmail']); | $browser->assertMenuItems(['signup', 'explore', 'blog', 'support', 'tos', 'login']); | ||||
}); | }); | ||||
} else { | } else { | ||||
$browser->assertMissing('#footer-menu .navbar-nav'); | $browser->assertMissing('#footer-menu .navbar-nav'); | ||||
} | } | ||||
}); | }); | ||||
} | } | ||||
/** | /** | ||||
Show All 36 Lines | public function testLogonSuccessful(): void | ||||
$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 | ||||
->on(new Dashboard()) | ->on(new Dashboard()) | ||||
->assertVisible('@links a.link-profile') | ->assertVisible('@links a.link-profile') | ||||
->assertVisible('@links a.link-domains') | ->assertVisible('@links a.link-domains') | ||||
->assertVisible('@links a.link-users') | ->assertVisible('@links a.link-users') | ||||
->assertVisible('@links a.link-wallet') | ->assertVisible('@links a.link-wallet') | ||||
->assertVisible('@links a.link-webmail') | |||||
->within(new Menu(), function ($browser) { | ->within(new Menu(), function ($browser) { | ||||
$browser->assertMenuItems(['support', 'contact', 'webmail', 'logout']); | $browser->assertMenuItems(['explore', 'blog', 'support', '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(['explore', 'blog', 'support', 'tos', 'logout']); | ||||
}); | }); | ||||
} else { | } else { | ||||
$browser->assertMissing('#footer-menu .navbar-nav'); | $browser->assertMissing('#footer-menu .navbar-nav'); | ||||
} | } | ||||
$browser->assertUser('john@kolab.org'); | $browser->assertUser('john@kolab.org'); | ||||
// Assert no "Account status" for this account | // Assert no "Account status" for this account | ||||
$browser->assertMissing('@status'); | $browser->assertMissing('@status'); | ||||
// Goto /domains and assert that the link on logo element | // Goto /domains and assert that the link on logo element | ||||
// leads to the dashboard | // leads to the dashboard | ||||
$browser->visit('/domains') | $browser->visit('/domains') | ||||
->waitForText('Domains') | ->waitForText('Domains') | ||||
->click('a.navbar-brand') | ->click('a.navbar-brand') | ||||
->on(new Dashboard()); | ->on(new Dashboard()); | ||||
// Test that visiting '/' with logged in user does not open logon form | // Test that visiting '/' with logged in user does not open logon form | ||||
// but "redirects" to the dashboard | // but "redirects" to the dashboard | ||||
$browser->visit('/')->on(new Dashboard()); | $browser->visit('/') | ||||
->waitForLocation('/dashboard') | |||||
->on(new Dashboard()); | |||||
}); | }); | ||||
} | } | ||||
/** | /** | ||||
* Logout test | * Logout test | ||||
* | * | ||||
* @depends testLogonSuccessful | * @depends testLogonSuccessful | ||||
*/ | */ | ||||
public function testLogout(): void | public function testLogout(): void | ||||
{ | { | ||||
$this->browse(function (Browser $browser) { | $this->browse(function (Browser $browser) { | ||||
$browser->on(new Dashboard()); | $browser->on(new Dashboard()); | ||||
// Click the Logout button | // Click the Logout button | ||||
$browser->within(new Menu(), function ($browser) { | $browser->within(new Menu(), function ($browser) { | ||||
$browser->clickMenuItem('logout'); | $browser->clickMenuItem('logout'); | ||||
}); | }); | ||||
// We expect the logon page | // We expect the logon page | ||||
$browser->waitForLocation('/login') | $browser->waitForLocation('/login') | ||||
->on(new Home()); | ->on(new Home()); | ||||
// with default menu | // with default menu | ||||
$browser->within(new Menu(), function ($browser) { | $browser->within(new Menu(), function ($browser) { | ||||
$browser->assertMenuItems(['signup', 'explore', 'blog', 'support', 'webmail']); | $browser->assertMenuItems(['signup', 'explore', 'blog', 'support', 'login']); | ||||
}); | }); | ||||
// Success toast message | // Success toast message | ||||
$browser->assertToast(Toast::TYPE_SUCCESS, 'Successfully logged out'); | $browser->assertToast(Toast::TYPE_SUCCESS, 'Successfully logged out'); | ||||
}); | }); | ||||
} | } | ||||
/** | /** | ||||
Show All 10 Lines | public function testLogoutByURL(): void | ||||
// Use /logout url, and expect the logon page | // Use /logout url, and expect the logon page | ||||
$browser->visit('/logout') | $browser->visit('/logout') | ||||
->waitForLocation('/login') | ->waitForLocation('/login') | ||||
->on(new Home()); | ->on(new Home()); | ||||
// with default menu | // with default menu | ||||
$browser->within(new Menu(), function ($browser) { | $browser->within(new Menu(), function ($browser) { | ||||
$browser->assertMenuItems(['signup', 'explore', 'blog', 'support', 'webmail']); | $browser->assertMenuItems(['signup', 'explore', 'blog', 'support', 'login']); | ||||
}); | }); | ||||
// Success toast message | // Success toast message | ||||
$browser->assertToast(Toast::TYPE_SUCCESS, 'Successfully logged out'); | $browser->assertToast(Toast::TYPE_SUCCESS, 'Successfully logged out'); | ||||
}); | }); | ||||
} | } | ||||
/** | /** | ||||
▲ Show 20 Lines • Show All 43 Lines • Show Last 20 Lines |