41 $this->mockExtensionService = $this->getMock(
'TYPO3\\CMS\\Extbase\\Service\\ExtensionService');
42 $this->mockConfigurationManager = $this->getMock(
'TYPO3\\CMS\\Extbase\\Configuration\\ConfigurationManagerInterface');
50 $viewHelper->_set(
'configurationManager', $this->mockConfigurationManager);
51 parent::injectDependenciesIntoViewHelper($viewHelper);
52 $this->mvcPropertyMapperConfigurationService->_set(
'hashService',
new \
TYPO3\CMS\Extbase\Security\Cryptography\HashService());
53 $viewHelper->_set(
'mvcPropertyMapperConfigurationService', $this->mvcPropertyMapperConfigurationService);
60 $formObject = new \stdClass();
61 $viewHelper = $this->
getAccessibleMock(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper', array(
'renderChildren',
'renderHiddenIdentityField',
'renderAdditionalIdentityFields',
'renderHiddenReferrerFields',
'renderHiddenSecuredReferrerField',
'renderRequestHashField',
'addFormObjectNameToViewHelperVariableContainer',
'addFieldNamePrefixToViewHelperVariableContainer',
'removeFormObjectNameFromViewHelperVariableContainer',
'removeFieldNamePrefixFromViewHelperVariableContainer',
'addFormFieldNamesToViewHelperVariableContainer',
'removeFormFieldNamesFromViewHelperVariableContainer',
'renderTrustedPropertiesField'), array(),
'', FALSE);
63 $viewHelper->setArguments(array(
'object' => $formObject));
64 $this->viewHelperVariableContainer->expects($this->at(0))->method(
'add')->with(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper',
'formObject', $formObject);
65 $this->viewHelperVariableContainer->expects($this->at(1))->method(
'add')->with(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper',
'additionalIdentityProperties', array());
66 $this->viewHelperVariableContainer->expects($this->at(2))->method(
'remove')->with(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper',
'formObject');
67 $this->viewHelperVariableContainer->expects($this->at(3))->method(
'remove')->with(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper',
'additionalIdentityProperties');
68 $viewHelper->render();
75 $objectName =
'someObjectName';
76 $viewHelper = $this->
getAccessibleMock(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper', array(
'renderChildren',
'renderHiddenIdentityField',
'renderHiddenReferrerFields',
'renderHiddenSecuredReferrerField',
'renderRequestHashField',
'addFormObjectToViewHelperVariableContainer',
'addFieldNamePrefixToViewHelperVariableContainer',
'removeFormObjectFromViewHelperVariableContainer',
'removeFieldNamePrefixFromViewHelperVariableContainer',
'addFormFieldNamesToViewHelperVariableContainer',
'removeFormFieldNamesFromViewHelperVariableContainer',
'renderTrustedPropertiesField'), array(),
'', FALSE);
78 $viewHelper->setArguments(array(
'name' => $objectName));
79 $this->viewHelperVariableContainer->add(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper',
80 'formObjectName', $objectName);
81 $this->viewHelperVariableContainer->remove(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper',
'formObjectName');
82 $viewHelper->_set(
'tag', $this->tagBuilder);
83 $viewHelper->render();
90 $objectName =
'someObjectName';
91 $viewHelper = $this->
getAccessibleMock(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper', array(
'renderChildren',
'renderHiddenIdentityField',
'renderHiddenReferrerFields',
'renderHiddenSecuredReferrerField',
'renderRequestHashField',
'addFormObjectToViewHelperVariableContainer',
'addFieldNamePrefixToViewHelperVariableContainer',
'removeFormObjectFromViewHelperVariableContainer',
'removeFieldNamePrefixFromViewHelperVariableContainer',
'addFormFieldNamesToViewHelperVariableContainer',
'removeFormFieldNamesFromViewHelperVariableContainer',
'renderTrustedPropertiesField'), array(),
'', FALSE);
93 $viewHelper->setArguments(array(
'name' =>
'formName',
'objectName' => $objectName));
94 $this->viewHelperVariableContainer->add(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper',
95 'formObjectName', $objectName);
96 $this->viewHelperVariableContainer->remove(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper',
'formObjectName');
97 $viewHelper->_set(
'tag', $this->tagBuilder);
98 $viewHelper->render();
105 $viewHelper = $this->
getAccessibleMock(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper', array(
'renderChildren',
'renderRequestHashField',
'renderHiddenReferrerFields',
'renderHiddenSecuredReferrerField',
'renderTrustedPropertiesField'), array(),
'', FALSE);
106 $viewHelper->expects($this->once())->method(
'renderHiddenReferrerFields');
108 $viewHelper->render();
115 $object = new \stdClass();
116 $viewHelper = $this->
getAccessibleMock(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper', array(
'renderChildren',
'renderRequestHashField',
'renderHiddenIdentityField',
'getFormObjectName',
'renderTrustedPropertiesField'), array(),
'', FALSE);
118 $hashService = $this->getMock(
'TYPO3\\CMS\\Extbase\\Security\\Cryptography\\HashService', array(
'generateHmac'));
119 $hashService->expects($this->any())->method(
'generateHmac')->willReturn(
'');
120 $viewHelper->_set(
'hashService', $hashService);
121 $viewHelper->setArguments(array(
'object' => $object));
122 $viewHelper->expects($this->atLeastOnce())->method(
'getFormObjectName')->will($this->returnValue(
'MyName'));
123 $viewHelper->expects($this->once())->method(
'renderHiddenIdentityField')->with($object,
'MyName');
124 $viewHelper->render();
131 $viewHelper = $this->
getAccessibleMock(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper', array(
'renderChildren',
'renderRequestHashField',
'renderAdditionalIdentityFields',
'renderTrustedPropertiesField'), array(),
'', FALSE);
132 $viewHelper->expects($this->once())->method(
'renderAdditionalIdentityFields');
134 $hashService = $this->getMock(
'TYPO3\\CMS\\Extbase\\Security\\Cryptography\\HashService', array(
'generateHmac'));
135 $hashService->expects($this->any())->method(
'generateHmac')->willReturn(
'');
136 $viewHelper->_set(
'hashService', $hashService);
137 $viewHelper->render();
144 $viewHelper = $this->
getAccessibleMock($this->
buildAccessibleProxy(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper'), array(
'renderChildren',
'renderHiddenIdentityField',
'renderAdditionalIdentityFields',
'renderHiddenReferrerFields',
'renderHiddenSecuredReferrerField',
'renderRequestHashField'), array(),
'', FALSE);
145 $configurationManager = $this->getMock(
'TYPO3\\CMS\\Extbase\\Configuration\\ConfigurationManager', array(
'isFeatureEnabled'));
146 $configurationManager->expects($this->once())->method(
'isFeatureEnabled')->with(
'rewrittenPropertyMapper')->will($this->returnValue(FALSE));
147 $viewHelper->_set(
'configurationManager', $configurationManager);
148 $this->mvcPropertyMapperConfigurationService->_set(
'hashService',
new \
TYPO3\CMS\Extbase\Security\Cryptography\HashService());
149 $viewHelper->_set(
'mvcPropertyMapperConfigurationService', $this->mvcPropertyMapperConfigurationService);
150 parent::injectDependenciesIntoViewHelper($viewHelper);
151 $viewHelper->expects($this->once())->method(
'renderHiddenIdentityField')->will($this->returnValue(
'hiddenIdentityField'));
152 $viewHelper->expects($this->once())->method(
'renderAdditionalIdentityFields')->will($this->returnValue(
'additionalIdentityFields'));
153 $viewHelper->expects($this->once())->method(
'renderHiddenReferrerFields')->will($this->returnValue(
'hiddenReferrerFields'));
154 $viewHelper->expects($this->once())->method(
'renderRequestHashField')->will($this->returnValue(
'requestHashField'));
155 $viewHelper->expects($this->once())->method(
'renderChildren')->will($this->returnValue(
'formContent'));
156 $expectedResult = chr(10) .
'<div>' .
'hiddenIdentityFieldadditionalIdentityFieldshiddenReferrerFieldsrequestHashField' . chr(10) .
'</div>' . chr(10) .
'formContent';
157 $this->tagBuilder->expects($this->once())->method(
'setContent')->with($expectedResult);
158 $viewHelper->render();
165 $viewHelper = $this->
getAccessibleMock($this->
buildAccessibleProxy(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper'), array(
'renderChildren',
'renderHiddenIdentityField',
'renderAdditionalIdentityFields',
'renderHiddenReferrerFields',
'renderHiddenSecuredReferrerField',
'renderTrustedPropertiesField'), array(),
'', FALSE);
166 $configurationManager = $this->getMock(
'TYPO3\\CMS\\Extbase\\Configuration\\ConfigurationManager', array(
'isFeatureEnabled'));
167 $configurationManager->expects($this->once())->method(
'isFeatureEnabled')->with(
'rewrittenPropertyMapper')->will($this->returnValue(TRUE));
168 $viewHelper->_set(
'configurationManager', $configurationManager);
169 $this->mvcPropertyMapperConfigurationService->_set(
'hashService',
new \
TYPO3\CMS\Extbase\Security\Cryptography\HashService());
170 $viewHelper->_set(
'mvcPropertyMapperConfigurationService', $this->mvcPropertyMapperConfigurationService);
171 parent::injectDependenciesIntoViewHelper($viewHelper);
172 $viewHelper->expects($this->once())->method(
'renderHiddenIdentityField')->will($this->returnValue(
'hiddenIdentityField'));
173 $viewHelper->expects($this->once())->method(
'renderAdditionalIdentityFields')->will($this->returnValue(
'additionalIdentityFields'));
174 $viewHelper->expects($this->once())->method(
'renderHiddenReferrerFields')->will($this->returnValue(
'hiddenReferrerFields'));
175 $viewHelper->expects($this->once())->method(
'renderChildren')->will($this->returnValue(
'formContent'));
176 $expectedResult = chr(10) .
'<div>' .
'hiddenIdentityFieldadditionalIdentityFieldshiddenReferrerFields' . chr(10) .
'</div>' . chr(10) .
'formContent';
177 $this->tagBuilder->expects($this->once())->method(
'setContent')->with($expectedResult);
178 $viewHelper->render();
185 $viewHelper = $this->getMock($this->
buildAccessibleProxy(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper'), array(
'renderChildren',
'renderHiddenIdentityField',
'renderAdditionalIdentityFields',
'renderHiddenReferrerFields',
'renderHiddenSecuredReferrerField',
'renderTrustedPropertiesField'), array(),
'', FALSE);
186 $configurationManager = $this->getMock(
'TYPO3\\CMS\\Extbase\\Configuration\\ConfigurationManager', array(
'isFeatureEnabled'));
187 $configurationManager->expects($this->once())->method(
'isFeatureEnabled')->with(
'rewrittenPropertyMapper')->will($this->returnValue(TRUE));
188 $viewHelper->_set(
'configurationManager', $configurationManager);
189 $this->mvcPropertyMapperConfigurationService->_set(
'hashService',
new \
TYPO3\CMS\Extbase\Security\Cryptography\HashService());
190 $viewHelper->_set(
'mvcPropertyMapperConfigurationService', $this->mvcPropertyMapperConfigurationService);
191 parent::injectDependenciesIntoViewHelper($viewHelper);
192 $viewHelper->expects($this->once())->method(
'renderHiddenIdentityField')->will($this->returnValue(
'hiddenIdentityField'));
193 $viewHelper->expects($this->once())->method(
'renderAdditionalIdentityFields')->will($this->returnValue(
'additionalIdentityFields'));
194 $viewHelper->expects($this->once())->method(
'renderHiddenReferrerFields')->will($this->returnValue(
'hiddenReferrerFields'));
195 $viewHelper->expects($this->once())->method(
'renderChildren')->will($this->returnValue(
'formContent'));
196 $expectedResult = chr(10) .
'<div class="hidden">' .
'hiddenIdentityFieldadditionalIdentityFieldshiddenReferrerFields' . chr(10) .
'</div>' . chr(10) .
'formContent';
197 $this->tagBuilder->expects($this->once())->method(
'setContent')->with($expectedResult);
198 $viewHelper->setArguments(array(
'hiddenFieldClassName' =>
'hidden'));
199 $viewHelper->render();
206 $identityProperties = array(
207 'object1[object2]' =>
'<input type="hidden" name="object1[object2][__identity]" value="42" />',
208 'object1[object2][subobject]' =>
'<input type="hidden" name="object1[object2][subobject][__identity]" value="21" />' 210 $this->viewHelperVariableContainer->expects($this->once())->method(
'exists')->with(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper',
'additionalIdentityProperties')->will($this->returnValue(TRUE));
211 $this->viewHelperVariableContainer->expects($this->once())->method(
'get')->with(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper',
'additionalIdentityProperties')->will($this->returnValue($identityProperties));
212 $viewHelper = $this->
getAccessibleMock(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper', array(
'renderChildren'), array(),
'', FALSE);
214 $expected = chr(10) .
'<input type="hidden" name="object1[object2][__identity]" value="42" />' . chr(10) .
'<input type="hidden" name="object1[object2][subobject][__identity]" value="21" />';
215 $actual = $viewHelper->_call(
'renderAdditionalIdentityFields');
216 $this->assertEquals($expected, $actual);
223 $viewHelper = $this->
getAccessibleMock(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper', array(
'dummy'), array(),
'', FALSE);
225 $hashService = $this->getMock(
'TYPO3\\CMS\\Extbase\\Security\\Cryptography\\HashService', array(
'appendHmac'));
226 $hashService->expects($this->any())->method(
'appendHmac')->willReturn(
'');
227 $viewHelper->_set(
'hashService', $hashService);
228 $this->request->expects($this->atLeastOnce())->method(
'getControllerExtensionName')->will($this->returnValue(
'extensionName'));
229 $this->request->expects($this->never())->method(
'getControllerSubextensionName');
230 $this->request->expects($this->atLeastOnce())->method(
'getControllerName')->will($this->returnValue(
'controllerName'));
231 $this->request->expects($this->atLeastOnce())->method(
'getControllerActionName')->will($this->returnValue(
'controllerActionName'));
232 $hiddenFields = $viewHelper->_call(
'renderHiddenReferrerFields');
233 $expectedResult = chr(10) .
'<input type="hidden" name="__referrer[extensionName]" value="extensionName" />' 234 . chr(10) .
'<input type="hidden" name="__referrer[controllerName]" value="controllerName" />' 235 . chr(10) .
'<input type="hidden" name="__referrer[actionName]" value="controllerActionName" />' 236 . chr(10) .
'<input type="hidden" name="__referrer[@request]" value="" />' . chr(10);
237 $this->assertEquals($expectedResult, $hiddenFields);
244 $prefix =
'somePrefix';
245 $viewHelper = $this->
getAccessibleMock(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper', array(
'renderChildren',
'renderHiddenIdentityField',
'renderHiddenReferrerFields',
'renderHiddenSecuredReferrerField',
'renderRequestHashField',
'addFormFieldNamesToViewHelperVariableContainer',
'removeFormFieldNamesFromViewHelperVariableContainer',
'renderTrustedPropertiesField'), array(),
'', FALSE);
247 $viewHelper->setArguments(array(
'fieldNamePrefix' => $prefix));
248 $this->viewHelperVariableContainer->add(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper',
249 'fieldNamePrefix', $prefix);
250 $this->viewHelperVariableContainer->remove(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper',
'fieldNamePrefix');
251 $viewHelper->_set(
'tag', $this->tagBuilder);
252 $viewHelper->render();
259 $expectedPrefix =
'tx_someextension_someplugin';
260 $viewHelper = $this->
getAccessibleMock(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper', array(
'renderChildren',
'renderHiddenIdentityField',
'renderHiddenReferrerFields',
'renderHiddenSecuredReferrerField',
'renderRequestHashField',
'addFormFieldNamesToViewHelperVariableContainer',
'removeFormFieldNamesFromViewHelperVariableContainer',
'renderTrustedPropertiesField'), array(),
'', FALSE);
261 $this->mockExtensionService->expects($this->once())->method(
'getPluginNamespace')->with(
'SomeExtension',
'SomePlugin')->will($this->returnValue(
'tx_someextension_someplugin'));
262 $viewHelper->_set(
'extensionService', $this->mockExtensionService);
264 $viewHelper->setArguments(array(
'extensionName' =>
'SomeExtension',
'pluginName' =>
'SomePlugin'));
265 $this->viewHelperVariableContainer->add(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper',
266 'fieldNamePrefix', $expectedPrefix);
267 $this->viewHelperVariableContainer->remove(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper',
'fieldNamePrefix');
268 $viewHelper->_set(
'tag', $this->tagBuilder);
269 $viewHelper->render();
311 $viewHelper = $this->
getAccessibleMock(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper', array(
'dummy'), array(),
'', FALSE);
313 $viewHelper->_callRef(
'postProcessUriArgumentsForRequestHash',
$arguments, $results);
314 $this->assertEquals($expectedResults, $results);
getAccessibleMock( $originalClassName, array $methods=array(), array $arguments=array(), $mockClassName='', $callOriginalConstructor=TRUE, $callOriginalClone=TRUE, $callAutoload=TRUE)
buildAccessibleProxy($className)