/**
  * Base fallback action.
  * Will be basically used for every legacy module.
  *
  * @return \eZ\Bundle\EzPublishLegacyBundle\LegacyResponse
  */
 public function indexAction()
 {
     $kernelClosure = $this->kernelClosure;
     /** @var \eZ\Publish\Core\MVC\Legacy\Kernel $kernel */
     $kernel = $kernelClosure();
     $legacyMode = $this->configResolver->getParameter('legacy_mode');
     //Empêche le front d'aller dans de l'eZ legacy
     if (!$legacyMode && substr($this->request->getPathInfo(), 0, 18) != '/content/download/') {
         throw new NotFoundHttpException('Adresse non trouvée');
     }
     $kernel->setUseExceptions(false);
     // Fix up legacy URI with current request since we can be in a sub-request here.
     $this->uriHelper->updateLegacyURI($this->request);
     // If we have a layout for legacy AND we're not in legacy mode, we ask the legacy kernel not to generate layout.
     if (isset($this->legacyLayout) && !$legacyMode) {
         $kernel->setUsePagelayout(false);
     }
     $result = $kernel->run();
     $kernel->setUseExceptions(true);
     if ($result instanceof ezpKernelRedirect) {
         return $this->legacyResponseManager->generateRedirectResponse($result);
     }
     $this->legacyHelper->loadDataFromModuleResult($result->getAttribute('module_result'));
     $response = $this->legacyResponseManager->generateResponseFromModuleResult($result);
     $this->legacyResponseManager->mapHeaders(headers_list(), $response);
     return $response;
 }
 /**
  * @dataProvider generateResponseWithCustomLayoutProvider
  */
 public function testGenerateResponseWithCustomLayout($customLayout, $content)
 {
     $contentWithLayout = "<div id=\"i-am-a-twig-layout\">{$content}</div>";
     $moduleResult = array('content' => $content, 'errorCode' => 200);
     $this->configResolver->expects($this->any())->method('getParameter')->will($this->returnValueMap(array(array('module_default_layout', 'ezpublish_legacy', null, $customLayout), array('legacy_mode', null, null, false))));
     $this->templateEngine->expects($this->once())->method('render')->with($customLayout, array('module_result' => $moduleResult))->will($this->returnValue($contentWithLayout));
     $manager = new LegacyResponseManager($this->templateEngine, $this->configResolver);
     $kernelResult = new ezpKernelResult($content, array('module_result' => $moduleResult));
     $response = $manager->generateResponseFromModuleResult($kernelResult);
     $this->assertInstanceOf('eZ\\Bundle\\EzPublishLegacyBundle\\LegacyResponse', $response);
     $this->assertSame($contentWithLayout, $response->getContent());
     $this->assertSame($moduleResult['errorCode'], $response->getStatusCode());
     $this->assertSame($moduleResult, $response->getModuleResult());
 }