function DisplayPageTest::testPageResponses

Same name and namespace in other branches
  1. 9 core/modules/views/tests/src/Kernel/Plugin/DisplayPageTest.php \Drupal\Tests\views\Kernel\Plugin\DisplayPageTest::testPageResponses()
  2. 8.9.x core/modules/views/tests/src/Kernel/Plugin/DisplayPageTest.php \Drupal\Tests\views\Kernel\Plugin\DisplayPageTest::testPageResponses()
  3. 11.x core/modules/views/tests/src/Kernel/Plugin/DisplayPageTest.php \Drupal\Tests\views\Kernel\Plugin\DisplayPageTest::testPageResponses()

Checks the behavior of the page for access denied/not found behaviors.

File

core/modules/views/tests/src/Kernel/Plugin/DisplayPageTest.php, line 51

Class

DisplayPageTest
Tests the page display plugin.

Namespace

Drupal\Tests\views\Kernel\Plugin

Code

public function testPageResponses() : void {
  \Drupal::currentUser()->setAccount(new AnonymousUserSession());
  $subrequest = Request::create('/test_page_display_403', 'GET');
  $response = $this->container
    ->get('http_kernel')
    ->handle($subrequest, HttpKernelInterface::SUB_REQUEST);
  $this->assertEquals(403, $response->getStatusCode());
  $subrequest = Request::create('/test_page_display_404', 'GET');
  $response = $this->container
    ->get('http_kernel')
    ->handle($subrequest, HttpKernelInterface::SUB_REQUEST);
  $this->assertEquals(404, $response->getStatusCode());
  $subrequest = Request::create('/test_page_display_200', 'GET');
  $response = $this->container
    ->get('http_kernel')
    ->handle($subrequest, HttpKernelInterface::SUB_REQUEST);
  $this->assertEquals(200, $response->getStatusCode());
  $subrequest = Request::create('/test_page_display_200', 'GET');
  \Drupal::getContainer()->get('request_stack')
    ->push($subrequest);
  // Test accessing a disabled page for a view.
  $view = Views::getView('test_page_display');
  // Disable the view, rebuild menu, and request the page again.
  $view->storage
    ->disable()
    ->save();
  // Router rebuild would occur in a kernel terminate event so we need to
  // simulate that here.
  \Drupal::service('router.builder')->rebuild();
  $response = $this->container
    ->get('http_kernel')
    ->handle($subrequest, HttpKernelInterface::SUB_REQUEST);
  $this->assertEquals(404, $response->getStatusCode());
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.