]> BookStack Code Mirror - bookstack/blob - tests/Permissions/ExportPermissionsTest.php
Updated version and assets for release v25.05.1
[bookstack] / tests / Permissions / ExportPermissionsTest.php
1 <?php
2
3 namespace Tests\Permissions;
4
5 use Illuminate\Support\Str;
6 use Tests\TestCase;
7
8 class ExportPermissionsTest extends TestCase
9 {
10     public function test_page_content_without_view_access_hidden_on_chapter_export()
11     {
12         $chapter = $this->entities->chapter();
13         $page = $chapter->pages()->firstOrFail();
14         $pageContent = Str::random(48);
15         $page->html = '<p>' . $pageContent . '</p>';
16         $page->save();
17         $viewer = $this->users->viewer();
18         $this->actingAs($viewer);
19         $formats = ['html', 'plaintext'];
20
21         foreach ($formats as $format) {
22             $resp = $this->get($chapter->getUrl("export/{$format}"));
23             $resp->assertStatus(200);
24             $resp->assertSee($page->name);
25             $resp->assertSee($pageContent);
26         }
27
28         $this->permissions->setEntityPermissions($page, []);
29
30         foreach ($formats as $format) {
31             $resp = $this->get($chapter->getUrl("export/{$format}"));
32             $resp->assertStatus(200);
33             $resp->assertDontSee($page->name);
34             $resp->assertDontSee($pageContent);
35         }
36     }
37
38     public function test_page_content_without_view_access_hidden_on_book_export()
39     {
40         $book = $this->entities->book();
41         $page = $book->pages()->firstOrFail();
42         $pageContent = Str::random(48);
43         $page->html = '<p>' . $pageContent . '</p>';
44         $page->save();
45         $viewer = $this->users->viewer();
46         $this->actingAs($viewer);
47         $formats = ['html', 'plaintext'];
48
49         foreach ($formats as $format) {
50             $resp = $this->get($book->getUrl("export/{$format}"));
51             $resp->assertStatus(200);
52             $resp->assertSee($page->name);
53             $resp->assertSee($pageContent);
54         }
55
56         $this->permissions->setEntityPermissions($page, []);
57
58         foreach ($formats as $format) {
59             $resp = $this->get($book->getUrl("export/{$format}"));
60             $resp->assertStatus(200);
61             $resp->assertDontSee($page->name);
62             $resp->assertDontSee($pageContent);
63         }
64     }
65 }