3 namespace TYPO3\CMS\Fluid\Tests\Unit\ViewHelpers;
44 $this->mockExtensionService = $this->getMock(\TYPO3\CMS\Extbase\Service\ExtensionService::class);
45 $this->mockConfigurationManager = $this->getMock(\TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface::class);
54 $viewHelper->_set(
'configurationManager', $this->mockConfigurationManager);
55 parent::injectDependenciesIntoViewHelper($viewHelper);
56 $hashService = $this->getMock(\TYPO3\CMS\Extbase\Security\Cryptography\HashService::class, array(
'appendHmac'));
57 $hashService->expects($this->any())->method(
'appendHmac')->will($this->returnValue(
''));
58 $this->mvcPropertyMapperConfigurationService->_set(
'hashService', $hashService);
59 $viewHelper->_set(
'mvcPropertyMapperConfigurationService', $this->mvcPropertyMapperConfigurationService);
60 $viewHelper->_set(
'hashService', $hashService);
68 $formObject = new \stdClass();
69 $viewHelper = $this->getAccessibleMock(\TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class, array(
'renderChildren',
'renderHiddenIdentityField',
'renderAdditionalIdentityFields',
'renderHiddenReferrerFields',
'renderRequestHashField',
'addFormObjectNameToViewHelperVariableContainer',
'addFieldNamePrefixToViewHelperVariableContainer',
'removeFormObjectNameFromViewHelperVariableContainer',
'removeFieldNamePrefixFromViewHelperVariableContainer',
'addFormFieldNamesToViewHelperVariableContainer',
'removeFormFieldNamesFromViewHelperVariableContainer',
'renderTrustedPropertiesField'), array(),
'',
false);
71 $viewHelper->setArguments(array(
'object' => $formObject));
72 $this->viewHelperVariableContainer->expects($this->at(0))->method(
'add')->with(\TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'formObject', $formObject);
73 $this->viewHelperVariableContainer->expects($this->at(1))->method(
'add')->with(\TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'additionalIdentityProperties', array());
74 $this->viewHelperVariableContainer->expects($this->at(2))->method(
'remove')->with(\TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'formObject');
75 $this->viewHelperVariableContainer->expects($this->at(3))->method(
'remove')->with(\TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'additionalIdentityProperties');
76 $viewHelper->render();
84 $objectName =
'someObjectName';
85 $viewHelper = $this->getAccessibleMock(\TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class, array(
'renderChildren',
'renderHiddenIdentityField',
'renderHiddenReferrerFields',
'renderRequestHashField',
'addFormObjectToViewHelperVariableContainer',
'addFieldNamePrefixToViewHelperVariableContainer',
'removeFormObjectFromViewHelperVariableContainer',
'removeFieldNamePrefixFromViewHelperVariableContainer',
'addFormFieldNamesToViewHelperVariableContainer',
'removeFormFieldNamesFromViewHelperVariableContainer',
'renderTrustedPropertiesField'), array(),
'',
false);
87 $viewHelper->setArguments(array(
'name' => $objectName));
88 $this->viewHelperVariableContainer->expects($this->once())->method(
'add')->with(\TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'formObjectName', $objectName);
89 $this->viewHelperVariableContainer->expects($this->once())->method(
'remove')->with(\TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'formObjectName');
90 $viewHelper->render();
98 $objectName =
'someObjectName';
99 $viewHelper = $this->getAccessibleMock(\TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class, array(
'renderChildren',
'renderHiddenIdentityField',
'renderHiddenReferrerFields',
'renderRequestHashField',
'addFormObjectToViewHelperVariableContainer',
'addFieldNamePrefixToViewHelperVariableContainer',
'removeFormObjectFromViewHelperVariableContainer',
'removeFieldNamePrefixFromViewHelperVariableContainer',
'addFormFieldNamesToViewHelperVariableContainer',
'removeFormFieldNamesFromViewHelperVariableContainer',
'renderTrustedPropertiesField'), array(),
'',
false);
101 $viewHelper->setArguments(array(
'name' =>
'formName',
'objectName' => $objectName));
102 $this->viewHelperVariableContainer->expects($this->once())->method(
'add')->with(\TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'formObjectName', $objectName);
103 $this->viewHelperVariableContainer->expects($this->once())->method(
'remove')->with(\TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'formObjectName');
104 $viewHelper->render();
112 $viewHelper = $this->getAccessibleMock(\TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class, array(
'renderChildren',
'renderRequestHashField',
'renderHiddenReferrerFields',
'renderTrustedPropertiesField'), array(),
'',
false);
113 $viewHelper->expects($this->once())->method(
'renderHiddenReferrerFields');
115 $viewHelper->render();
123 $object = new \stdClass();
124 $viewHelper = $this->getAccessibleMock(\TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class, array(
'renderChildren',
'renderRequestHashField',
'renderHiddenReferrerFields',
'renderHiddenIdentityField',
'getFormObjectName',
'renderTrustedPropertiesField'), array(),
'',
false);
126 $viewHelper->setArguments(array(
'object' => $object));
127 $viewHelper->expects($this->atLeastOnce())->method(
'getFormObjectName')->will($this->returnValue(
'MyName'));
128 $viewHelper->expects($this->once())->method(
'renderHiddenIdentityField')->with($object,
'MyName');
129 $viewHelper->render();
137 $viewHelper = $this->getAccessibleMock(\TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class, array(
'renderChildren',
'renderRequestHashField',
'renderHiddenReferrerFields',
'renderAdditionalIdentityFields',
'renderTrustedPropertiesField'), array(),
'',
false);
138 $viewHelper->expects($this->once())->method(
'renderAdditionalIdentityFields');
140 $viewHelper->render();
148 $viewHelper = $this->getAccessibleMock($this->buildAccessibleProxy(\TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class), array(
'renderChildren',
'renderHiddenIdentityField',
'renderAdditionalIdentityFields',
'renderHiddenReferrerFields',
'renderTrustedPropertiesField'), array(),
'',
false);
149 $this->mvcPropertyMapperConfigurationService->_set(
'hashService',
new \TYPO3\CMS\Extbase\Security\Cryptography\HashService());
150 $viewHelper->_set(
'mvcPropertyMapperConfigurationService', $this->mvcPropertyMapperConfigurationService);
151 parent::injectDependenciesIntoViewHelper($viewHelper);
152 $viewHelper->expects($this->once())->method(
'renderHiddenIdentityField')->will($this->returnValue(
'hiddenIdentityField'));
153 $viewHelper->expects($this->once())->method(
'renderAdditionalIdentityFields')->will($this->returnValue(
'additionalIdentityFields'));
154 $viewHelper->expects($this->once())->method(
'renderHiddenReferrerFields')->will($this->returnValue(
'hiddenReferrerFields'));
155 $viewHelper->expects($this->once())->method(
'renderChildren')->will($this->returnValue(
'formContent'));
156 $expectedResult = chr(10) .
'<div>' .
'hiddenIdentityFieldadditionalIdentityFieldshiddenReferrerFields' . chr(10) .
'</div>' . chr(10) .
'formContent';
157 $this->tagBuilder->expects($this->once())->method(
'setContent')->with($expectedResult);
158 $viewHelper->render();
166 $viewHelper = $this->getMock($this->buildAccessibleProxy(\TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class), array(
'renderChildren',
'renderHiddenIdentityField',
'renderAdditionalIdentityFields',
'renderHiddenReferrerFields',
'renderTrustedPropertiesField'), array(),
'',
false);
167 $this->mvcPropertyMapperConfigurationService->_set(
'hashService',
new \TYPO3\CMS\Extbase\Security\Cryptography\HashService());
168 $viewHelper->_set(
'mvcPropertyMapperConfigurationService', $this->mvcPropertyMapperConfigurationService);
169 parent::injectDependenciesIntoViewHelper($viewHelper);
170 $viewHelper->expects($this->once())->method(
'renderHiddenIdentityField')->will($this->returnValue(
'hiddenIdentityField'));
171 $viewHelper->expects($this->once())->method(
'renderAdditionalIdentityFields')->will($this->returnValue(
'additionalIdentityFields'));
172 $viewHelper->expects($this->once())->method(
'renderHiddenReferrerFields')->will($this->returnValue(
'hiddenReferrerFields'));
173 $viewHelper->expects($this->once())->method(
'renderChildren')->will($this->returnValue(
'formContent'));
174 $expectedResult = chr(10) .
'<div class="hidden">' .
'hiddenIdentityFieldadditionalIdentityFieldshiddenReferrerFields' . chr(10) .
'</div>' . chr(10) .
'formContent';
175 $this->tagBuilder->expects($this->once())->method(
'setContent')->with($expectedResult);
176 $viewHelper->setArguments(array(
'hiddenFieldClassName' =>
'hidden'));
177 $viewHelper->render();
185 $identityProperties = array(
186 'object1[object2]' =>
'<input type="hidden" name="object1[object2][__identity]" value="42" />',
187 'object1[object2][subobject]' =>
'<input type="hidden" name="object1[object2][subobject][__identity]" value="21" />'
189 $this->viewHelperVariableContainer->expects($this->once())->method(
'exists')->with(\TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'additionalIdentityProperties')->will($this->returnValue(
true));
190 $this->viewHelperVariableContainer->expects($this->once())->method(
'get')->with(\TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'additionalIdentityProperties')->will($this->returnValue($identityProperties));
191 $viewHelper = $this->getAccessibleMock(\TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class, array(
'renderChildren'), array(),
'',
false);
193 $expected = chr(10) .
'<input type="hidden" name="object1[object2][__identity]" value="42" />' . chr(10) .
'<input type="hidden" name="object1[object2][subobject][__identity]" value="21" />';
194 $actual = $viewHelper->_call(
'renderAdditionalIdentityFields');
195 $this->assertEquals($expected, $actual);
203 $viewHelper = $this->getAccessibleMock(\TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class, array(
'dummy'), array(),
'',
false);
205 $this->request->expects($this->atLeastOnce())->method(
'getControllerExtensionName')->will($this->returnValue(
'extensionName'));
206 $this->request->expects($this->never())->method(
'getControllerSubextensionName');
207 $this->request->expects($this->atLeastOnce())->method(
'getControllerName')->will($this->returnValue(
'controllerName'));
208 $this->request->expects($this->atLeastOnce())->method(
'getControllerActionName')->will($this->returnValue(
'controllerActionName'));
209 $hiddenFields = $viewHelper->_call(
'renderHiddenReferrerFields');
210 $expectedResult = chr(10) .
'<input type="hidden" name="__referrer[@extension]" value="extensionName" />' . chr(10) .
'<input type="hidden" name="__referrer[@controller]" value="controllerName" />' . chr(10) .
'<input type="hidden" name="__referrer[@action]" value="controllerActionName" />' . chr(10) .
'<input type="hidden" name="__referrer[arguments]" value="" />' . chr(10);
211 $this->assertEquals($expectedResult, $hiddenFields);
219 $prefix =
'somePrefix';
220 $viewHelper = $this->getAccessibleMock(\TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class, array(
'renderChildren',
'renderHiddenIdentityField',
'renderHiddenReferrerFields',
'renderRequestHashField',
'addFormFieldNamesToViewHelperVariableContainer',
'removeFormFieldNamesFromViewHelperVariableContainer',
'renderTrustedPropertiesField'), array(),
'',
false);
222 $viewHelper->setArguments(array(
'fieldNamePrefix' => $prefix));
223 $this->viewHelperVariableContainer->expects($this->once())->method(
'add')->with(\TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'fieldNamePrefix', $prefix);
224 $this->viewHelperVariableContainer->expects($this->once())->method(
'remove')->with(\TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'fieldNamePrefix');
225 $viewHelper->render();
233 $expectedPrefix =
'tx_someextension_someplugin';
234 $viewHelper = $this->getAccessibleMock(\TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class, array(
'renderChildren',
'renderHiddenIdentityField',
'renderHiddenReferrerFields',
'renderRequestHashField',
'addFormFieldNamesToViewHelperVariableContainer',
'removeFormFieldNamesFromViewHelperVariableContainer',
'renderTrustedPropertiesField'), array(),
'',
false);
235 $this->mockExtensionService->expects($this->once())->method(
'getPluginNamespace')->with(
'SomeExtension',
'SomePlugin')->will($this->returnValue(
'tx_someextension_someplugin'));
236 $viewHelper->_set(
'extensionService', $this->mockExtensionService);
238 $viewHelper->setArguments(array(
'extensionName' =>
'SomeExtension',
'pluginName' =>
'SomePlugin'));
239 $this->viewHelperVariableContainer->expects($this->once())->method(
'add')->with(\TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'fieldNamePrefix', $expectedPrefix);
240 $this->viewHelperVariableContainer->expects($this->once())->method(
'remove')->with(\TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'fieldNamePrefix');
241 $viewHelper->render();
285 $viewHelper = $this->getAccessibleMock(\TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class, array(
'dummy'), array(),
'',
false);
287 $viewHelper->_callRef(
'postProcessUriArgumentsForRequestHash',
$arguments, $results);
288 $this->assertEquals($expectedResults, $results);