/** * @test */ public function compileDoesNotModifySourceIfItIsAnObjectThatCantBeConvertedToAString() { /** @var AbstractNode|\PHPUnit_Framework_MockObject_MockObject $mockSyntaxTreeNode */ $mockSyntaxTreeNode = $this->getMockBuilder(\TYPO3\Fluid\Core\Parser\SyntaxTree\AbstractNode::class)->disableOriginalConstructor()->getMock(); /** @var TemplateCompiler|\PHPUnit_Framework_MockObject_MockObject $mockTemplateCompiler */ $mockTemplateCompiler = $this->getMockBuilder(\TYPO3\Fluid\Core\Compiler\TemplateCompiler::class)->disableOriginalConstructor()->getMock(); $mockTemplateCompiler->expects($this->once())->method('variableName')->with('value')->will($this->returnValue('$value123')); $initializationPhpCode = '$arguments = array("value" => new \\TYPO3\\Fluid\\ViewHelpers\\Fixtures\\UserWithoutToString("Xaver <b>Cross-Site</b>"), "keepQuotes" => FALSE, "encoding" => "UTF-8", "doubleEncode" => TRUE);' . chr(10); $compiledPhpCode = $this->viewHelper->compile('$arguments', 'NULL', $initializationPhpCode, $mockSyntaxTreeNode, $mockTemplateCompiler); $result = NULL; eval($initializationPhpCode . '$result = ' . $compiledPhpCode . ';'); $this->assertEquals(new UserWithoutToString("Xaver <b>Cross-Site</b>"), $result); }
/** * @test */ public function renderReturnsUnmodifiedSourceIfItIsNoString() { $source = new \stdClass(); $actualResult = $this->viewHelper->render($source); $this->assertSame($source, $actualResult); }