2 namespace TYPO3\CMS\Fluid\Tests\Unit\Core\ViewHelper;
32 'defaultValue' => null
39 'defaultValue' => null
46 'defaultValue' =>
'default'
55 'integer $param1 P1 Stuff',
56 'array $param2 P2 Stuff',
57 'string $param3 P3 Stuff'
63 $this->mockReflectionService = $this->getMock(\TYPO3\CMS\Extbase\Reflection\ReflectionService::class, array(), array(),
'',
false);
71 $viewHelper = $this->getAccessibleMock(\TYPO3\CMS\
Fluid\Core\ViewHelper\AbstractViewHelper::class, array(
'render'), array(),
'',
false);
72 $viewHelper->injectReflectionService($this->mockReflectionService);
74 $name =
'This is a name';
75 $description =
'Example desc';
78 $expected = new \TYPO3\CMS\Fluid\Core\ViewHelper\ArgumentDefinition($name, $type, $description, $isRequired);
80 $viewHelper->_call(
'registerArgument', $name, $type, $description, $isRequired);
81 $this->assertEquals(array($name => $expected), $viewHelper->prepareArguments(),
'Argument definitions not returned correctly.');
90 $viewHelper = $this->getAccessibleMock(\TYPO3\CMS\
Fluid\Core\ViewHelper\AbstractViewHelper::class, array(
'render'), array(),
'',
false);
93 $description =
'Example desc';
97 $viewHelper->_call(
'registerArgument', $name, $type, $description, $isRequired);
98 $viewHelper->_call(
'registerArgument', $name,
'integer', $description, $isRequired);
106 $viewHelper = $this->getAccessibleMock(\TYPO3\CMS\
Fluid\Core\ViewHelper\AbstractViewHelper::class, array(
'render'), array(),
'',
false);
107 $viewHelper->injectReflectionService($this->mockReflectionService);
109 $name =
'argumentName';
110 $description =
'argument description';
111 $overriddenDescription =
'overwritten argument description';
113 $overriddenType =
'integer';
115 $expected = new \TYPO3\CMS\Fluid\Core\ViewHelper\ArgumentDefinition($name, $overriddenType, $overriddenDescription, $isRequired);
117 $viewHelper->_call(
'registerArgument', $name, $type, $description, $isRequired);
118 $viewHelper->_call(
'overrideArgument', $name, $overriddenType, $overriddenDescription, $isRequired);
119 $this->assertEquals($viewHelper->prepareArguments(), array($name => $expected),
'Argument definitions not returned correctly. The original ArgumentDefinition could not be overridden.');
128 $viewHelper = $this->getAccessibleMock(\TYPO3\CMS\
Fluid\Core\ViewHelper\AbstractViewHelper::class, array(
'render'), array(),
'',
false);
129 $viewHelper->injectReflectionService($this->mockReflectionService);
131 $viewHelper->_call(
'overrideArgument',
'argumentName',
'string',
'description',
true);
139 $viewHelper = $this->getAccessibleMock(\TYPO3\CMS\
Fluid\Core\ViewHelper\AbstractViewHelper::class, array(
'render',
'initializeArguments'), array(),
'',
false);
140 $viewHelper->injectReflectionService($this->mockReflectionService);
142 $viewHelper->expects($this->once())->method(
'initializeArguments');
144 $viewHelper->prepareArguments();
152 \TYPO3\CMS\Fluid\Fluid::$debugMode =
true;
154 $dataCacheMock = $this->getMock(\TYPO3\CMS\Core\Cache\Frontend\VariableFrontend::class, array(), array(),
'',
false);
155 $dataCacheMock->expects($this->any())->method(
'has')->will($this->returnValue(
true));
156 $dataCacheMock->expects($this->any())->method(
'get')->will($this->returnValue(array()));
158 $viewHelper = new \TYPO3\CMS\Fluid\Tests\Unit\Core\Fixtures\TestViewHelper();
160 $this->mockReflectionService->expects($this->once())->method(
'getMethodParameters')->with(\TYPO3\CMS\
Fluid\Tests\Unit\Core\Fixtures\TestViewHelper::class,
'render')->will($this->returnValue($this->fixtureMethodParameters));
161 $this->mockReflectionService->expects($this->once())->method(
'getMethodTagsValues')->with(\TYPO3\CMS\
Fluid\Tests\Unit\Core\Fixtures\TestViewHelper::class,
'render')->will($this->returnValue($this->fixtureMethodTags));
162 $viewHelper->injectReflectionService($this->mockReflectionService);
165 'param1' =>
new \TYPO3\CMS\
Fluid\Core\ViewHelper\ArgumentDefinition(
'param1',
'integer',
'P1 Stuff',
true, null,
true),
166 'param2' =>
new \TYPO3\CMS\
Fluid\Core\ViewHelper\ArgumentDefinition(
'param2',
'array',
'P2 Stuff',
true, null,
true),
167 'param3' =>
new \TYPO3\CMS\
Fluid\Core\ViewHelper\ArgumentDefinition(
'param3',
'string',
'P3 Stuff',
false,
'default',
true),
170 $this->assertEquals($expected, $viewHelper->prepareArguments(),
'Annotation based arguments were not registered.');
172 \TYPO3\CMS\Fluid\Fluid::$debugMode =
false;
180 \TYPO3\CMS\Fluid\Fluid::$debugMode =
false;
182 $dataCacheMock = $this->getMock(\TYPO3\CMS\Core\Cache\Frontend\VariableFrontend::class, array(), array(),
'',
false);
183 $dataCacheMock->expects($this->any())->method(
'has')->will($this->returnValue(
true));
184 $dataCacheMock->expects($this->any())->method(
'get')->will($this->returnValue(array()));
186 $viewHelper = new \TYPO3\CMS\Fluid\Tests\Unit\Core\Fixtures\TestViewHelper2();
188 $this->mockReflectionService->expects($this->once())->method(
'getMethodParameters')->with(\TYPO3\CMS\
Fluid\Tests\Unit\Core\Fixtures\TestViewHelper2::class,
'render')->will($this->returnValue($this->fixtureMethodParameters));
189 $this->mockReflectionService->expects($this->never())->method(
'getMethodTagsValues');
190 $viewHelper->injectReflectionService($this->mockReflectionService);
193 'param1' =>
new \TYPO3\CMS\
Fluid\Core\ViewHelper\ArgumentDefinition(
'param1',
'integer',
'',
true, null,
true),
194 'param2' =>
new \TYPO3\CMS\
Fluid\Core\ViewHelper\ArgumentDefinition(
'param2',
'array',
'',
true, null,
true),
195 'param3' =>
new \TYPO3\CMS\
Fluid\Core\ViewHelper\ArgumentDefinition(
'param3',
'string',
'',
false,
'default',
true)
198 $this->assertEquals($expected, $viewHelper->prepareArguments(),
'Annotation based arguments were not registered.');
206 $viewHelper = $this->getAccessibleMock(\TYPO3\CMS\
Fluid\Core\ViewHelper\AbstractViewHelper::class, array(
'render',
'prepareArguments'), array(),
'',
false);
207 $viewHelper->injectReflectionService($this->mockReflectionService);
209 $viewHelper->expects($this->once())->method(
'prepareArguments')->will($this->returnValue(array()));
211 $viewHelper->validateArguments();
219 $viewHelper = $this->getAccessibleMock(\TYPO3\CMS\
Fluid\Core\ViewHelper\AbstractViewHelper::class, array(
'render',
'prepareArguments'), array(),
'',
false);
221 $viewHelper->setArguments(array(
'test' =>
new \ArrayObject));
222 $viewHelper->expects($this->once())->method(
'prepareArguments')->will($this->returnValue(array(
'test' =>
new \TYPO3\CMS\
Fluid\Core\ViewHelper\ArgumentDefinition(
'test',
'array',
false,
'documentation'))));
223 $viewHelper->validateArguments();
231 $viewHelper = $this->getAccessibleMock(\TYPO3\CMS\
Fluid\Core\ViewHelper\AbstractViewHelper::class, array(
'render',
'prepareArguments'), array(),
'',
false);
232 $viewHelper->injectReflectionService($this->mockReflectionService);
234 $viewHelper->setArguments(array(
'test' =>
'Value of argument'));
236 $viewHelper->expects($this->once())->method(
'prepareArguments')->will($this->returnValue(array(
237 'test' =>
new \TYPO3\CMS\
Fluid\Core\ViewHelper\ArgumentDefinition(
'test',
'string',
false,
'documentation')
240 $viewHelper->validateArguments();
249 $viewHelper = $this->getAccessibleMock(\TYPO3\CMS\
Fluid\Core\ViewHelper\AbstractViewHelper::class, array(
'render',
'prepareArguments'), array(),
'',
false);
250 $viewHelper->injectReflectionService($this->mockReflectionService);
252 $viewHelper->setArguments(array(
'test' =>
'test'));
254 $viewHelper->expects($this->once())->method(
'prepareArguments')->will($this->returnValue(array(
255 'test' =>
new \TYPO3\CMS\
Fluid\Core\ViewHelper\ArgumentDefinition(
'test',
'stdClass',
false,
'documentation')
258 $viewHelper->validateArguments();
266 $viewHelper = $this->getAccessibleMock(\TYPO3\CMS\
Fluid\Core\ViewHelper\AbstractViewHelper::class, array(
'validateArguments',
'initialize',
'callRenderMethod'));
267 $viewHelper->expects($this->at(0))->method(
'validateArguments');
268 $viewHelper->expects($this->at(1))->method(
'initialize');
269 $viewHelper->expects($this->at(2))->method(
'callRenderMethod')->will($this->returnValue(
'Output'));
271 $expectedOutput =
'Output';
272 $actualOutput = $viewHelper->initializeArgumentsAndRender(array(
'argument1' =>
'value1'));
273 $this->assertEquals($expectedOutput, $actualOutput);
281 $templateVariableContainer = $this->getMock(\TYPO3\CMS\
Fluid\Core\ViewHelper\TemplateVariableContainer::class);
282 $viewHelperVariableContainer = $this->getMock(\TYPO3\CMS\
Fluid\Core\ViewHelper\ViewHelperVariableContainer::class);
283 $controllerContext = $this->getMock(\TYPO3\CMS\Extbase\Mvc\Controller\ControllerContext::class, array(), array(),
'',
false);
285 $renderingContext = $this->getAccessibleMock(\TYPO3\CMS\
Fluid\Core\Rendering\RenderingContext::class, array(
'dummy'));
286 $renderingContext->injectTemplateVariableContainer($templateVariableContainer);
287 $renderingContext->_set(
'viewHelperVariableContainer', $viewHelperVariableContainer);
288 $renderingContext->setControllerContext($controllerContext);
290 $viewHelper = $this->getAccessibleMock(\TYPO3\CMS\
Fluid\Core\ViewHelper\AbstractViewHelper::class, array(
'render',
'prepareArguments'), array(),
'',
false);
292 $viewHelper->setRenderingContext($renderingContext);
294 $this->assertSame($viewHelper->_get(
'templateVariableContainer'), $templateVariableContainer);
295 $this->assertSame($viewHelper->_get(
'viewHelperVariableContainer'), $viewHelperVariableContainer);
296 $this->assertSame($viewHelper->_get(
'controllerContext'), $controllerContext);