function DisplayPageTest::testPageResponses

Same name 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.