Changeset View
Changeset View
Standalone View
Standalone View
src/tests/Browser/Admin/LogonTest.php
- This file was copied from src/tests/Browser/LogonTest.php.
<?php | <?php | ||||
namespace Tests\Browser; | namespace Tests\Browser\Admin; | ||||
use Tests\Browser; | use Tests\Browser; | ||||
use Tests\Browser\Components\Menu; | use Tests\Browser\Components\Menu; | ||||
use Tests\Browser\Components\Toast; | use Tests\Browser\Components\Toast; | ||||
use Tests\Browser\Pages\Dashboard; | use Tests\Browser\Pages\Dashboard; | ||||
use Tests\Browser\Pages\Home; | use Tests\Browser\Pages\Home; | ||||
use Tests\TestCaseDusk; | use Tests\TestCaseDusk; | ||||
use Illuminate\Foundation\Testing\DatabaseMigrations; | use Illuminate\Foundation\Testing\DatabaseMigrations; | ||||
class LogonTest extends TestCaseDusk | class LogonTest extends TestCaseDusk | ||||
{ | { | ||||
/** | |||||
* {@inheritDoc} | |||||
*/ | |||||
public function setUp(): void | |||||
{ | |||||
parent::setUp(); | |||||
self::useAdminUrl(); | |||||
} | |||||
/** | /** | ||||
* 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()); | ||||
Show All 19 Lines | class LogonTest extends TestCaseDusk | ||||
/** | /** | ||||
* Logon with wrong password/user test | * Logon with wrong password/user test | ||||
*/ | */ | ||||
public function testLogonWrongCredentials(): void | public function testLogonWrongCredentials(): void | ||||
{ | { | ||||
$this->browse(function (Browser $browser) { | $this->browse(function (Browser $browser) { | ||||
$browser->visit(new Home()) | $browser->visit(new Home()) | ||||
->submitLogon('john@kolab.org', 'wrong'); | ->submitLogon('jeroen@jeroen.jeroen', 'wrong'); | ||||
// Error message | // Error message | ||||
$browser->with(new Toast(Toast::TYPE_ERROR), function (Browser $browser) { | $browser->with(new Toast(Toast::TYPE_ERROR), function (Browser $browser) { | ||||
$browser->assertToastTitle('Error') | $browser->assertToastTitle('Error') | ||||
->assertToastMessage('Invalid username or password.') | ->assertToastMessage('Invalid username or password.') | ||||
->closeToast(); | ->closeToast(); | ||||
}); | }); | ||||
// Checks if we're still on the logon page | // Checks if we're still on the logon page | ||||
$browser->on(new Home()); | $browser->on(new Home()); | ||||
}); | }); | ||||
} | } | ||||
/** | /** | ||||
* 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('jeroen@jeroen.jeroen', 'jeroen', true); | ||||
// Checks if we're really on Dashboard page | // Checks if we're really on Dashboard page | ||||
$browser->on(new Dashboard()) | $browser->on(new Dashboard()) | ||||
->within(new Menu(), function ($browser) { | ->within(new Menu(), function ($browser) { | ||||
$browser->assertMenuItems(['support', 'contact', 'webmail', 'logout']); | $browser->assertMenuItems(['support', 'contact', 'webmail', 'logout']); | ||||
}) | }) | ||||
->assertUser('john@kolab.org'); | ->assertUser('jeroen@jeroen.jeroen'); | ||||
// Assert no "Account status" for this account | |||||
$browser->assertMissing('@status'); | |||||
// Goto /domains and assert that the link on logo element | |||||
// leads to the dashboard | |||||
$browser->visit('/domains') | |||||
->waitForText('Domains') | |||||
->click('a.navbar-brand') | |||||
->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('/')->on(new Dashboard()); | ||||
}); | }); | ||||
} | } | ||||
/** | /** | ||||
Show All 31 Lines | class LogonTest extends TestCaseDusk | ||||
/** | /** | ||||
* Logout by URL test | * Logout by URL test | ||||
*/ | */ | ||||
public function testLogoutByURL(): void | public function testLogoutByURL(): 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('jeroen@jeroen.jeroen', 'jeroen', true); | ||||
// Checks if we're really on Dashboard page | // Checks if we're really on Dashboard page | ||||
$browser->on(new Dashboard()); | $browser->on(new Dashboard()); | ||||
// 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()); | ||||
Show All 15 Lines |