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