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();
 }
Beispiel #5
0
 /**
  * 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());
     }
 }
Beispiel #6
0
 /**
  * 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);
 }