+ public function test_content_not_listed_on_404_for_public_users()
+ {
+ $page = Page::first();
+ $this->asAdmin()->visit($page->getUrl());
+ Auth::logout();
+ view()->share('pageTitle', '');
+ $this->forceVisit('/cats/dogs/hippos');
+ $this->dontSee($page->name);
+ }
+
+ public function test_robots_effected_by_public_status()
+ {
+ $this->visit('/robots.txt');
+ $this->seeText("User-agent: *\nDisallow: /");
+
+ $this->setSettings(['app-public' => 'true']);
+ $this->visit('/robots.txt');
+
+ $this->seeText("User-agent: *\nDisallow:");
+ $this->dontSeeText("Disallow: /");
+ }
+
+ public function test_robots_effected_by_setting()
+ {
+ $this->visit('/robots.txt');
+ $this->seeText("User-agent: *\nDisallow: /");
+
+ config()->set('app.allow_robots', true);
+ $this->visit('/robots.txt');
+
+ $this->seeText("User-agent: *\nDisallow:");
+ $this->dontSeeText("Disallow: /");
+
+ // Check config overrides app-public setting
+ config()->set('app.allow_robots', false);
+ $this->setSettings(['app-public' => 'true']);
+ $this->visit('/robots.txt');
+
+ $this->seeText("User-agent: *\nDisallow: /");
+ }
+
+ public function test_public_view_then_login_redirects_to_previous_content()
+ {
+ $this->setSettings(['app-public' => 'true']);
+ $book = Book::query()->first();
+ $this->visit($book->getUrl())
+ ->see($book->name)
+ ->visit('/login')
+ ->type('password', '#password')
+ ->press('Log In')
+ ->seePageUrlIs($book->getUrl());
+ }
+
+ public function test_access_hidden_content_then_login_redirects_to_intended_content()
+ {
+ $this->setSettings(['app-public' => 'true']);
+ $book = Book::query()->first();
+ $this->setEntityRestrictions($book);
+
+ try {
+ $this->visit($book->getUrl());
+ } catch (\Exception $exception) {}
+
+ $this->see('Book not found')
+ ->dontSee($book->name)
+ ->visit('/login')
+ ->type('password', '#password')
+ ->press('Log In')
+ ->seePageUrlIs($book->getUrl())
+ ->see($book->name);
+ }