X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/1c43602f4bed60a84f47735ca8bc4a399018e013..refs/pull/3593/head:/tests/User/UserPreferencesTest.php diff --git a/tests/User/UserPreferencesTest.php b/tests/User/UserPreferencesTest.php index 1d5d3e729..88d54d316 100644 --- a/tests/User/UserPreferencesTest.php +++ b/tests/User/UserPreferencesTest.php @@ -2,6 +2,8 @@ namespace Tests\User; +use BookStack\Entities\Models\Bookshelf; +use BookStack\Entities\Models\Page; use Tests\TestCase; class UserPreferencesTest extends TestCase @@ -80,8 +82,8 @@ class UserPreferencesTest extends TestCase public function test_toggle_dark_mode() { $home = $this->actingAs($this->getEditor())->get('/'); - $home->assertElementNotExists('.dark-mode'); $home->assertSee('Dark Mode'); + $this->withHtml($home)->assertElementNotExists('.dark-mode'); $this->assertEquals(false, setting()->getForCurrentUser('dark-mode-enabled', false)); $prefChange = $this->patch('/settings/users/toggle-dark-mode'); @@ -89,7 +91,7 @@ class UserPreferencesTest extends TestCase $this->assertEquals(true, setting()->getForCurrentUser('dark-mode-enabled')); $home = $this->actingAs($this->getEditor())->get('/'); - $home->assertElementExists('.dark-mode'); + $this->withHtml($home)->assertElementExists('.dark-mode'); $home->assertDontSee('Dark Mode'); $home->assertSee('Light Mode'); } @@ -99,11 +101,73 @@ class UserPreferencesTest extends TestCase config()->set('setting-defaults.user.dark-mode-enabled', false); $this->assertEquals(false, setting()->getForCurrentUser('dark-mode-enabled')); $home = $this->get('/login'); - $home->assertElementNotExists('.dark-mode'); + $this->withHtml($home)->assertElementNotExists('.dark-mode'); config()->set('setting-defaults.user.dark-mode-enabled', true); $this->assertEquals(true, setting()->getForCurrentUser('dark-mode-enabled')); $home = $this->get('/login'); - $home->assertElementExists('.dark-mode'); + $this->withHtml($home)->assertElementExists('.dark-mode'); + } + + public function test_books_view_type_preferences_when_list() + { + $editor = $this->getEditor(); + setting()->putUser($editor, 'books_view_type', 'list'); + + $resp = $this->actingAs($editor)->get('/books'); + $this->withHtml($resp) + ->assertElementNotExists('.featured-image-container') + ->assertElementExists('.content-wrap .entity-list-item'); + } + + public function test_books_view_type_preferences_when_grid() + { + $editor = $this->getEditor(); + setting()->putUser($editor, 'books_view_type', 'grid'); + + $resp = $this->actingAs($editor)->get('/books'); + $this->withHtml($resp)->assertElementExists('.featured-image-container'); + } + + public function test_shelf_view_type_change() + { + $editor = $this->getEditor(); + /** @var Bookshelf $shelf */ + $shelf = Bookshelf::query()->first(); + setting()->putUser($editor, 'bookshelf_view_type', 'list'); + + $resp = $this->actingAs($editor)->get($shelf->getUrl())->assertSee('Grid View'); + $this->withHtml($resp) + ->assertElementNotExists('.featured-image-container') + ->assertElementExists('.content-wrap .entity-list-item'); + + $req = $this->patch("/settings/users/{$editor->id}/switch-shelf-view", ['view_type' => 'grid']); + $req->assertRedirect($shelf->getUrl()); + + $resp = $this->actingAs($editor)->get($shelf->getUrl()) + ->assertSee('List View'); + + $this->withHtml($resp) + ->assertElementExists('.featured-image-container') + ->assertElementNotExists('.content-wrap .entity-list-item'); + } + + public function test_update_code_language_favourite() + { + $editor = $this->getEditor(); + $page = Page::query()->first(); + $this->actingAs($editor); + + $this->patch('/settings/users/update-code-language-favourite', ['language' => 'php', 'active' => true]); + $this->patch('/settings/users/update-code-language-favourite', ['language' => 'javascript', 'active' => true]); + + $resp = $this->get($page->getUrl('/edit')); + $resp->assertSee('option:code-editor:favourites="php,javascript"', false); + + $this->patch('/settings/users/update-code-language-favourite', ['language' => 'ruby', 'active' => true]); + $this->patch('/settings/users/update-code-language-favourite', ['language' => 'php', 'active' => false]); + + $resp = $this->get($page->getUrl('/edit')); + $resp->assertSee('option:code-editor:favourites="javascript,ruby"', false); } }