]> BookStack Code Mirror - bookstack/commitdiff
Fixed bug preventing page revision restore
authorDan Brown <redacted>
Thu, 23 Mar 2017 22:19:14 +0000 (22:19 +0000)
committerDan Brown <redacted>
Thu, 23 Mar 2017 22:19:14 +0000 (22:19 +0000)
Added regression tests to cover.
Fixes #341

app/Repos/EntityRepo.php
tests/Entity/PageContentTest.php

index 4db69137f0e7956bb6f6a8da925703d66afa27c9..8f4b533ff29fc613bc1d2cd530839729550f87c1 100644 (file)
@@ -1058,7 +1058,7 @@ class EntityRepo
     public function restorePageRevision(Page $page, Book $book, $revisionId)
     {
         $this->savePageRevision($page);
-        $revision = $this->getById('page_revision', $revisionId);
+        $revision = $page->revisions()->where('id', '=', $revisionId)->first();
         $page->fill($revision->toArray());
         $page->slug = $this->findSuitableSlug('page', $page->name, $page->id, $book->id);
         $page->text = strip_tags($page->html);
index 6f07b9626eb2f0d1c043d888c83c83b72878f766..6b64c2c640ef8427f72322ae489b9508636bf44e 100644 (file)
@@ -53,4 +53,31 @@ class PageContentTest extends TestCase
         $revisionView->assertSee('new content');
     }
 
+    public function test_page_revision_restore_updates_content()
+    {
+        $this->asEditor();
+
+        $entityRepo = $this->app[EntityRepo::class];
+        $page = Page::first();
+        $entityRepo->updatePage($page, $page->book_id, ['name' => 'updated page abc123', 'html' => '<p>new contente def456</p>', 'summary' => 'initial page revision testing']);
+        $entityRepo->updatePage($page, $page->book_id, ['name' => 'updated page again', 'html' => '<p>new content</p>', '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');
+    }
+
 }
Morty Proxy This is a proxified and sanitized view of the page, visit original site.