Contains \Drupal\Tests\Core\HttpKernelTest.
<?php /** * @file * Contains \Drupal\Tests\Core\HttpKernelTest. */ namespace Drupal\Tests\Core; use Drupal\Core\Controller\ControllerResolver; use Drupal\Core\DependencyInjection\ContainerBuilder; use Drupal\Core\HttpKernel; use Drupal\Tests\UnitTestCase; use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag; use Symfony\Component\DependencyInjection\Scope; use Symfony\Component\EventDispatcher\EventDispatcher; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\KernelEvents; /** * Tests the custom http kernel of drupal. * * @see \Drupal\Core\HttpKernel */ class HttpKernelTest extends UnitTestCase { public static function getInfo() { return array( 'name' => 'HttpKernel (Unit)', 'description' => 'Tests the HttpKernel.', 'group' => 'Routing', ); } /** * Tests the forward method. * * @see \Drupal\Core\HttpKernel::setupSubrequest() */ public function testSetupSubrequest() { $container = new ContainerBuilder(); $request = new Request(); $container ->addScope(new Scope('request')); $container ->enterScope('request'); $container ->set('request', $request, 'request'); $dispatcher = new EventDispatcher(); $controller_resolver = new ControllerResolver($container); $http_kernel = new HttpKernel($dispatcher, $container, $controller_resolver); $test_controller = '\\Drupal\\Tests\\Core\\Controller\\TestController'; $random_attribute = $this ->randomName(); $subrequest = $http_kernel ->setupSubrequest($test_controller, array( 'custom_attribute' => $random_attribute, ), array( 'custom_query' => $random_attribute, )); $this ->assertNotSame($subrequest, $request, 'The subrequest is not the same as the main request.'); $this ->assertEquals($subrequest->attributes ->get('custom_attribute'), $random_attribute, 'Attributes are set from the subrequest.'); $this ->assertEquals($subrequest->query ->get('custom_query'), $random_attribute, 'Query attributes are set from the subrequest.'); $this ->assertEquals($subrequest->attributes ->get('_controller'), $test_controller, 'Controller attribute got set.'); $subrequest = $http_kernel ->setupSubrequest(NULL, array(), array()); $this ->assertFalse($subrequest->attributes ->has('_controller'), 'Ensure that _controller is not copied when no controller was set before.'); } }