X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/43cbab28220c5c9cb16222c22bf2090268b83e7f..refs/pull/5280/head:/tests/Auth/GroupSyncServiceTest.php diff --git a/tests/Auth/GroupSyncServiceTest.php b/tests/Auth/GroupSyncServiceTest.php index ee8dee008..fee2ae406 100644 --- a/tests/Auth/GroupSyncServiceTest.php +++ b/tests/Auth/GroupSyncServiceTest.php @@ -2,24 +2,23 @@ namespace Tests\Auth; -use BookStack\Auth\Access\GroupSyncService; -use BookStack\Auth\Role; -use BookStack\Auth\User; +use BookStack\Access\GroupSyncService; +use BookStack\Users\Models\Role; +use BookStack\Users\Models\User; use Tests\TestCase; class GroupSyncServiceTest extends TestCase { - public function test_user_is_assigned_to_matching_roles() { - $user = $this->getViewer(); + $user = $this->users->viewer(); $roleA = Role::factory()->create(['display_name' => 'Wizards']); $roleB = Role::factory()->create(['display_name' => 'Gremlins']); $roleC = Role::factory()->create(['display_name' => 'ABC123', 'external_auth_id' => 'sales']); $roleD = Role::factory()->create(['display_name' => 'DEF456', 'external_auth_id' => 'admin-team']); - foreach([$roleA, $roleB, $roleC, $roleD] as $role) { + foreach ([$roleA, $roleB, $roleC, $roleD] as $role) { $this->assertFalse($user->hasRole($role->id)); } @@ -34,7 +33,7 @@ class GroupSyncServiceTest extends TestCase public function test_multiple_values_in_role_external_auth_id_handled() { - $user = $this->getViewer(); + $user = $this->users->viewer(); $role = Role::factory()->create(['display_name' => 'ABC123', 'external_auth_id' => 'sales, engineering, developers, marketers']); $this->assertFalse($user->hasRole($role->id)); @@ -46,7 +45,7 @@ class GroupSyncServiceTest extends TestCase public function test_commas_can_be_used_in_external_auth_id_if_escaped() { - $user = $this->getViewer(); + $user = $this->users->viewer(); $role = Role::factory()->create(['display_name' => 'ABC123', 'external_auth_id' => 'sales\,-developers, marketers']); $this->assertFalse($user->hasRole($role->id)); @@ -56,4 +55,15 @@ class GroupSyncServiceTest extends TestCase $this->assertTrue($user->hasRole($role->id)); } -} \ No newline at end of file + public function test_external_auth_id_matches_ignoring_case() + { + $user = $this->users->viewer(); + $role = Role::factory()->create(['display_name' => 'ABC123', 'external_auth_id' => 'WaRRioRs']); + $this->assertFalse($user->hasRole($role->id)); + + (new GroupSyncService())->syncUserWithFoundGroups($user, ['wArriors', 'penguiNs'], false); + + $user = User::query()->find($user->id); + $this->assertTrue($user->hasRole($role->id)); + } +}