/** * @covers \Splot\Framework\Events\ControllerDidRespond::__construct * @covers \Splot\Framework\Events\ControllerDidRespond::getRequest */ public function testControllerDidRespondToRequest() { $controllerResponse = new ControllerResponse('some response'); $controller = new TestController(new Container()); $request = Request::create('/test/'); $event = new Events\ControllerDidRespond($controllerResponse, 'SplotTestModule:TestController', $controller, 'index', array(), $request); $this->assertSame($event->getRequest(), $request); }
public function onControllerDidRespond(ControllerDidRespond $event) { $request = $event->getRequest(); if (!is_object($request) || !$request instanceof Request) { return; } $controllerResponse = $event->getControllerResponse(); $response = $controllerResponse->getResponse(); if (!is_array($response) || !$request->isXmlHttpRequest()) { return; } $ajaxResponse = $this->transform($response); $controllerResponse->setResponse($ajaxResponse); }
/** * @covers ::render * @covers ::renderController */ public function testRenderingControllers() { $routesModule = new SplotRoutesTestModule(); $this->application->addTestModule($routesModule); $controllerWillRespondCalled = false; $controllerDidRespondCalled = false; $this->application->getContainer()->get('event_manager')->subscribe(ControllerWillRespond::getName(), function () use(&$controllerWillRespondCalled) { $controllerWillRespondCalled = true; }); $this->application->getContainer()->get('event_manager')->subscribe(ControllerDidRespond::getName(), function () use(&$controllerDidRespondCalled) { $controllerDidRespondCalled = true; }); $response = $this->application->render('SplotRoutesTestModule:Item', array('id' => 123)); $this->assertTrue($response instanceof Response); $this->assertEquals('Received Item ID: 123', $response->getContent()); $this->assertTrue($controllerWillRespondCalled); $this->assertTrue($controllerDidRespondCalled); }