5 use BookStack\Auth\User;
8 class UserSearchTest extends TestCase
11 public function test_select_search_matches_by_name()
13 $viewer = $this->getViewer();
14 $admin = $this->getAdmin();
15 $resp = $this->actingAs($admin)->get('/search/users/select?search=' . urlencode($viewer->name));
18 $resp->assertSee($viewer->name);
19 $resp->assertDontSee($admin->name);
22 public function test_select_search_shows_first_by_name_without_search()
24 /** @var User $firstUser */
25 $firstUser = User::query()->orderBy('name', 'desc')->first();
26 $resp = $this->asAdmin()->get('/search/users/select');
29 $resp->assertSee($firstUser->name);
32 public function test_select_search_does_not_match_by_email()
34 $viewer = $this->getViewer();
35 $editor = $this->getEditor();
36 $resp = $this->actingAs($editor)->get('/search/users/select?search=' . urlencode($viewer->email));
38 $resp->assertDontSee($viewer->name);
41 public function test_select_requires_right_permission()
43 $permissions = ['users-manage', 'restrictions-manage-own', 'restrictions-manage-all'];
44 $user = $this->getViewer();
46 foreach ($permissions as $permission) {
47 $resp = $this->actingAs($user)->get('/search/users/select?search=a');
48 $this->assertPermissionError($resp);
50 $this->giveUserPermissions($user, [$permission]);
51 $resp = $this->actingAs($user)->get('/search/users/select?search=a');
53 $user->roles()->delete();
54 $user->clearPermissionCache();
58 public function test_select_requires_logged_in_user()
60 $this->setSettings(['app-public' => true]);
61 $defaultUser = User::getDefault();
62 $this->giveUserPermissions($defaultUser, ['users-manage']);
64 $resp = $this->get('/search/users/select?search=a');
65 $this->assertPermissionError($resp);