]> BookStack Code Mirror - bookstack/blobdiff - tests/Entity/ChapterTest.php
Testing: Extracted copy tests to their own class
[bookstack] / tests / Entity / ChapterTest.php
index 1577cee76d8ae24c58382111caac2fc7aabc0b66..0c0ec784135fceffeaeae61fa821625f0a15c7b4 100644 (file)
@@ -66,90 +66,7 @@ class ChapterTest extends TestCase
         $this->assertNotificationContains($redirectReq, 'Chapter Successfully Deleted');
     }
 
-    public function test_show_view_has_copy_button()
-    {
-        $chapter = $this->entities->chapter();
-
-        $resp = $this->asEditor()->get($chapter->getUrl());
-        $this->withHtml($resp)->assertElementContains("a[href$=\"{$chapter->getUrl('/copy')}\"]", 'Copy');
-    }
-
-    public function test_copy_view()
-    {
-        $chapter = $this->entities->chapter();
-
-        $resp = $this->asEditor()->get($chapter->getUrl('/copy'));
-        $resp->assertOk();
-        $resp->assertSee('Copy Chapter');
-        $this->withHtml($resp)->assertElementExists("input[name=\"name\"][value=\"{$chapter->name}\"]");
-        $this->withHtml($resp)->assertElementExists('input[name="entity_selection"]');
-    }
-
-    public function test_copy()
-    {
-        /** @var Chapter $chapter */
-        $chapter = Chapter::query()->whereHas('pages')->first();
-        /** @var Book $otherBook */
-        $otherBook = Book::query()->where('id', '!=', $chapter->book_id)->first();
-
-        $resp = $this->asEditor()->post($chapter->getUrl('/copy'), [
-            'name'             => 'My copied chapter',
-            'entity_selection' => 'book:' . $otherBook->id,
-        ]);
-
-        /** @var Chapter $newChapter */
-        $newChapter = Chapter::query()->where('name', '=', 'My copied chapter')->first();
-
-        $resp->assertRedirect($newChapter->getUrl());
-        $this->assertEquals($otherBook->id, $newChapter->book_id);
-        $this->assertEquals($chapter->pages->count(), $newChapter->pages->count());
-    }
-
-    public function test_copy_does_not_copy_non_visible_pages()
-    {
-        $chapter = $this->entities->chapterHasPages();
 
-        // Hide pages to all non-admin roles
-        /** @var Page $page */
-        foreach ($chapter->pages as $page) {
-            $this->permissions->setEntityPermissions($page, [], []);
-        }
-
-        $this->asEditor()->post($chapter->getUrl('/copy'), [
-            'name' => 'My copied chapter',
-        ]);
-
-        /** @var Chapter $newChapter */
-        $newChapter = Chapter::query()->where('name', '=', 'My copied chapter')->first();
-        $this->assertEquals(0, $newChapter->pages()->count());
-    }
-
-    public function test_copy_does_not_copy_pages_if_user_cant_page_create()
-    {
-        $chapter = $this->entities->chapterHasPages();
-        $viewer = $this->users->viewer();
-        $this->permissions->grantUserRolePermissions($viewer, ['chapter-create-all']);
-
-        // Lacking permission results in no copied pages
-        $this->actingAs($viewer)->post($chapter->getUrl('/copy'), [
-            'name' => 'My copied chapter',
-        ]);
-
-        /** @var Chapter $newChapter */
-        $newChapter = Chapter::query()->where('name', '=', 'My copied chapter')->first();
-        $this->assertEquals(0, $newChapter->pages()->count());
-
-        $this->permissions->grantUserRolePermissions($viewer, ['page-create-all']);
-
-        // Having permission rules in copied pages
-        $this->actingAs($viewer)->post($chapter->getUrl('/copy'), [
-            'name' => 'My copied again chapter',
-        ]);
-
-        /** @var Chapter $newChapter2 */
-        $newChapter2 = Chapter::query()->where('name', '=', 'My copied again chapter')->first();
-        $this->assertEquals($chapter->pages()->count(), $newChapter2->pages()->count());
-    }
 
     public function test_sort_book_action_visible_if_permissions_allow()
     {