2 namespace TYPO3\CMS\Fluid\Tests\Unit\Core\Parser\Interceptor;
17 class EscapeTest extends \TYPO3\CMS\Core\Tests\UnitTestCase
41 $this->escapeInterceptor = $this->getAccessibleMock(\TYPO3\CMS\
Fluid\Core\Parser\Interceptor\Escape::class, array(
'dummy'));
42 $this->mockViewHelper = $this->getMock(\TYPO3\CMS\
Fluid\Core\ViewHelper\AbstractViewHelper::class);
43 $this->mockNode = $this->getMock(\TYPO3\CMS\
Fluid\Core\Parser\SyntaxTree\ViewHelperNode::class, array(), array(),
'',
false);
44 $this->mockParsingState = $this->getMock(\TYPO3\CMS\
Fluid\Core\Parser\ParsingState::class);
52 $interceptorPosition = \TYPO3\CMS\Fluid\Core\Parser\InterceptorInterface::INTERCEPT_OPENING_VIEWHELPER;
53 $this->mockViewHelper->expects($this->once())->method(
'isEscapingInterceptorEnabled')->will($this->returnValue(
true));
54 $this->mockNode->expects($this->once())->method(
'getUninitializedViewHelper')->will($this->returnValue($this->mockViewHelper));
56 $this->assertTrue($this->escapeInterceptor->_get(
'interceptorEnabled'));
57 $this->escapeInterceptor->process($this->mockNode, $interceptorPosition, $this->mockParsingState);
58 $this->assertTrue($this->escapeInterceptor->_get(
'interceptorEnabled'));
66 $interceptorPosition = \TYPO3\CMS\Fluid\Core\Parser\InterceptorInterface::INTERCEPT_OPENING_VIEWHELPER;
67 $this->mockViewHelper->expects($this->once())->method(
'isEscapingInterceptorEnabled')->will($this->returnValue(
false));
68 $this->mockNode->expects($this->once())->method(
'getUninitializedViewHelper')->will($this->returnValue($this->mockViewHelper));
70 $this->assertTrue($this->escapeInterceptor->_get(
'interceptorEnabled'));
71 $this->escapeInterceptor->process($this->mockNode, $interceptorPosition, $this->mockParsingState);
72 $this->assertFalse($this->escapeInterceptor->_get(
'interceptorEnabled'));
80 $interceptorPosition = \TYPO3\CMS\Fluid\Core\Parser\InterceptorInterface::INTERCEPT_CLOSING_VIEWHELPER;
82 $this->escapeInterceptor->_set(
'interceptorEnabled',
false);
83 $this->escapeInterceptor->_set(
'viewHelperNodesWhichDisableTheInterceptor', array($this->mockNode));
85 $this->escapeInterceptor->process($this->mockNode, $interceptorPosition, $this->mockParsingState);
86 $this->assertTrue($this->escapeInterceptor->_get(
'interceptorEnabled'));
94 $interceptorPosition = \TYPO3\CMS\Fluid\Core\Parser\InterceptorInterface::INTERCEPT_OBJECTACCESSOR;
95 $mockNode = $this->getMock(\TYPO3\CMS\
Fluid\Core\Parser\SyntaxTree\ObjectAccessorNode::class, array(), array(),
'',
false);
96 $mockEscapeViewHelper = $this->getMock(\TYPO3\CMS\
Fluid\ViewHelpers\Format\HtmlspecialcharsViewHelper::class);
97 $mockObjectManager = $this->getMock(\TYPO3\CMS\Extbase\Object\ObjectManagerInterface::class);
98 $mockObjectManager->expects($this->at(0))->method(
'get')->with(\TYPO3\CMS\
Fluid\ViewHelpers\Format\HtmlspecialcharsViewHelper::class)->will($this->returnValue($mockEscapeViewHelper));
99 $mockObjectManager->expects($this->at(1))->method(
'get')->with(\TYPO3\CMS\
Fluid\Core\Parser\SyntaxTree\ViewHelperNode::class, $mockEscapeViewHelper, array(
'value' =>
$mockNode))->will($this->returnValue($this->mockNode));
100 $this->escapeInterceptor->_set(
'objectManager', $mockObjectManager);
102 $actualResult = $this->escapeInterceptor->process(
$mockNode, $interceptorPosition, $this->mockParsingState);
103 $this->assertSame($this->mockNode, $actualResult);