public function testNonStringResultDoesNotInjectResponse() { $this->event->setResponse($this->response); $this->event->setRenderer($this->renderer); $this->event->setResult($this->response); $this->strategy->injectResponse($this->event); $this->assertResponseNotInjected(); }
/** * */ public function testInjectResponseSetsContentTypeHeaderToApiProblemForApiProblemModel() { $problem = new ApiProblem(500, "Error message"); $model = new ApiProblemModel($problem); $this->event->setModel($model); $this->event->setRenderer($this->renderer); $this->event->setResult('{"foo":"bar"}'); $this->strategy->injectResponse($this->event); $headers = $this->response->getHeaders(); $this->assertTrue($headers->has('Content-Type')); $header = $headers->get('Content-Type'); $this->assertEquals('application/problem+json', $header->getFieldValue()); }
public function testResponseHeadersWithFileName() { $model = new PdfModel(); $model->setTemplate('basic.phtml'); $model->setOption('filename', 'testPdfFileName'); $this->event->setModel($model); $this->event->setResponse($this->response); $this->event->setRenderer($this->renderer); $this->event->setResult($this->renderer->render($model)); $this->strategy->injectResponse($this->event); $headers = $this->event->getResponse()->getHeaders(); $contentDisposition = $headers->get('Content-Disposition'); $this->assertInstanceOf('Zend\\Http\\Header\\ContentDisposition', $contentDisposition); $this->assertEquals($contentDisposition->getFieldValue(), 'attachment; filename=testPdfFileName.pdf'); ob_end_flush(); // Clear out any buffers held by renderers. }
public function testResponseHeadersWithFileName() { $model = $this->serviceManager->get('PdfModel'); $model->setTemplate('basic.phtml'); $model->getPdfOptions()->setFilename('testPdfFileName'); $model->getPdfOptions()->setFooterLines([['text' => 'top line', 'position' => 'center', 'font' => ['family' => 'Helvetica', 'weight' => 'normal', 'size' => 8]], ['text' => 'second line', 'position' => 'left', 'font' => ['family' => 'Helvetica', 'weight' => 'normal', 'size' => 8]], ['text' => 'third line', 'position' => 'right', 'font' => ['family' => 'Helvetica', 'weight' => 'normal', 'size' => 8]]]); $model->getPdfOptions()->setHeaderLines([['text' => 'first line', 'position' => 'center', 'font' => ['family' => 'Helvetica', 'weight' => 'normal', 'size' => 8]]]); $this->event->setModel($model); $this->event->setResponse($this->response); $this->event->setRenderer($this->renderer); $this->event->setResult($this->renderer->render($model)); $this->strategy->injectResponse($this->event); $headers = $this->event->getResponse()->getHeaders(); $contentDispositionHeader = $headers->get('Content-Disposition'); $this->assertInstanceof('Zend\\Http\\Header\\ContentDisposition', $contentDispositionHeader); $this->assertEquals($contentDispositionHeader->getFieldValue(), 'attachment; filename=testPdfFileName.pdf'); ob_end_flush(); }
/** * Restore the default PhpRenderer, in order to let Zend\View\Strategy\PhpRendererStrategy * to trigger his injectResponse() * * @param ViewEvent $e */ public function restoreRenderer(ViewEvent $e) { $renderer = $e->getRenderer(); if ($renderer === $this) { $e->setRenderer($this->getDefaultPhpRenderer()); } }
/** * Test Process Rcm Responses with a Zend Http Response. Method should * return early. * * @return void * * @covers \Rcm\EventListener\ViewEventListener::processRcmResponses */ public function testProcessRcmResponsesWithZendResponseObject() { $event = new ViewEvent(); $response = new ZendHttpResponse(); $response->setStatusCode(404); $mockResponseHandler = $this->getMockBuilder('Rcm\\Service\\ResponseHandler')->disableOriginalConstructor()->getMock(); $mockResponseHandler->expects($this->never())->method('processResponse'); $mockContainerPlugin = $this->getMockBuilder('\\Rcm\\View\\Helper\\Container')->disableOriginalConstructor()->getMock(); $mockContainerPlugin->expects($this->any())->method('getResponse')->will($this->returnValue($response)); $mockRenderer = $this->getMockBuilder('\\Zend\\View\\Renderer\\PhpRenderer')->disableOriginalConstructor()->getMock(); $mockRenderer->expects($this->any())->method('plugin')->will($this->returnValue($mockContainerPlugin)); /** @var \Zend\View\Renderer\PhpRenderer $mockRenderer */ $event->setRenderer($mockRenderer); /** @var \Rcm\Service\ResponseHandler $mockResponseHandler */ $listener = new ViewEventListener($mockResponseHandler); $listener->processRcmResponses($event); }