public function setUp() { $this->backup_mail_template = ConfigQuery::read('active-mail-template', 'default'); ConfigQuery::write('active-mail-template', 'test'); $this->templateHelper = new TheliaTemplateHelper(); @mkdir($this->templateHelper->getActiveMailTemplate()->getAbsolutePath(), 0777, true); $container = new ContainerBuilder(); $session = new Session(new MockArraySessionStorage()); $request = new Request(); $requestStack = new RequestStack(); $requestStack->push($request); $dispatcher = $this->getMock("Symfony\\Component\\EventDispatcher\\EventDispatcherInterface"); $request->setSession($session); $parserContext = new ParserContext($requestStack, new TheliaFormFactory($requestStack, $container, []), new TheliaFormValidator(new Translator($container), 'dev')); $container->set("event_dispatcher", $dispatcher); $container->set('request', $request); $this->parser = new SmartyParser($requestStack, $dispatcher, $parserContext, $this->templateHelper, 'dev', true); $this->parser->setTemplateDefinition($this->templateHelper->getActiveMailTemplate()); $container->set('thelia.parser', $this->parser); $this->container = $container; }
/** * Check that views for the front routes exists. */ public function testTargetFrontViewsExists() { /** @var Request $request */ $request = $this->getContainer()->get('request'); /** @var EventDispatcherInterface $eventDispatcher */ $eventDispatcher = $this->getContainer()->get('event_dispatcher'); // we are not going to do any actual rendering, so a mock ParserContext should be enough /** @var ParserContext $parserContext */ $parserContext = $this->getMockBuilder('Thelia\\Core\\Template\\ParserContext')->disableOriginalConstructor()->getMock(); $templateHelper = new TheliaTemplateHelper(); $parser = new SmartyParser($request, $eventDispatcher, $parserContext, $templateHelper); $parser->setTemplateDefinition($templateHelper->getActiveFrontTemplate()); $frontRouterFileLoader = $this->routerFileLoaders[static::$routingFilesPathFront]; foreach (static::$routingFiles[static::$routingFilesPathFront] as $fileName) { $router = new Router($frontRouterFileLoader, $fileName); /** @var Route $route */ foreach ($router->getRouteCollection() as $route) { if (null === ($view = $route->getDefault('_view'))) { continue; } $this->assertTrue($parser->templateExists($view . '.html'), "Front view '{$view}' does not exist."); } } }