class EntityTest extends TestCase
{
- public function testEntityCreation()
+ public function test_entity_creation()
{
// Test Creation
return \BookStack\Book::find($book->id);
}
- public function testBookSortPageShows()
+ public function test_book_sort_page_shows()
{
$books = \BookStack\Book::all();
$bookToSort = $books[0];
->see($books[1]->name);
}
- public function testBookSortItemReturnsBookContent()
+ public function test_book_sort_item_returns_book_content()
{
$books = \BookStack\Book::all();
$bookToSort = $books[0];
return $book;
}
- public function testPageSearch()
- {
- $book = \BookStack\Book::all()->first();
- $page = $book->pages->first();
-
- $this->asAdmin()
- ->visit('/')
- ->type($page->name, 'term')
- ->press('header-search-box-button')
- ->see('Search Results')
- ->see($page->name)
- ->click($page->name)
- ->seePageIs($page->getUrl());
- }
-
-
- public function testEntitiesViewableAfterCreatorDeletion()
+ public function test_entities_viewable_after_creator_deletion()
{
+ // Create required assets and revisions
$creator = $this->getNewUser();
$updater = $this->getNewUser();
$entities = $this->createEntityChainBelongingToUser($creator, $updater);
+ $this->actingAs($creator);
app('BookStack\Repos\UserRepo')->destroy($creator);
+ app('BookStack\Repos\PageRepo')->saveRevision($entities['page']);
- $this->asAdmin()->visit($entities['book']->getUrl())->seeStatusCode(200)
- ->visit($entities['chapter']->getUrl())->seeStatusCode(200)
- ->visit($entities['page']->getUrl())->seeStatusCode(200);
+ $this->checkEntitiesViewable($entities);
}
- public function testEntitiesViewableAfterUpdaterDeletion()
+ public function test_entities_viewable_after_updater_deletion()
{
+ // Create required assets and revisions
$creator = $this->getNewUser();
$updater = $this->getNewUser();
$entities = $this->createEntityChainBelongingToUser($creator, $updater);
+ $this->actingAs($updater);
app('BookStack\Repos\UserRepo')->destroy($updater);
+ app('BookStack\Repos\PageRepo')->saveRevision($entities['page']);
- $this->asAdmin()->visit($entities['book']->getUrl())->seeStatusCode(200)
+ $this->checkEntitiesViewable($entities);
+ }
+
+ private function checkEntitiesViewable($entities)
+ {
+ // Check pages and books are visible.
+ $this->asAdmin();
+ $this->visit($entities['book']->getUrl())->seeStatusCode(200)
->visit($entities['chapter']->getUrl())->seeStatusCode(200)
->visit($entities['page']->getUrl())->seeStatusCode(200);
+ // Check revision listing shows no errors.
+ $this->visit($entities['page']->getUrl())
+ ->click('Revisions')->seeStatusCode(200);
}
+ public function test_recently_created_pages_view()
+ {
+ $user = $this->getNewUser();
+ $content = $this->createEntityChainBelongingToUser($user);
+
+ $this->asAdmin()->visit('/pages/recently-created')
+ ->seeInNthElement('.entity-list .page', 0, $content['page']->name);
+ }
+
+ public function test_recently_updated_pages_view()
+ {
+ $user = $this->getNewUser();
+ $content = $this->createEntityChainBelongingToUser($user);
+
+ $this->asAdmin()->visit('/pages/recently-updated')
+ ->seeInNthElement('.entity-list .page', 0, $content['page']->name);
+ }
+
+ public function test_old_page_slugs_redirect_to_new_pages()
+ {
+ $page = \BookStack\Page::all()->first();
+ $pageUrl = $page->getUrl();
+ $newPageUrl = '/books/' . $page->book->slug . '/page/super-test-page';
+ $this->asAdmin()->visit($pageUrl)
+ ->clickInElement('#content', 'Edit')
+ ->type('super test page', '#name')
+ ->press('Save Page')
+ ->seePageIs($newPageUrl)
+ ->visit($pageUrl)
+ ->seePageIs($newPageUrl);
+ }
}