Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F120838162
LogonTest.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Authored By
Unknown
Size
4 KB
Referenced Files
None
Subscribers
None
LogonTest.php
View Options
<?php
namespace
Tests\Browser\Admin
;
use
App\Utils
;
use
Tests\Browser
;
use
Tests\Browser\Components\Menu
;
use
Tests\Browser\Components\Toast
;
use
Tests\Browser\Pages\Dashboard
;
use
Tests\Browser\Pages\Home
;
use
Tests\TestCaseDusk
;
class
LogonTest
extends
TestCaseDusk
{
protected
function
setUp
():
void
{
parent
::
setUp
();
self
::
useAdminUrl
();
}
/**
* Test menu on logon page
*/
public
function
testLogonMenu
():
void
{
$this
->
browse
(
static
function
(
Browser
$browser
)
{
$browser
->
visit
(
new
Home
())
->
with
(
new
Menu
(),
static
function
(
$browser
)
{
$browser
->
assertMenuItems
([
'support'
,
'login'
,
'lang'
]);
})
->
assertMissing
(
'@second-factor-input'
)
->
assertMissing
(
'@forgot-password'
);
});
}
/**
* Test redirect to /login if user is unauthenticated
*/
public
function
testLogonRedirect
():
void
{
$this
->
browse
(
static
function
(
Browser
$browser
)
{
$browser
->
visit
(
'/dashboard'
);
// Checks if we're really on the login page
$browser
->
waitForLocation
(
'/login'
)
->
on
(
new
Home
());
});
}
/**
* Logon with wrong password/user test
*/
public
function
testLogonWrongCredentials
():
void
{
$this
->
browse
(
static
function
(
Browser
$browser
)
{
$browser
->
visit
(
new
Home
())
->
submitLogon
(
'jeroen@jeroen.jeroen'
,
'wrong'
)
// Error message
->
assertToast
(
Toast
::
TYPE_ERROR
,
'Invalid username or password.'
)
// Checks if we're still on the logon page
->
on
(
new
Home
());
});
}
/**
* Successful logon test
*/
public
function
testLogonSuccessful
():
void
{
$this
->
browse
(
static
function
(
Browser
$browser
)
{
$browser
->
visit
(
new
Home
())
->
submitLogon
(
'jeroen@jeroen.jeroen'
,
Utils
::
generatePassphrase
(),
true
);
// Checks if we're really on Dashboard page
$browser
->
on
(
new
Dashboard
())
->
within
(
new
Menu
(),
static
function
(
$browser
)
{
$browser
->
assertMenuItems
([
'support'
,
'dashboard'
,
'logout'
,
'lang'
]);
})
->
assertUser
(
'jeroen@jeroen.jeroen'
);
// Test that visiting '/' with logged in user does not open logon form
// but "redirects" to the dashboard
$browser
->
visit
(
'/'
)->
on
(
new
Dashboard
());
});
}
/**
* Logout test
*
* @depends testLogonSuccessful
*/
public
function
testLogout
():
void
{
$this
->
browse
(
static
function
(
Browser
$browser
)
{
$browser
->
on
(
new
Dashboard
());
// Click the Logout button
$browser
->
within
(
new
Menu
(),
static
function
(
$browser
)
{
$browser
->
clickMenuItem
(
'logout'
);
});
// We expect the logon page
$browser
->
waitForLocation
(
'/login'
)
->
on
(
new
Home
());
// with default menu
$browser
->
within
(
new
Menu
(),
static
function
(
$browser
)
{
$browser
->
assertMenuItems
([
'support'
,
'login'
,
'lang'
]);
});
// Success toast message
$browser
->
assertToast
(
Toast
::
TYPE_SUCCESS
,
'Successfully logged out'
);
});
}
/**
* Logout by URL test
*/
public
function
testLogoutByURL
():
void
{
$this
->
browse
(
static
function
(
Browser
$browser
)
{
$browser
->
visit
(
new
Home
())
->
submitLogon
(
'jeroen@jeroen.jeroen'
,
Utils
::
generatePassphrase
(),
true
);
// Checks if we're really on Dashboard page
$browser
->
on
(
new
Dashboard
());
// Use /logout url, and expect the logon page
$browser
->
visit
(
'/logout'
)
->
waitForLocation
(
'/login'
)
->
on
(
new
Home
());
// with default menu
$browser
->
within
(
new
Menu
(),
static
function
(
$browser
)
{
$browser
->
assertMenuItems
([
'support'
,
'login'
,
'lang'
]);
});
// Success toast message
$browser
->
assertToast
(
Toast
::
TYPE_SUCCESS
,
'Successfully logged out'
);
});
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Fri, Apr 24, 1:55 PM (6 d, 3 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
18861856
Default Alt Text
LogonTest.php (4 KB)
Attached To
Mode
rK kolab
Attached
Detach File
Event Timeline