3 namespace Drupal\Tests\Core\EventSubscriber;
5 use Drupal\Tests\UnitTestCase;
6 use \Drupal\Core\EventSubscriber\PsrResponseSubscriber;
9 * @coversDefaultClass \Drupal\Core\EventSubscriber\PsrResponseSubscriber
10 * @group EventSubscriber
12 class PsrResponseSubscriberTest extends UnitTestCase {
15 * The tested path root subscriber.
17 * @var \Drupal\Core\EventSubscriber\PsrResponseSubscriber
19 protected $psrResponseSubscriber;
22 * The tested path root subscriber.
24 * @var \Symfony\Bridge\PsrHttpMessage\HttpFoundationFactoryInterface|\PHPUnit_Framework_MockObject_MockObject
26 protected $httpFoundationFactoryMock;
31 protected function setUp() {
32 $factory = $this->getMock('Symfony\Bridge\PsrHttpMessage\HttpFoundationFactoryInterface', [], [], '', NULL);
34 ->expects($this->any())
35 ->method('createResponse')
36 ->willReturn($this->getMock('Symfony\Component\HttpFoundation\Response'));
38 $this->httpFoundationFactoryMock = $factory;
40 $this->psrResponseSubscriber = new PsrResponseSubscriber($this->httpFoundationFactoryMock);
44 * Tests altering and finished event.
46 * @covers ::onKernelView
48 public function testConvertsControllerResult() {
49 $event = $this->createEventMock($this->getMock('Psr\Http\Message\ResponseInterface'));
51 ->expects($this->once())
52 ->method('setResponse')
53 ->with($this->isInstanceOf('Symfony\Component\HttpFoundation\Response'));
54 $this->psrResponseSubscriber->onKernelView($event);
59 * Tests altering and finished event.
61 * @covers ::onKernelView
63 public function testDoesNotConvertControllerResult() {
64 $event = $this->createEventMock([]);
66 ->expects($this->never())
67 ->method('setResponse');
68 $this->psrResponseSubscriber->onKernelView($event);
69 $event = $this->createEventMock(NULL);
71 ->expects($this->never())
72 ->method('setResponse');
73 $this->psrResponseSubscriber->onKernelView($event);
77 * Sets up an alias event that return $controllerResult.
79 * @param mixed $controller_result
82 * @return \Symfony\Component\HttpKernel\Event\GetResponseForControllerResultEvent|\PHPUnit_Framework_MockObject_MockObject
83 * A mock object to test.
85 protected function createEventMock($controller_result) {
86 $event = $this->getMock('Symfony\Component\HttpKernel\Event\GetResponseForControllerResultEvent', [], [], '', NULL);
88 ->expects($this->once())
89 ->method('getControllerResult')
90 ->willReturn($controller_result);