1 <?php namespace Tests\Permissions;
3 use BookStack\Entities\Models\Book;
4 use BookStack\Entities\Models\Chapter;
5 use Illuminate\Support\Str;
8 class ExportPermissionsTest extends TestCase
11 public function test_page_content_without_view_access_hidden_on_chapter_export()
13 $chapter = Chapter::query()->first();
14 $page = $chapter->pages()->firstOrFail();
15 $pageContent = Str::random(48);
16 $page->html = '<p>' . $pageContent . '</p>';
18 $viewer = $this->getViewer();
19 $this->actingAs($viewer);
20 $formats = ['html', 'plaintext'];
22 foreach ($formats as $format) {
23 $resp = $this->get($chapter->getUrl("export/{$format}"));
24 $resp->assertStatus(200);
25 $resp->assertSee($page->name);
26 $resp->assertSee($pageContent);
29 $this->setEntityRestrictions($page, []);
31 foreach ($formats as $format) {
32 $resp = $this->get($chapter->getUrl("export/{$format}"));
33 $resp->assertStatus(200);
34 $resp->assertDontSee($page->name);
35 $resp->assertDontSee($pageContent);
39 public function test_page_content_without_view_access_hidden_on_book_export()
41 $book = Book::query()->first();
42 $page = $book->pages()->firstOrFail();
43 $pageContent = Str::random(48);
44 $page->html = '<p>' . $pageContent . '</p>';
46 $viewer = $this->getViewer();
47 $this->actingAs($viewer);
48 $formats = ['html', 'plaintext'];
50 foreach ($formats as $format) {
51 $resp = $this->get($book->getUrl("export/{$format}"));
52 $resp->assertStatus(200);
53 $resp->assertSee($page->name);
54 $resp->assertSee($pageContent);
57 $this->setEntityRestrictions($page, []);
59 foreach ($formats as $format) {
60 $resp = $this->get($book->getUrl("export/{$format}"));
61 $resp->assertStatus(200);
62 $resp->assertDontSee($page->name);
63 $resp->assertDontSee($pageContent);