]> BookStack Code Mirror - bookstack/blob - tests/Permissions/ExportPermissionsTest.php
Apply fixes from StyleCI
[bookstack] / tests / Permissions / ExportPermissionsTest.php
1 <?php
2
3 namespace Tests\Permissions;
4
5 use BookStack\Entities\Models\Book;
6 use BookStack\Entities\Models\Chapter;
7 use Illuminate\Support\Str;
8 use Tests\TestCase;
9
10 class ExportPermissionsTest extends TestCase
11 {
12     public function test_page_content_without_view_access_hidden_on_chapter_export()
13     {
14         $chapter = Chapter::query()->first();
15         $page = $chapter->pages()->firstOrFail();
16         $pageContent = Str::random(48);
17         $page->html = '<p>' . $pageContent . '</p>';
18         $page->save();
19         $viewer = $this->getViewer();
20         $this->actingAs($viewer);
21         $formats = ['html', 'plaintext'];
22
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);
28         }
29
30         $this->setEntityRestrictions($page, []);
31
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);
37         }
38     }
39
40     public function test_page_content_without_view_access_hidden_on_book_export()
41     {
42         $book = Book::query()->first();
43         $page = $book->pages()->firstOrFail();
44         $pageContent = Str::random(48);
45         $page->html = '<p>' . $pageContent . '</p>';
46         $page->save();
47         $viewer = $this->getViewer();
48         $this->actingAs($viewer);
49         $formats = ['html', 'plaintext'];
50
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);
56         }
57
58         $this->setEntityRestrictions($page, []);
59
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);
65         }
66     }
67 }