1
0
mirror of https://github.com/chylex/Lightning-Tracker.git synced 2025-04-10 02:15:43 +02:00

Add a third test user to automated tests, simplify page access test, add a few permission checks

This commit is contained in:
chylex 2020-09-17 08:41:18 +02:00
parent 72eb61560a
commit 03686284d5
7 changed files with 48 additions and 19 deletions

View File

@ -41,6 +41,7 @@ class T000_Setup_Cest{
self::t($I, $t, fn() => $t->registerManager2WithLogin($I));
self::t($I, $t, fn() => $t->registerUser1WithLogin($I));
self::t($I, $t, fn() => $t->registerUser2WithLogin($I));
self::t($I, $t, fn() => $t->registerUser3WithLogin($I));
self::t($I, $t, fn() => $t->registerRoleLessWithLogin($I));
self::t($I, $t, fn() => $t->setupRoles());

View File

@ -95,6 +95,14 @@ class T004_RegisterAccounts_Cest{
$this->register($I, 'User2', '987654321', 'user2@example.com');
}
/**
* @depends userAlreadyExists
* @depends emailAlreadyExists
*/
public function registerUser3WithLogin(AcceptanceTester $I): void{
$this->register($I, 'User3', '123123123', 'user3@example.com');
}
/**
* @depends userAlreadyExists
* @depends emailAlreadyExists
@ -109,6 +117,7 @@ class T004_RegisterAccounts_Cest{
* @depends registerManager2WithLogin
* @depends registerUser1WithLogin
* @depends registerUser2WithLogin
* @depends registerUser3WithLogin
* @depends registerRoleLessWithLogin
*/
public function setupRoles(): void{
@ -137,7 +146,11 @@ class T004_RegisterAccounts_Cest{
$db->exec('INSERT INTO system_role_permissions (role_id, permission) VALUES (5, \'users.see.emails\')');
$db->exec('INSERT INTO system_role_permissions (role_id, permission) VALUES (5, \'users.manage\')');
$db->exec('UPDATE users SET role_id = 2 WHERE name = \'User1\' OR name = \'User2\'');
$db->exec('UPDATE users SET id = \'user1test\' WHERE name = \'User1\'');
$db->exec('UPDATE users SET id = \'user2test\' WHERE name = \'User2\'');
$db->exec('UPDATE users SET id = \'user3test\' WHERE name = \'User3\'');
$db->exec('UPDATE users SET role_id = 2 WHERE name = \'User1\' OR name = \'User2\' OR name = \'User3\'');
$db->exec('UPDATE users SET role_id = 3 WHERE name = \'Manager2\'');
$db->exec('UPDATE users SET role_id = 4 WHERE name = \'Manager1\'');
$db->exec('UPDATE users SET role_id = 5 WHERE name = \'Moderator\'');

View File

@ -38,7 +38,6 @@ class T010_PageLoginRedirect_Cest{
* @example [null]
* @example ["RoleLess"]
* @example ["User1"]
* @example ["User2"]
* @example ["Manager1"]
* @example ["Manager2"]
* @example ["Moderator"]
@ -52,7 +51,6 @@ class T010_PageLoginRedirect_Cest{
* @example [null]
* @example ["RoleLess"]
* @example ["User1"]
* @example ["User2"]
* @example ["Manager1"]
* @example ["Manager2"]
* @example ["Moderator"]
@ -65,7 +63,6 @@ class T010_PageLoginRedirect_Cest{
/**
* @example ["RoleLess"]
* @example ["User1"]
* @example ["User2"]
* @example ["Manager1"]
* @example ["Manager2"]
* @example ["Moderator"]
@ -96,7 +93,6 @@ class T010_PageLoginRedirect_Cest{
* @example [null]
* @example ["RoleLess"]
* @example ["User1"]
* @example ["User2"]
*/
public function notPrivilegedCannotAccessUsers(AcceptanceTester $I, Example $example): void{
$this->ensureCannotAccessPageAs($I, $example[0], 'users');
@ -114,7 +110,6 @@ class T010_PageLoginRedirect_Cest{
* @example [null]
* @example ["RoleLess"]
* @example ["User1"]
* @example ["User2"]
* @example ["Manager2"]
* @example ["Moderator"]
*/

View File

@ -52,11 +52,12 @@ class T030_UserList_Cest{
*/
public function ensureRegistrationOrder(): void{
$db = Acceptance::getDB();
$db->exec('UPDATE users SET date_registered = DATE_SUB(NOW(), INTERVAL 8 SECOND) WHERE name = \'Admin\'');
$db->exec('UPDATE users SET date_registered = DATE_SUB(NOW(), INTERVAL 7 SECOND) WHERE name = \'Moderator\'');
$db->exec('UPDATE users SET date_registered = DATE_SUB(NOW(), INTERVAL 6 SECOND) WHERE name = \'Manager1\'');
$db->exec('UPDATE users SET date_registered = DATE_SUB(NOW(), INTERVAL 5 SECOND) WHERE name = \'Manager2\'');
$db->exec('UPDATE users SET date_registered = DATE_SUB(NOW(), INTERVAL 4 SECOND) WHERE name = \'User1\'');
$db->exec('UPDATE users SET date_registered = DATE_SUB(NOW(), INTERVAL 9 SECOND) WHERE name = \'Admin\'');
$db->exec('UPDATE users SET date_registered = DATE_SUB(NOW(), INTERVAL 8 SECOND) WHERE name = \'Moderator\'');
$db->exec('UPDATE users SET date_registered = DATE_SUB(NOW(), INTERVAL 7 SECOND) WHERE name = \'Manager1\'');
$db->exec('UPDATE users SET date_registered = DATE_SUB(NOW(), INTERVAL 6 SECOND) WHERE name = \'Manager2\'');
$db->exec('UPDATE users SET date_registered = DATE_SUB(NOW(), INTERVAL 5 SECOND) WHERE name = \'User1\'');
$db->exec('UPDATE users SET date_registered = DATE_SUB(NOW(), INTERVAL 4 SECOND) WHERE name = \'User3\'');
$db->exec('UPDATE users SET date_registered = DATE_SUB(NOW(), INTERVAL 3 SECOND) WHERE name = \'User2\'');
$db->exec('UPDATE users SET date_registered = DATE_SUB(NOW(), INTERVAL 2 SECOND) WHERE name = \'RoleLess\'');
$db->exec('UPDATE users SET date_registered = DATE_SUB(NOW(), INTERVAL 1 SECOND) WHERE name = \'Test\'');
@ -71,6 +72,7 @@ class T030_UserList_Cest{
'Manager1',
'Manager2',
'User1',
'User3',
'User2',
'RoleLess',
'Test']);
@ -89,6 +91,7 @@ class T030_UserList_Cest{
'Test',
'User1',
'User2',
'User3',
];
$I->click('thead tr:first-child th:nth-child(1) > a');
@ -109,6 +112,7 @@ class T030_UserList_Cest{
'Manager1', // role 2
'Manager2', // role 3
'User1', // role 4, registered first
'User3', // role 4, registered second
'User2', // role 4, registered last
'RoleLess', // no role, registered first
'Test']); // no role, registered last
@ -118,6 +122,7 @@ class T030_UserList_Cest{
$I->seeTableRowOrder(['RoleLess', // no role, registered first
'Test', // no role, registered last
'User1', // role 4, registered first
'User3', // role 4, registered second
'User2', // role 4, registered last
'Manager2', // role 3
'Manager1', // role 2
@ -137,7 +142,8 @@ class T030_UserList_Cest{
'Manager1', // role 2
'Manager2', // role 3
'User1', // role 4, alphabetically first
'User2', // role 4, alphabetically last
'User2', // role 4, alphabetically second
'User3', // role 4, alphabetically last
'RoleLess', // no role, alphabetically first
'Test']); // no role, alphabetically last
@ -147,7 +153,8 @@ class T030_UserList_Cest{
'Moderator', // role 1
'Manager1', // role 2
'Manager2', // role 3
'User2', // role 4, alphabetically last
'User3', // role 4, alphabetically last
'User2', // role 4, alphabetically second
'User1', // role 4, alphabetically first
'Test', // no role, alphabetically last
'RoleLess']); // no role, alphabetically first
@ -159,7 +166,8 @@ class T030_UserList_Cest{
$I->seeTableRowOrder(['RoleLess', // no role, alphabetically first
'Test', // no role, alphabetically last
'User1', // role 4, alphabetically first
'User2', // role 4, alphabetically last
'User2', // role 4, alphabetically second
'User3', // role 4, alphabetically last
'Manager2', // role 3
'Manager1', // role 2
'Moderator', // role 1
@ -169,7 +177,8 @@ class T030_UserList_Cest{
$I->seeTableRowOrder(['Test', // no role, alphabetically last
'RoleLess', // no role, alphabetically first
'User2', // role 4, alphabetically last
'User3', // role 4, alphabetically last
'User2', // role 4, alphabetically second
'User1', // role 4, alphabetically first
'Manager2', // role 3
'Manager1', // role 2
@ -188,6 +197,7 @@ class T030_UserList_Cest{
'Manager1', // role 2
'Manager2', // role 3
'User1', // role 4, registered first
'User3', // role 4, registered second
'User2', // role 4, registered last
'RoleLess', // no role, registered first
'Test']); // no role, registered last
@ -197,6 +207,7 @@ class T030_UserList_Cest{
$I->seeTableRowOrder(['RoleLess', // no role, registered first
'Test', // no role, registered last
'User1', // role 4, registered first
'User3', // role 4, registered second
'User2', // role 4, registered last
'Manager2', // role 3
'Manager1', // role 2
@ -214,6 +225,7 @@ class T030_UserList_Cest{
'Manager1',
'Manager2',
'User1',
'User3',
'User2',
'RoleLess',
'Test',

View File

@ -13,15 +13,17 @@ class T031_UserManageability_Cest{
'Manager1' => 3,
'Manager2' => 4,
'User1' => 5,
'User2' => 6,
'RoleLess' => 7,
'Admin2' => 8,
'Moderator2' => 9,
'User3' => 6,
'User2' => 7,
'RoleLess' => 8,
'Admin2' => 9,
'Moderator2' => 10,
];
private function startManagingAs(AcceptanceTester $I, string $user): void{
$I->amLoggedIn($user);
$I->amOnPage('/users');
$I->dontSee('Permission Error', 'h2');
}
private function ensureCanOnlyManage(AcceptanceTester $I, array $users): void{
@ -63,6 +65,7 @@ SQL
'Moderator2',
'RoleLess',
'User1',
'User3',
'User2',
]);
}
@ -78,6 +81,7 @@ SQL
'Manager2',
'RoleLess',
'User1',
'User3',
'User2',
]);
}
@ -92,6 +96,7 @@ SQL
'Manager2',
'RoleLess',
'User1',
'User3',
'User2',
]);
}
@ -105,6 +110,7 @@ SQL
$this->ensureCanOnlyManage($I, [
'RoleLess',
'User1',
'User3',
'User2',
]);
}

View File

@ -26,6 +26,7 @@ class T032_UserEditing_Cest{
$I->amLoggedIn($editor);
$I->amOnPage('/users/'.$id);
$I->dontSee('Permission Error', 'h2');
}
private function ensureCanOnlySetRoles(AcceptanceTester $I, array $roles): void{

View File

@ -55,6 +55,7 @@ class T042_SystemSettingsRoleEditing_Cest{
$I->assertNotFalse($id);
$I->assertIsNumeric($id);
$I->amOnPage('/settings/roles/'.$id);
$I->dontSee('Permission Error', 'h2');
}
private function assignPermissions(AcceptanceTester $I, string $title, array $perms, bool $should_be_successful): array{