3 namespace Tests\Permissions;
5 use BookStack\Entities\Models\Book;
6 use BookStack\Entities\Models\Chapter;
7 use Illuminate\Support\Str;
10 class ExportPermissionsTest extends TestCase
12 public function test_page_content_without_view_access_hidden_on_chapter_export()
14 $chapter = Chapter::query()->first();
15 $page = $chapter->pages()->firstOrFail();
16 $pageContent = Str::random(48);
17 $page->html = '<p>' . $pageContent . '</p>';
19 $viewer = $this->getViewer();
20 $this->actingAs($viewer);
21 $formats = ['html', 'plaintext'];
23 foreach ($formats as $format) {
24 $resp = $this->get($chapter->getUrl("export/{$format}"));
25 $resp->assertStatus(200);
26 $resp->assertSee($page->name);
27 $resp->assertSee($pageContent);
30 $this->setEntityRestrictions($page, []);
32 foreach ($formats as $format) {
33 $resp = $this->get($chapter->getUrl("export/{$format}"));
34 $resp->assertStatus(200);
35 $resp->assertDontSee($page->name);
36 $resp->assertDontSee($pageContent);
40 public function test_page_content_without_view_access_hidden_on_book_export()
42 $book = Book::query()->first();
43 $page = $book->pages()->firstOrFail();
44 $pageContent = Str::random(48);
45 $page->html = '<p>' . $pageContent . '</p>';
47 $viewer = $this->getViewer();
48 $this->actingAs($viewer);
49 $formats = ['html', 'plaintext'];
51 foreach ($formats as $format) {
52 $resp = $this->get($book->getUrl("export/{$format}"));
53 $resp->assertStatus(200);
54 $resp->assertSee($page->name);
55 $resp->assertSee($pageContent);
58 $this->setEntityRestrictions($page, []);
60 foreach ($formats as $format) {
61 $resp = $this->get($book->getUrl("export/{$format}"));
62 $resp->assertStatus(200);
63 $resp->assertDontSee($page->name);
64 $resp->assertDontSee($pageContent);