Exemplo n.º 1
0
 /**
  * @test
  */
 public function getHeaderShouldReturnHeaderOrDefault()
 {
     $response = new Response();
     $this->assertNull($response->getHeader('tussi'));
     $this->assertSame('lussi', $response->getHeader('tussi', 'lussi'));
     $response->setHeader('tussi', 'watussi');
     $this->assertSame('watussi', $response->getHeader('tussi', 'lussi'));
 }
 /**
  * @test
  */
 public function adaptResponseShouldConvertInternalErrorResponseToSymfonyResponse()
 {
     $iResponse = new InternalResponse();
     $iResponse->setContent('tussi');
     $iResponse->setStatusCode(404);
     $iResponse->setHeader('gran', 'oculusso');
     $adapter = new SymfonyRendererAdapter();
     $response = $adapter->adaptResponse($iResponse);
     $this->assertInstanceOf('Symfony\\Component\\HttpFoundation\\Response', $response);
     $this->assertTrue($response->headers->has('gran'));
     $this->assertSame('Not Found', $response->getContent());
     $this->assertSame(404, $response->getStatusCode());
 }
Exemplo n.º 3
0
 /**
  * Renders a file to a response
  *
  * @param mixed $file
  * @param mixed $version Version string or object
  * @param array $options
  * @return mixed
  */
 public function render($file, $version, array $options = array())
 {
     $version = Version::get($version);
     $response = new Response();
     if (!$file instanceof File) {
         $file = $this->fileRepository->find($file);
         if (!$file) {
             return $this->adaptResponse($response->setStatusCode(404), $version, null);
         }
     }
     // Renderer / authorization evil tag team
     try {
         $event = new FileEvent($file);
         $this->eventDispatcher->dispatch(Events::RENDERER_BEFORE_RENDER, $event);
     } catch (AccessDeniedException $e) {
         return $this->adaptResponse($response->setStatusCode(403), $version, $file);
     }
     try {
         $provider = $this->profiles->getVersionProvider($file, $version);
         $version = $provider->ensureValidVersion($version);
     } catch (InvalidVersionException $e) {
         return $this->adaptResponse($response->setStatusCode(404), $version, null);
     }
     if (!$this->versionIsObtainable($file, $version)) {
         return $this->adaptResponse($response->setStatusCode(404), $version, $file);
     }
     $options = $this->mergeOptions($options);
     if ($options['download'] == true) {
         $response->setHeader('Content-disposition', "attachment; filename={$file->getName()}");
     }
     $retrieved = new FileObject($this->retrieve($file, $version));
     $response->setHeader('Content-Type', $retrieved->getMimetype());
     $this->injectContentToResponse($retrieved, $response);
     return $this->adaptResponse($response, $version, $file);
 }