class StackKernelIntegrationTest

Same name and namespace in other branches
  1. 11.x core/tests/Drupal/KernelTests/Core/HttpKernel/StackKernelIntegrationTest.php \Drupal\KernelTests\Core\HttpKernel\StackKernelIntegrationTest
  2. 10 core/tests/Drupal/KernelTests/Core/HttpKernel/StackKernelIntegrationTest.php \Drupal\KernelTests\Core\HttpKernel\StackKernelIntegrationTest
  3. 8.9.x core/tests/Drupal/KernelTests/Core/HttpKernel/StackKernelIntegrationTest.php \Drupal\KernelTests\Core\HttpKernel\StackKernelIntegrationTest

Tests the stacked kernel functionality.

@group Routing

Hierarchy

Expanded class hierarchy of StackKernelIntegrationTest

File

core/tests/Drupal/KernelTests/Core/HttpKernel/StackKernelIntegrationTest.php, line 15

Namespace

Drupal\KernelTests\Core\HttpKernel
View source
class StackKernelIntegrationTest extends KernelTestBase {
  
  /**
   * Modules to enable.
   *
   * @var array
   */
  protected static $modules = [
    'httpkernel_test',
    'system',
  ];
  
  /**
   * Tests a request.
   */
  public function testRequest() {
    $request = Request::create((new Url('httpkernel_test.empty'))->toString());
    /** @var \Symfony\Component\HttpKernel\HttpKernelInterface $http_kernel */
    $http_kernel = \Drupal::service('http_kernel');
    $http_kernel->handle($request, HttpKernelInterface::MASTER_REQUEST, FALSE);
    $this->assertEquals('world', $request->attributes
      ->get('_hello'));
    $this->assertEquals('test_argument', $request->attributes
      ->get('_previous_optional_argument'));
  }
  
  /**
   * Tests that late middlewares are automatically flagged lazy.
   */
  public function testLazyLateMiddlewares() {
    $this->assertFalse($this->container
      ->getDefinition('http_middleware.reverse_proxy')
      ->isLazy(), 'lazy flag on http_middleware.reverse_proxy definition is not set');
    $this->assertFalse($this->container
      ->getDefinition('http_middleware.kernel_pre_handle')
      ->isLazy(), 'lazy flag on http_middleware.kernel_pre_handle definition is not set');
    $this->assertFalse($this->container
      ->getDefinition('http_middleware.session')
      ->isLazy(), 'lazy flag on http_middleware.session definition is not set');
    $this->assertFalse($this->container
      ->getDefinition('http_kernel.basic')
      ->isLazy(), 'lazy flag on http_kernel.basic definition is not set');
    \Drupal::service('module_installer')->install([
      'page_cache',
    ]);
    $this->container = \Drupal::service('kernel')->rebuildContainer();
    $this->assertFalse($this->container
      ->getDefinition('http_middleware.reverse_proxy')
      ->isLazy(), 'lazy flag on http_middleware.reverse_proxy definition is not set');
    $this->assertFalse($this->container
      ->getDefinition('http_middleware.page_cache')
      ->isLazy(), 'lazy flag on http_middleware.page_cache definition is not set');
    $this->assertTrue($this->container
      ->getDefinition('http_middleware.kernel_pre_handle')
      ->isLazy(), 'lazy flag on http_middleware.kernel_pre_handle definition is automatically set if page_cache is enabled.');
    $this->assertTrue($this->container
      ->getDefinition('http_middleware.session')
      ->isLazy(), 'lazy flag on http_middleware.session definition is automatically set if page_cache is enabled.');
    $this->assertTrue($this->container
      ->getDefinition('http_kernel.basic')
      ->isLazy(), 'lazy flag on http_kernel.basic definition is automatically set if page_cache is enabled.');
  }

}

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