X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/bc6e19b2a1ef424d6901cf07c179e445deede08e..refs/pull/4467/head:/tests/User/UserPreferencesTest.php diff --git a/tests/User/UserPreferencesTest.php b/tests/User/UserPreferencesTest.php index a0e7e063f..9d72f4e14 100644 --- a/tests/User/UserPreferencesTest.php +++ b/tests/User/UserPreferencesTest.php @@ -3,6 +3,7 @@ namespace Tests\User; use BookStack\Activity\Tools\UserEntityWatchOptions; +use BookStack\Activity\WatchLevels; use Tests\TestCase; class UserPreferencesTest extends TestCase @@ -15,13 +16,15 @@ class UserPreferencesTest extends TestCase $resp->assertSee('Edit Profile'); } - public function test_index_view_accessible_but_without_profile_for_guest_user() + public function test_index_view_accessible_but_without_profile_and_notifications_for_guest_user() { $this->setSettings(['app-public' => 'true']); + $this->permissions->grantUserRolePermissions($this->users->guest(), ['receive-notifications']); $resp = $this->get('/preferences'); $resp->assertOk(); $resp->assertSee('Interface Keyboard Shortcuts'); $resp->assertDontSee('Edit Profile'); + $resp->assertDontSee('Notification'); } public function test_interface_shortcuts_updating() { @@ -108,19 +111,34 @@ class UserPreferencesTest extends TestCase $book = $this->entities->book(); $options = new UserEntityWatchOptions($editor, $book); - $options->updateWatchLevel('comments'); + $options->updateLevelByValue(WatchLevels::COMMENTS); $resp = $this->actingAs($editor)->get('/preferences/notifications'); $resp->assertSee($book->name); $resp->assertSee('All Page Updates & Comments'); - $options->updateWatchLevel('default'); + $options->updateLevelByValue(WatchLevels::DEFAULT); $resp = $this->actingAs($editor)->get('/preferences/notifications'); $resp->assertDontSee($book->name); $resp->assertDontSee('All Page Updates & Comments'); } + public function test_notification_preferences_not_accessible_to_guest() + { + $this->setSettings(['app-public' => 'true']); + $guest = $this->users->guest(); + $this->permissions->grantUserRolePermissions($guest, ['receive-notifications']); + + $resp = $this->get('/preferences/notifications'); + $this->assertPermissionError($resp); + + $resp = $this->put('/preferences/notifications', [ + 'preferences' => ['comment-replies' => 'true'], + ]); + $this->assertPermissionError($resp); + } + public function test_update_sort_preference() { $editor = $this->users->editor();