diff --git a/resources/lang/en/entities.php b/resources/lang/en/entities.php index 8a3aeb022..abcd2cf23 100644 --- a/resources/lang/en/entities.php +++ b/resources/lang/en/entities.php @@ -299,6 +299,7 @@ return [ // Revision 'revision_delete_confirm' => 'Are you sure you want to delete this revision?', + 'revision_restore_confirm' => 'Are you sure you want to restore this revision? The current page contents will be replaced.', 'revision_delete_success' => 'Revision deleted', 'revision_cannot_delete_latest' => 'Cannot delete the latest revision.' ]; \ No newline at end of file diff --git a/resources/views/pages/revisions.blade.php b/resources/views/pages/revisions.blade.php index 9d968c016..e5515a7c9 100644 --- a/resources/views/pages/revisions.blade.php +++ b/resources/views/pages/revisions.blade.php @@ -50,7 +50,20 @@ @else {{ trans('entities.pages_revisions_preview') }} | - {{ trans('entities.pages_revisions_restore') }} + +
new content
', 'summary' => 'page revision testing']); - $pageRevision = $page->revisions->last(); - - $revisionView = $this->get($page->getUrl() . '/revisions/' . $pageRevision->id); - $revisionView->assertStatus(200); - $revisionView->assertSee('new content'); - - $revisionView = $this->get($page->getUrl() . '/revisions/' . $pageRevision->id . '/changes'); - $revisionView->assertStatus(200); - $revisionView->assertSee('new content'); - } - - public function test_page_revision_restore_updates_content() - { - $this->asEditor(); - - $pageRepo = app(PageRepo::class); - $page = Page::first(); - $pageRepo->updatePage($page, $page->book_id, ['name' => 'updated page abc123', 'html' => 'new contente def456
', 'summary' => 'initial page revision testing']); - $pageRepo->updatePage($page, $page->book_id, ['name' => 'updated page again', 'html' => 'new content
', 'summary' => 'page revision testing']); - $page = Page::find($page->id); - - - $pageView = $this->get($page->getUrl()); - $pageView->assertDontSee('abc123'); - $pageView->assertDontSee('def456'); - - $revToRestore = $page->revisions()->where('name', 'like', '%abc123')->first(); - $restoreReq = $this->get($page->getUrl() . '/revisions/' . $revToRestore->id . '/restore'); - $page = Page::find($page->id); - - $restoreReq->assertStatus(302); - $restoreReq->assertRedirect($page->getUrl()); - - $pageView = $this->get($page->getUrl()); - $pageView->assertSee('abc123'); - $pageView->assertSee('def456'); - } - public function test_page_content_scripts_escaped_by_default() { $this->asEditor(); diff --git a/tests/Entity/PageRevisionTest.php b/tests/Entity/PageRevisionTest.php index 015320dd7..521ea79a4 100644 --- a/tests/Entity/PageRevisionTest.php +++ b/tests/Entity/PageRevisionTest.php @@ -1,11 +1,55 @@ asEditor(); + + $pageRepo = app(PageRepo::class); + $page = Page::first(); + $pageRepo->updatePage($page, $page->book_id, ['name' => 'updated page', 'html' => 'new content
', 'summary' => 'page revision testing']); + $pageRevision = $page->revisions->last(); + + $revisionView = $this->get($page->getUrl() . '/revisions/' . $pageRevision->id); + $revisionView->assertStatus(200); + $revisionView->assertSee('new content'); + + $revisionView = $this->get($page->getUrl() . '/revisions/' . $pageRevision->id . '/changes'); + $revisionView->assertStatus(200); + $revisionView->assertSee('new content'); + } + + public function test_page_revision_restore_updates_content() + { + $this->asEditor(); + + $pageRepo = app(PageRepo::class); + $page = Page::first(); + $pageRepo->updatePage($page, $page->book_id, ['name' => 'updated page abc123', 'html' => 'new contente def456
', 'summary' => 'initial page revision testing']); + $pageRepo->updatePage($page, $page->book_id, ['name' => 'updated page again', 'html' => 'new content
', 'summary' => 'page revision testing']); + $page = Page::find($page->id); + + + $pageView = $this->get($page->getUrl()); + $pageView->assertDontSee('abc123'); + $pageView->assertDontSee('def456'); + + $revToRestore = $page->revisions()->where('name', 'like', '%abc123')->first(); + $restoreReq = $this->put($page->getUrl() . '/revisions/' . $revToRestore->id . '/restore'); + $page = Page::find($page->id); + + $restoreReq->assertStatus(302); + $restoreReq->assertRedirect($page->getUrl()); + + $pageView = $this->get($page->getUrl()); + $pageView->assertSee('abc123'); + $pageView->assertSee('def456'); + } public function test_page_revision_count_increments_on_update() {