X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/b8e2d75014c89c9e345c3f940ec8743bd158df67..refs/pull/3918/head:/tests/PublicActionTest.php diff --git a/tests/PublicActionTest.php b/tests/PublicActionTest.php index 7dbf467bd..7e3f7be00 100644 --- a/tests/PublicActionTest.php +++ b/tests/PublicActionTest.php @@ -1,33 +1,34 @@ -setSettings(['app-public' => 'false']); - $book = Book::query()->first(); + $book = $this->entities->book(); $this->get('/books')->assertRedirect('/login'); $this->get($book->getUrl())->assertRedirect('/login'); - $page = Page::query()->first(); + $page = $this->entities->page(); $this->get($page->getUrl())->assertRedirect('/login'); } public function test_login_link_visible() { $this->setSettings(['app-public' => 'true']); - $this->get('/')->assertElementExists('a[href="'.url('/login').'"]'); + $resp = $this->get('/'); + $this->withHtml($resp)->assertElementExists('a[href="' . url('/http/source.bookstackapp.com/login') . '"]'); } public function test_register_link_visible_when_enabled() @@ -88,34 +89,34 @@ class PublicActionTest extends TestCase foreach (RolePermission::all() as $perm) { $publicRole->attachPermission($perm); } - $this->app[PermissionService::class]->buildJointPermissionForRole($publicRole); + $this->app->make(JointPermissionBuilder::class)->rebuildForRole($publicRole); + user()->clearPermissionCache(); - /** @var Chapter $chapter */ - $chapter = Chapter::query()->first(); + $chapter = $this->entities->chapter(); $resp = $this->get($chapter->getUrl()); $resp->assertSee('New Page'); - $resp->assertElementExists('a[href="'.$chapter->getUrl('/create-page').'"]'); + $this->withHtml($resp)->assertElementExists('a[href="' . $chapter->getUrl('/create-page') . '"]'); $resp = $this->get($chapter->getUrl('/create-page')); $resp->assertSee('Continue'); $resp->assertSee('Page Name'); - $resp->assertElementExists('form[action="'.$chapter->getUrl('/create-guest-page').'"]'); + $this->withHtml($resp)->assertElementExists('form[action="' . $chapter->getUrl('/create-guest-page') . '"]'); $resp = $this->post($chapter->getUrl('/create-guest-page'), ['name' => 'My guest page']); $resp->assertRedirect($chapter->book->getUrl('/page/my-guest-page/edit')); $user = User::getDefault(); $this->assertDatabaseHas('pages', [ - 'name' => 'My guest page', + 'name' => 'My guest page', 'chapter_id' => $chapter->id, 'created_by' => $user->id, - 'updated_by' => $user->id + 'updated_by' => $user->id, ]); } public function test_content_not_listed_on_404_for_public_users() { - $page = Page::query()->first(); + $page = $this->entities->page(); $page->fill(['name' => 'my testing random unique page name'])->save(); $this->asAdmin()->get($page->getUrl()); // Fake visit to show on recents $resp = $this->get('/cats/dogs/hippos'); @@ -137,7 +138,7 @@ class PublicActionTest extends TestCase $resp = $this->get('/robots.txt'); $resp->assertSee("User-agent: *\nDisallow:"); - $resp->assertDontSee("Disallow: /"); + $resp->assertDontSee('Disallow: /'); } public function test_robots_effected_by_setting() @@ -148,7 +149,7 @@ class PublicActionTest extends TestCase $resp = $this->get('/robots.txt'); $resp->assertSee("User-agent: *\nDisallow:"); - $resp->assertDontSee("Disallow: /"); + $resp->assertDontSee('Disallow: /'); // Check config overrides app-public setting config()->set('app.allow_robots', false); @@ -159,8 +160,7 @@ class PublicActionTest extends TestCase public function test_public_view_then_login_redirects_to_previous_content() { $this->setSettings(['app-public' => 'true']); - /** @var Book $book */ - $book = Book::query()->first(); + $book = $this->entities->book(); $resp = $this->get($book->getUrl()); $resp->assertSee($book->name); @@ -172,9 +172,8 @@ class PublicActionTest extends TestCase public function test_access_hidden_content_then_login_redirects_to_intended_content() { $this->setSettings(['app-public' => 'true']); - /** @var Book $book */ - $book = Book::query()->first(); - $this->setEntityRestrictions($book); + $book = $this->entities->book(); + $this->entities->setPermissions($book); $resp = $this->get($book->getUrl()); $resp->assertSee('Book not found'); @@ -184,4 +183,4 @@ class PublicActionTest extends TestCase $resp->assertRedirect($book->getUrl()); $this->followRedirects($resp)->assertSee($book->name); } -} \ No newline at end of file +}