mirror of
https://github.com/BookStackApp/BookStack.git
synced 2025-12-19 10:42:29 +03:00
82 lines
2.9 KiB
PHP
82 lines
2.9 KiB
PHP
<?php
|
|
|
|
namespace Settings;
|
|
|
|
use BookStack\Entities\Models\Book;
|
|
use BookStack\Entities\Models\Bookshelf;
|
|
use Tests\TestCase;
|
|
|
|
class PageListLimitsTest extends TestCase
|
|
{
|
|
public function test_saving_setting_and_loading()
|
|
{
|
|
$resp = $this->asAdmin()->post('/settings/sorting', [
|
|
'setting-lists-page-count-shelves' => '3',
|
|
'setting-lists-page-count-books' => '6',
|
|
'setting-lists-page-count-search' => '9',
|
|
]);
|
|
$resp->assertRedirect('/settings/sorting');
|
|
|
|
$this->assertEquals(3, setting()->getInteger('lists-page-count-shelves', 18));
|
|
$this->assertEquals(6, setting()->getInteger('lists-page-count-books', 18));
|
|
$this->assertEquals(9, setting()->getInteger('lists-page-count-search', 18));
|
|
|
|
$resp = $this->get('/settings/sorting');
|
|
$html = $this->withHtml($resp);
|
|
|
|
$html->assertFieldHasValue('setting-lists-page-count-shelves', '3');
|
|
$html->assertFieldHasValue('setting-lists-page-count-books', '6');
|
|
$html->assertFieldHasValue('setting-lists-page-count-search', '9');
|
|
}
|
|
|
|
public function test_invalid_counts_will_use_default_when_fetched_as_an_integer()
|
|
{
|
|
$this->asAdmin()->post('/settings/sorting', [
|
|
'setting-lists-page-count-shelves' => 'cat',
|
|
]);
|
|
|
|
$this->assertEquals(18, setting()->getInteger('lists-page-count-shelves', 18));
|
|
}
|
|
|
|
public function test_shelf_count_is_used_on_shelves_view()
|
|
{
|
|
$resp = $this->asAdmin()->get('/shelves');
|
|
$defaultCount = min(Bookshelf::query()->count(), 18);
|
|
$this->withHtml($resp)->assertElementCount('main [data-entity-type="bookshelf"]', $defaultCount);
|
|
|
|
$this->post('/settings/sorting', [
|
|
'setting-lists-page-count-shelves' => '1',
|
|
]);
|
|
|
|
$resp = $this->get('/shelves');
|
|
$this->withHtml($resp)->assertElementCount('main [data-entity-type="bookshelf"]', 1);
|
|
}
|
|
|
|
public function test_book_count_is_used_on_books_view()
|
|
{
|
|
$resp = $this->asAdmin()->get('/books');
|
|
$defaultCount = min(Book::query()->count(), 18);
|
|
$this->withHtml($resp)->assertElementCount('main [data-entity-type="book"]', $defaultCount);
|
|
|
|
$this->post('/settings/sorting', [
|
|
'setting-lists-page-count-books' => '1',
|
|
]);
|
|
|
|
$resp = $this->get('/books');
|
|
$this->withHtml($resp)->assertElementCount('main [data-entity-type="book"]', 1);
|
|
}
|
|
|
|
public function test_search_count_is_used_on_search_view()
|
|
{
|
|
$resp = $this->asAdmin()->get('/search');
|
|
$this->withHtml($resp)->assertElementCount('.entity-list [data-entity-id]', 18);
|
|
|
|
$this->post('/settings/sorting', [
|
|
'setting-lists-page-count-search' => '1',
|
|
]);
|
|
|
|
$resp = $this->get('/search');
|
|
$this->withHtml($resp)->assertElementCount('.entity-list [data-entity-id]', 1);
|
|
}
|
|
}
|