/**
  * @param \RuntimeException $error
  * @dataProvider getWarmSingleFileExceptionTestValues
  * @test
  */
 public function testWarmuSingleFileHandlesException(\RuntimeException $error)
 {
     $subject = new StandardCacheWarmer();
     $context = new RenderingContextFixture();
     $parser = $this->getMock(TemplateParser::class, ['getOrParseAndStoreTemplate']);
     $parser->expects($this->once())->method('getOrParseAndStoreTemplate')->willThrowException($error);
     $variableProvider = new StandardVariableProvider(['foo' => 'bar']);
     $context->setVariableProvider($variableProvider);
     $context->setTemplateParser($parser);
     $method = new \ReflectionMethod($subject, 'warmSingleFile');
     $method->setAccessible(true);
     $result = $method->invokeArgs($subject, ['/some/file', 'some_file', $context]);
     $this->assertInstanceOf(ParsedTemplateInterface::class, $result);
     $this->assertAttributeNotEmpty('failureReason', $result);
     $this->assertAttributeNotEmpty('mitigations', $result);
 }
Exemple #2
0
 /**
  * @test
  */
 public function testCompileThrowsStopCompilingChildrenException()
 {
     $subject = new WarmupViewHelper();
     $subject->initializeArguments();
     $subject->setRenderChildrenClosure(function () {
         return 'test';
     });
     $subject->setArguments(['variables' => ['foo' => 'bar']]);
     $renderingContext = new RenderingContextFixture();
     $renderingContext->setVariableProvider(new StandardVariableProvider());
     $subject->setRenderingContext($renderingContext);
     $viewHelperNode = $this->getMock(ViewHelperNode::class, ['dummy'], [], '', false);
     $initializationCode = '';
     $this->setExpectedException(StopCompilingChildrenException::class);
     $subject->compile('argumentName', 'closureName', $initializationCode, $viewHelperNode, new TemplateCompiler());
 }
 /**
  * @test
  */
 public function buildObjectTreeDelegatesHandlingOfTemplateElements()
 {
     $templateParser = $this->getAccessibleMock(TemplateParser::class, array('textHandler', 'openingViewHelperTagHandler', 'closingViewHelperTagHandler', 'textAndShorthandSyntaxHandler'));
     $context = new RenderingContextFixture();
     $context->setVariableProvider(new StandardVariableProvider());
     $templateParser->setRenderingContext($context);
     $splitTemplate = $templateParser->_call('splitTemplateAtDynamicTags', 'The first part is simple<![CDATA[<f:for each="{a: {a: 0, b: 2, c: 4}}" as="array"><f:for each="{array}" as="value">{value} </f:for>]]><f:format.printf arguments="{number : 362525200}">%.3e</f:format.printf>and here goes some {text} that could have {shorthand}');
     $result = $templateParser->_call('buildObjectTree', $splitTemplate, TemplateParser::CONTEXT_OUTSIDE_VIEWHELPER_ARGUMENTS);
     $this->assertInstanceOf(ParsingState::class, $result);
 }