3 namespace Tests\Permissions;
5 use Illuminate\Support\Str;
8 class ExportPermissionsTest extends TestCase
10 public function test_page_content_without_view_access_hidden_on_chapter_export()
12 $chapter = $this->entities->chapter();
13 $page = $chapter->pages()->firstOrFail();
14 $pageContent = Str::random(48);
15 $page->html = '<p>' . $pageContent . '</p>';
17 $viewer = $this->users->viewer();
18 $this->actingAs($viewer);
19 $formats = ['html', 'plaintext'];
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);
28 $this->permissions->setEntityPermissions($page, []);
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);
38 public function test_page_content_without_view_access_hidden_on_book_export()
40 $book = $this->entities->book();
41 $page = $book->pages()->firstOrFail();
42 $pageContent = Str::random(48);
43 $page->html = '<p>' . $pageContent . '</p>';
45 $viewer = $this->users->viewer();
46 $this->actingAs($viewer);
47 $formats = ['html', 'plaintext'];
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);
56 $this->permissions->setEntityPermissions($page, []);
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);