3 namespace Drupal\KernelTests\Core\HttpKernel;
6 use Drupal\KernelTests\KernelTestBase;
7 use Symfony\Component\HttpFoundation\Request;
8 use Symfony\Component\HttpKernel\HttpKernelInterface;
11 * Tests the stacked kernel functionality.
15 class StackKernelIntegrationTest extends KernelTestBase {
22 public static $modules = ['httpkernel_test', 'system'];
27 protected function setUp() {
29 \Drupal::service('router.builder')->rebuild();
35 public function testRequest() {
36 $request = Request::create((new Url('httpkernel_test.empty'))->toString());
37 /** @var \Symfony\Component\HttpKernel\HttpKernelInterface $http_kernel */
38 $http_kernel = \Drupal::service('http_kernel');
39 $http_kernel->handle($request, HttpKernelInterface::MASTER_REQUEST, FALSE);
41 $this->assertEqual($request->attributes->get('_hello'), 'world');
42 $this->assertEqual($request->attributes->get('_previous_optional_argument'), 'test_argument');
46 * Tests that late middlewares are automatically flagged lazy.
48 public function testLazyLateMiddlewares() {
49 $this->assertFalse($this->container->getDefinition('http_middleware.reverse_proxy')->isLazy(), 'lazy flag on http_middleware.reverse_proxy definition is not set');
50 $this->assertFalse($this->container->getDefinition('http_middleware.kernel_pre_handle')->isLazy(), 'lazy flag on http_middleware.kernel_pre_handle definition is not set');
51 $this->assertFalse($this->container->getDefinition('http_middleware.session')->isLazy(), 'lazy flag on http_middleware.session definition is not set');
52 $this->assertFalse($this->container->getDefinition('http_kernel.basic')->isLazy(), 'lazy flag on http_kernel.basic definition is not set');
54 \Drupal::service('module_installer')->install(['page_cache']);
55 $this->container = \Drupal::service('kernel')->rebuildContainer();
57 $this->assertFalse($this->container->getDefinition('http_middleware.reverse_proxy')->isLazy(), 'lazy flag on http_middleware.reverse_proxy definition is not set');
58 $this->assertFalse($this->container->getDefinition('http_middleware.page_cache')->isLazy(), 'lazy flag on http_middleware.page_cache definition is not set');
59 $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.');
60 $this->assertTrue($this->container->getDefinition('http_middleware.session')->isLazy(), 'lazy flag on http_middleware.session definition is automatically set if page_cache is enabled.');
61 $this->assertTrue($this->container->getDefinition('http_kernel.basic')->isLazy(), 'lazy flag on http_kernel.basic definition is automatically set if page_cache is enabled.');