X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/0f113ec41f328eab6af78097d47c28d9cb99d893..refs/pull/4467/head:/tests/Entity/EntitySearchTest.php diff --git a/tests/Entity/EntitySearchTest.php b/tests/Entity/EntitySearchTest.php index 4563fb651..a070ce3fa 100644 --- a/tests/Entity/EntitySearchTest.php +++ b/tests/Entity/EntitySearchTest.php @@ -2,9 +2,10 @@ namespace Tests\Entity; -use BookStack\Actions\Tag; +use BookStack\Activity\Models\Tag; use BookStack\Entities\Models\Book; use BookStack\Entities\Models\Bookshelf; +use BookStack\Entities\Models\Chapter; use Tests\TestCase; class EntitySearchTest extends TestCase @@ -225,6 +226,17 @@ class EntitySearchTest extends TestCase $chapterSearch->assertSee($chapter->book->getShortName(42)); } + public function test_entity_selector_shows_breadcrumbs_on_default_view() + { + $page = $this->entities->pageWithinChapter(); + $this->asEditor()->get($page->chapter->getUrl()); + + $resp = $this->asEditor()->get('/search/entity-selector?types=book,chapter&permission=page-create'); + $html = $this->withHtml($resp); + $html->assertElementContains('.chapter.entity-list-item', $page->chapter->name); + $html->assertElementContains('.chapter.entity-list-item .entity-item-snippet', $page->book->getShortName(42)); + } + public function test_entity_selector_search_reflects_items_without_permission() { $page = $this->entities->page(); @@ -444,6 +456,26 @@ class EntitySearchTest extends TestCase $search->assertSee($page->getUrl(), false); } + public function test_backslashes_can_be_searched_upon() + { + $page = $this->entities->newPage(['name' => 'TermA', 'html' => ' +
More info is at the path \\\\cat\\dog\\badger
+ ']); + $page->tags()->save(new Tag(['name' => '\\Category', 'value' => '\\animals\\fluffy'])); + + $search = $this->asEditor()->get('/search?term=' . urlencode('\\\\cat\\dog')); + $search->assertSee($page->getUrl(), false); + + $search = $this->asEditor()->get('/search?term=' . urlencode('"\\dog\\"')); + $search->assertSee($page->getUrl(), false); + + $search = $this->asEditor()->get('/search?term=' . urlencode('"\\badger\\"')); + $search->assertDontSee($page->getUrl(), false); + + $search = $this->asEditor()->get('/search?term=' . urlencode('[\\Categorylike%\\fluffy]')); + $search->assertSee($page->getUrl(), false); + } + public function test_searches_with_user_filters_adds_them_into_advanced_search_form() { $resp = $this->asEditor()->get('/search?term=' . urlencode('test {updated_by:dan} {created_by:dan}'));