TYPO3  7.6
ViewHelperNodeTest.php
Go to the documentation of this file.
1 <?php
2 namespace TYPO3\CMS\Fluid\Tests\Unit\Core\Parser\SyntaxTree;
3 
4 /* *
5  * This script is backported from the TYPO3 Flow package "TYPO3.Fluid". *
6  * *
7  * It is free software; you can redistribute it and/or modify it under *
8  * the terms of the GNU Lesser General Public License, either version 3 *
9  * of the License, or (at your option) any later version. *
10  * *
11  * The TYPO3 project - inspiring people to share! *
12  * */
13 
17 class ViewHelperNodeTest extends \TYPO3\CMS\Core\Tests\UnitTestCase
18 {
24  protected $renderingContext;
25 
31  protected $mockObjectManager;
32 
39 
43  protected $controllerContext;
44 
49 
53  protected function setUp()
54  {
55  $this->renderingContext = $this->getAccessibleMock(\TYPO3\CMS\Fluid\Core\Rendering\RenderingContext::class);
56 
57  $this->mockObjectManager = $this->getMock(\TYPO3\CMS\Extbase\Object\ObjectManagerInterface::class);
58  $this->renderingContext->_set('objectManager', $this->mockObjectManager);
59 
60  $this->templateVariableContainer = $this->getMock(\TYPO3\CMS\Fluid\Core\ViewHelper\TemplateVariableContainer::class);
61  $this->renderingContext->injectTemplateVariableContainer($this->templateVariableContainer);
62 
63  $this->controllerContext = $this->getMock(\TYPO3\CMS\Extbase\Mvc\Controller\ControllerContext::class, array(), array(), '', false);
64  $this->renderingContext->setControllerContext($this->controllerContext);
65 
66  $this->viewHelperVariableContainer = $this->getMock(\TYPO3\CMS\Fluid\Core\ViewHelper\ViewHelperVariableContainer::class);
67  $this->renderingContext->_set('viewHelperVariableContainer', $this->viewHelperVariableContainer);
68  }
69 
74  {
75  $viewHelper = $this->getMock(\TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper::class);
76  $arguments = array('foo' => 'bar');
77  $viewHelperNode = $this->getAccessibleMock(\TYPO3\CMS\Fluid\Core\Parser\SyntaxTree\ViewHelperNode::class, array('dummy'), array($viewHelper, $arguments));
78 
79  $this->assertEquals(get_class($viewHelper), $viewHelperNode->getViewHelperClassName());
80  $this->assertEquals($arguments, $viewHelperNode->_get('arguments'));
81  }
82 
87  {
88  $childNode = $this->getMock(\TYPO3\CMS\Fluid\Core\Parser\SyntaxTree\TextNode::class, array(), array('foo'));
89 
90  $mockViewHelper = $this->getMock(\TYPO3\CMS\Fluid\Tests\Unit\Core\Parser\Fixtures\ChildNodeAccessFacetViewHelper::class, array('setChildNodes', 'initializeArguments', 'render', 'prepareArguments'));
91 
92  $viewHelperNode = new \TYPO3\CMS\Fluid\Core\Parser\SyntaxTree\ViewHelperNode($mockViewHelper, array());
93  $viewHelperNode->addChildNode($childNode);
94 
95  $mockViewHelper->expects($this->once())->method('setChildNodes')->with($this->equalTo(array($childNode)));
96 
97  $viewHelperNode->evaluate($this->renderingContext);
98  }
99 
104  {
105  $mockViewHelper = $this->getMock(\TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper::class, array('initializeArgumentsAndRender', 'prepareArguments'));
106  $mockViewHelper->expects($this->once())->method('initializeArgumentsAndRender');
107 
108  $viewHelperNode = new \TYPO3\CMS\Fluid\Core\Parser\SyntaxTree\ViewHelperNode($mockViewHelper, array());
109 
110  $viewHelperNode->evaluate($this->renderingContext);
111  }
112 
117  {
118  $arguments = array(
119  'param0' => new \TYPO3\CMS\Fluid\Core\ViewHelper\ArgumentDefinition('param1', 'string', 'Hallo', true, null, false),
120  'param1' => new \TYPO3\CMS\Fluid\Core\ViewHelper\ArgumentDefinition('param1', 'string', 'Hallo', true, null, true),
121  'param2' => new \TYPO3\CMS\Fluid\Core\ViewHelper\ArgumentDefinition('param2', 'string', 'Hallo', true, null, true)
122  );
123 
124  $mockViewHelper = $this->getMock(\TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper::class, array('initializeArgumentsAndRender', 'prepareArguments'));
125  $mockViewHelper->expects($this->any())->method('prepareArguments')->will($this->returnValue($arguments));
126  $mockViewHelper->expects($this->once())->method('initializeArgumentsAndRender');
127 
128  $viewHelperNode = new \TYPO3\CMS\Fluid\Core\Parser\SyntaxTree\ViewHelperNode($mockViewHelper, array(
129  'param2' => new \TYPO3\CMS\Fluid\Core\Parser\SyntaxTree\TextNode('b'),
130  'param1' => new \TYPO3\CMS\Fluid\Core\Parser\SyntaxTree\TextNode('a')
131  ));
132 
133  $viewHelperNode->evaluate($this->renderingContext);
134  }
135 
140  {
141  $mockViewHelper = $this->getMock(\TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper::class, array('render', 'validateArguments', 'prepareArguments', 'setRenderingContext'));
142  $mockViewHelper->expects($this->once())->method('setRenderingContext')->with($this->renderingContext);
143 
144  $viewHelperNode = new \TYPO3\CMS\Fluid\Core\Parser\SyntaxTree\ViewHelperNode($mockViewHelper, array());
145 
146  $viewHelperNode->evaluate($this->renderingContext);
147  }
148 
153  {
154  $mockViewHelper = $this->getMock(\TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper::class, array('render', 'validateArguments', 'prepareArguments', 'setViewHelperVariableContainer'));
155  $mockViewHelper->expects($this->any())->method('render')->will($this->returnValue('String'));
156 
157  $viewHelperNode = new \TYPO3\CMS\Fluid\Core\Parser\SyntaxTree\ViewHelperNode($mockViewHelper, array());
158 
159  $viewHelperNode->evaluate($this->renderingContext);
160  $viewHelperNode->evaluate($this->renderingContext);
161  }
162 }