/** * Registers extensions from extension manager. */ protected function registerExtensions() { $extensions = $this->extensionManager->getExtensions(); foreach ($extensions as $extension) { $this->addExtension($extension); } }
public function testTransformAssets() { $loader = $this->getMockBuilder('\\Twig_LoaderInterface')->disableOriginalConstructor()->getMock(); $report = $this->getMockBuilder('\\RAM\\BaseReport')->setMethods(['getName'])->disableOriginalConstructor()->getMockForAbstractClass(); $extensionManager = new RenderEngineExtensionManager(); $router = $this->getMockBuilder('\\Twig_Extension')->disableOriginalConstructor()->setMethods(['getName', 'buildDomHeader', 'getUrl', 'isSafeUrl', 'getHttpsWrappedUrl'])->getMock(); $router->expects($this->any())->method('getName')->willReturn('report_routing'); $router->expects($this->any())->method('isSafeUrl')->willReturn(false); $extensionManager->addExtension($router); $engine = new RenderEngine($loader, $report, [], $extensionManager); $testDoc = null; try { $engine->transformAssetPaths($testDoc); } catch (\Exception $ex) { $this->assertInstanceOf('RAM\\Exception\\ContentNotFoundException', $ex); } $testDoc = '<html> <img src="/bla" /> <link href="/blabla" rel="stylesheet" /> <script src="/blablabla" type="text/javascript"></script> </html>'; $engine->transformAssetPaths($testDoc); }
/** * Setup template engine. * * @param BaseReport $report */ protected function setTemplateEngine(BaseReport $report) { $basePath = $report->getReportPath(); $templatePaths = [$basePath, $this->appPath . '/resources/views']; $loader = new \Twig_Loader_Filesystem($templatePaths); $extensionManager = new RenderEngineExtensionManager(); $router = new ReportRouting($this->templatingHelper, $report); $extensionManager->addExtension($router); $engine = new RenderEngine($loader, $report, [], $extensionManager); $report->setRenderEngine($engine); }
public function testFindExtension() { $manager = new RenderEngineExtensionManager(); $this->assertNull($manager->findExtension('unknown')); }