2 namespace TYPO3\CMS\Fluid\Tests\Unit\ViewHelpers\Form;
24 $formViewHelper = $this->getAccessibleMock(
25 \TYPO3\CMS\
Fluid\ViewHelpers\Form\AbstractFormFieldViewHelper::class, [
'isObjectAccessorMode'], [],
'',
30 $this->assertFalse($formViewHelper->_call(
'getRespectSubmittedDataValue'));
38 $formViewHelper = $this->getAccessibleMock(
39 \TYPO3\CMS\
Fluid\ViewHelpers\Form\AbstractFormFieldViewHelper::class, [
'isObjectAccessorMode'], [],
'',
44 $formViewHelper->_set(
'respectSubmittedDataValue',
true);
45 $this->assertTrue($formViewHelper->_call(
'getRespectSubmittedDataValue'));
53 $formViewHelper = $this->getAccessibleMock(
54 \TYPO3\CMS\
Fluid\ViewHelpers\Form\AbstractFormFieldViewHelper::class,
55 [
'isObjectAccessorMode',
'addAdditionalIdentityPropertiesIfNeeded'], [],
'',
false
58 $formViewHelper->_set(
'respectSubmittedDataValue',
false);
60 $mockObject = new \TYPO3\CMS\Fluid\Tests\Unit\ViewHelpers\Form\Fixtures\ClassWithTwoGetters();
62 $formViewHelper->expects($this->any())->method(
'isObjectAccessorMode')->will($this->returnValue(
true));
63 $this->viewHelperVariableContainer->expects($this->atLeastOnce())->method(
'get')->with(
64 \TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'formObject'
65 )->will($this->returnValue($mockObject));
66 $this->viewHelperVariableContainer->expects($this->atLeastOnce())->method(
'exists')->with(
67 \TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'formObject'
68 )->will($this->returnValue(
true));
70 $arguments = [
'name' => null,
'value' => null,
'property' =>
'value.something'];
71 $formViewHelper->_set(
'arguments',
$arguments);
72 $expected =
'MyString';
73 $actual = $formViewHelper->_call(
'getValueAttribute');
74 $this->assertSame($expected, $actual);
82 $mockPersistenceManager = $this->getMock(\TYPO3\CMS\Extbase\Persistence\PersistenceManagerInterface::class);
83 $mockPersistenceManager->expects($this->any())->method(
'getIdentifierByObject')->will(
84 $this->returnValue(
'6f487e40-4483-11de-8a39-0800200c9a66')
87 $object = $this->getMock(\TYPO3\CMS\
Fluid\Tests\Unit\ViewHelpers\Form\Fixtures\EmptyClass::class);
88 $object->expects($this->any())->method(
'FLOW3_Persistence_isNew')->will($this->returnValue(
false));
90 $formViewHelper = $this->getAccessibleMock(
91 \TYPO3\CMS\
Fluid\ViewHelpers\Form\AbstractFormFieldViewHelper::class, [
'dummy'], [],
'',
false
94 $formViewHelper->_set(
'persistenceManager', $mockPersistenceManager);
96 $arguments = [
'name' =>
'foo',
'value' => $object,
'property' => null];
97 $formViewHelper->_set(
'arguments',
$arguments);
98 $formViewHelper->expects($this->any())->method(
'isObjectAccessorMode')->will($this->returnValue(
false));
100 $this->assertSame(
'foo[__identity]', $formViewHelper->_call(
'getName'));
101 $this->assertSame(
'6f487e40-4483-11de-8a39-0800200c9a66', $formViewHelper->_call(
'getValue'));
109 $formViewHelper = $this->getAccessibleMock(
110 \TYPO3\CMS\
Fluid\ViewHelpers\Form\AbstractFormFieldViewHelper::class, [
'isObjectAccessorMode'], [],
'',
115 $formViewHelper->expects($this->any())->method(
'isObjectAccessorMode')->will($this->returnValue(
true));
116 $this->viewHelperVariableContainer->expects($this->at(0))->method(
'get')->with(
117 \TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'formObjectName'
118 )->will($this->returnValue(
'myObjectName'));
119 $this->viewHelperVariableContainer->expects($this->at(1))->method(
'exists')->with(
120 \TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'fieldNamePrefix'
121 )->will($this->returnValue(
true));
122 $this->viewHelperVariableContainer->expects($this->at(2))->method(
'get')->with(
123 \TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'fieldNamePrefix'
124 )->will($this->returnValue(
'formPrefix'));
126 $arguments = [
'name' =>
'fieldName',
'value' =>
'fieldValue',
'property' =>
'bla'];
127 $formViewHelper->_set(
'arguments',
$arguments);
128 $expected =
'formPrefix[myObjectName][bla]';
129 $actual = $formViewHelper->_call(
'getName');
130 $this->assertSame($expected, $actual);
138 $formViewHelper = $this->getAccessibleMock(
139 \TYPO3\CMS\
Fluid\ViewHelpers\Form\AbstractFormFieldViewHelper::class, [
'isObjectAccessorMode'], [],
'',
144 $formViewHelper->expects($this->any())->method(
'isObjectAccessorMode')->will($this->returnValue(
true));
145 $this->viewHelperVariableContainer->expects($this->at(0))->method(
'get')->with(
146 \TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'formObjectName'
147 )->will($this->returnValue(
'myObjectName'));
148 $this->viewHelperVariableContainer->expects($this->at(1))->method(
'exists')->with(
149 \TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'fieldNamePrefix'
150 )->will($this->returnValue(
true));
151 $this->viewHelperVariableContainer->expects($this->at(2))->method(
'get')->with(
152 \TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'fieldNamePrefix'
153 )->will($this->returnValue(
'formPrefix'));
155 $arguments = [
'name' =>
'fieldName',
'value' =>
'fieldValue',
'property' =>
'bla.blubb'];
156 $formViewHelper->_set(
'arguments',
$arguments);
157 $expected =
'formPrefix[myObjectName][bla][blubb]';
158 $actual = $formViewHelper->_call(
'getName');
159 $this->assertSame($expected, $actual);
167 $formViewHelper = $this->getAccessibleMock(
168 \TYPO3\CMS\
Fluid\ViewHelpers\Form\AbstractFormFieldViewHelper::class, [
'isObjectAccessorMode'], [],
'',
173 $formViewHelper->expects($this->any())->method(
'isObjectAccessorMode')->will($this->returnValue(
true));
174 $this->viewHelperVariableContainer->expects($this->at(0))->method(
'get')->with(
175 \TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'formObjectName'
176 )->will($this->returnValue(null));
177 $this->viewHelperVariableContainer->expects($this->at(1))->method(
'exists')->with(
178 \TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'fieldNamePrefix'
179 )->will($this->returnValue(
true));
180 $this->viewHelperVariableContainer->expects($this->at(2))->method(
'get')->with(
181 \TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'fieldNamePrefix'
182 )->will($this->returnValue(
'formPrefix'));
184 $arguments = [
'name' =>
'fieldName',
'value' =>
'fieldValue',
'property' =>
'bla'];
185 $formViewHelper->_set(
'arguments',
$arguments);
186 $expected =
'formPrefix[bla]';
187 $actual = $formViewHelper->_call(
'getName');
188 $this->assertSame($expected, $actual);
196 $formViewHelper = $this->getAccessibleMock(
197 \TYPO3\CMS\
Fluid\ViewHelpers\Form\AbstractFormFieldViewHelper::class, [
'isObjectAccessorMode'], [],
'',
202 $formViewHelper->expects($this->any())->method(
'isObjectAccessorMode')->will($this->returnValue(
false));
203 $this->viewHelperVariableContainer->expects($this->at(0))->method(
'exists')->with(
204 \TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'fieldNamePrefix'
205 )->will($this->returnValue(
true));
206 $this->viewHelperVariableContainer->expects($this->at(1))->method(
'get')->with(
207 \TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'fieldNamePrefix'
208 )->will($this->returnValue(
'formPrefix'));
210 $arguments = [
'name' =>
'fieldName',
'value' =>
'fieldValue',
'property' =>
'bla'];
211 $formViewHelper->_set(
'arguments',
$arguments);
212 $expected =
'formPrefix[fieldName]';
213 $actual = $formViewHelper->_call(
'getName');
214 $this->assertSame($expected, $actual);
222 $formViewHelper = $this->getAccessibleMock(
223 \TYPO3\CMS\
Fluid\ViewHelpers\Form\AbstractFormFieldViewHelper::class,
224 [
'isObjectAccessorMode',
'addAdditionalIdentityPropertiesIfNeeded'], [],
'',
false
228 $mockObject = new \TYPO3\CMS\Fluid\Tests\Unit\ViewHelpers\Form\Fixtures\ClassWithTwoGetters();
230 $formViewHelper->expects($this->any())->method(
'isObjectAccessorMode')->will($this->returnValue(
true));
231 $formViewHelper->expects($this->once())->method(
'addAdditionalIdentityPropertiesIfNeeded');
232 $this->viewHelperVariableContainer->expects($this->atLeastOnce())->method(
'get')->with(
233 \TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'formObject'
234 )->will($this->returnValue($mockObject));
235 $this->viewHelperVariableContainer->expects($this->atLeastOnce())->method(
'exists')->with(
236 \TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'formObject'
237 )->will($this->returnValue(
true));
239 $arguments = [
'name' => null,
'value' => null,
'property' =>
'value.something'];
240 $formViewHelper->_set(
'arguments',
$arguments);
241 $expected =
'MyString';
242 $actual = $formViewHelper->_call(
'getValue');
243 $this->assertSame($expected, $actual);
251 $formViewHelper = $this->getAccessibleMock(
252 \TYPO3\CMS\
Fluid\ViewHelpers\Form\AbstractFormFieldViewHelper::class, [
'isObjectAccessorMode'], [],
'',
256 $formViewHelper->expects($this->any())->method(
'isObjectAccessorMode')->will($this->returnValue(
false));
259 $formViewHelper->_set(
'arguments', $mockArguments);
261 $this->assertNull($formViewHelper->_call(
'getValue'));
269 $formViewHelper = $this->getAccessibleMock(
270 \TYPO3\CMS\
Fluid\ViewHelpers\Form\AbstractFormFieldViewHelper::class, [
'isObjectAccessorMode'], [],
'',
273 $formViewHelper->expects($this->any())->method(
'isObjectAccessorMode')->will($this->returnValue(
false));
276 $mockArguments = [
'value' =>
'someValue'];
277 $formViewHelper->_set(
'arguments', $mockArguments);
279 $this->assertEquals(
'someValue', $formViewHelper->_call(
'getValue'));
287 $mockObject = $this->getMock(
'stdClass');
289 $mockPersistenceManager = $this->getMock(\TYPO3\CMS\Extbase\Persistence\PersistenceManagerInterface::class);
290 $mockPersistenceManager->expects($this->atLeastOnce())->method(
'getIdentifierByObject')->with(
292 )->will($this->returnValue(
'6f487e40-4483-11de-8a39-0800200c9a66'));
294 $formViewHelper = $this->getAccessibleMock(
295 \TYPO3\CMS\
Fluid\ViewHelpers\Form\AbstractFormFieldViewHelper::class, [
'isObjectAccessorMode'], [],
'',
298 $formViewHelper->expects($this->any())->method(
'isObjectAccessorMode')->will($this->returnValue(
false));
300 $formViewHelper->_set(
'persistenceManager', $mockPersistenceManager);
302 $mockArguments = [
'value' => $mockObject];
303 $formViewHelper->_set(
'arguments', $mockArguments);
305 $this->assertSame(
'6f487e40-4483-11de-8a39-0800200c9a66', $formViewHelper->_call(
'getValue'));
313 $mockObject = $this->getMock(
'stdClass');
315 $mockPersistenceManager = $this->getMock(\TYPO3\CMS\Extbase\Persistence\PersistenceManagerInterface::class);
316 $mockPersistenceManager->expects($this->any())->method(
'getIdentifierByObject')->will(
317 $this->returnValue(
'6f487e40-4483-11de-8a39-0800200c9a66')
320 $formViewHelper = $this->getAccessibleMock(
321 \TYPO3\CMS\
Fluid\ViewHelpers\Form\AbstractFormFieldViewHelper::class, [
'isObjectAccessorMode'], [],
'',
324 $formViewHelper->expects($this->any())->method(
'isObjectAccessorMode')->will($this->returnValue(
false));
326 $formViewHelper->_set(
'persistenceManager', $mockPersistenceManager);
328 $mockArguments = [
'value' => $mockObject];
329 $formViewHelper->_set(
'arguments', $mockArguments);
331 $this->assertSame($mockObject, $formViewHelper->_call(
'getValue',
false));
339 $formViewHelper = $this->getAccessibleMock(
340 \TYPO3\CMS\
Fluid\ViewHelpers\Form\AbstractFormFieldViewHelper::class, [
'dummy'], [],
'',
false
344 $this->viewHelperVariableContainer->expects($this->once())->method(
'exists')->with(
345 \TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'formObjectName'
346 )->will($this->returnValue(
true));
348 $formViewHelper->_set(
'arguments', [
'name' => null,
'value' => null,
'property' =>
'bla']);
349 $this->assertTrue($formViewHelper->_call(
'isObjectAccessorMode'));
351 $formViewHelper->_set(
'arguments', [
'name' => null,
'value' => null,
'property' => null]);
352 $this->assertFalse($formViewHelper->_call(
'isObjectAccessorMode'));
360 $formFieldViewHelper = $this->getAccessibleMock(
361 \TYPO3\CMS\
Fluid\ViewHelpers\Form\AbstractFormFieldViewHelper::class, [
'renderHiddenIdentityField'], [],
'',
366 $formFieldViewHelper->expects($this->any())->method(
'renderHiddenIdentityField')->will(
367 $this->throwException(
new \
Exception(
'Should not be executed!!!'))
369 $formFieldViewHelper->_set(
'arguments',
$arguments);
370 $formFieldViewHelper->_call(
'addAdditionalIdentityPropertiesIfNeeded');
378 $mockFormObject = new \TYPO3\CMS\Fluid\Tests\Unit\ViewHelpers\Form\Fixtures\ClassWithTwoGetters();
379 $property =
'value.something';
380 $objectName =
'myObject';
381 $expectedProperty =
'myObject[value]';
383 $formFieldViewHelper = $this->getAccessibleMock(
384 \TYPO3\CMS\
Fluid\ViewHelpers\Form\AbstractFormFieldViewHelper::class,
385 [
'renderHiddenIdentityField',
'isObjectAccessorMode'], [],
'',
false
389 $formFieldViewHelper->_set(
'arguments',
$arguments);
390 $formFieldViewHelper->expects($this->atLeastOnce())->method(
'isObjectAccessorMode')->will(
391 $this->returnValue(
true)
393 $this->viewHelperVariableContainer->expects($this->at(0))->method(
'exists')->with(
394 \TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'formObject'
395 )->will($this->returnValue(
true));
396 $this->viewHelperVariableContainer->expects($this->at(1))->method(
'get')->with(
397 \TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'formObject'
398 )->will($this->returnValue($mockFormObject));
399 $this->viewHelperVariableContainer->expects($this->at(2))->method(
'get')->with(
400 \TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'formObjectName'
401 )->will($this->returnValue($objectName));
403 $formFieldViewHelper->expects($this->once())->method(
'renderHiddenIdentityField')->with(
404 $mockFormObject, $expectedProperty
407 $formFieldViewHelper->_call(
'addAdditionalIdentityPropertiesIfNeeded');
415 $mockFormObject = new \TYPO3\CMS\Fluid\Tests\Unit\ViewHelpers\Form\Fixtures\ClassWithTwoGetters();
416 $property =
'value.value.something';
417 $objectName =
'myObject';
418 $expectedProperty1 =
'myObject[value]';
419 $expectedProperty2 =
'myObject[value][value]';
421 $formFieldViewHelper = $this->getAccessibleMock(
422 \TYPO3\CMS\
Fluid\ViewHelpers\Form\AbstractFormFieldViewHelper::class,
423 [
'renderHiddenIdentityField',
'isObjectAccessorMode'], [],
'',
false
427 $formFieldViewHelper->_set(
'arguments',
$arguments);
428 $formFieldViewHelper->expects($this->atLeastOnce())->method(
'isObjectAccessorMode')->will(
429 $this->returnValue(
true)
431 $this->viewHelperVariableContainer->expects($this->at(0))->method(
'exists')->with(
432 \TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'formObject'
433 )->will($this->returnValue(
true));
434 $this->viewHelperVariableContainer->expects($this->at(1))->method(
'get')->with(
435 \TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'formObject'
436 )->will($this->returnValue($mockFormObject));
437 $this->viewHelperVariableContainer->expects($this->at(2))->method(
'get')->with(
438 \TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'formObjectName'
439 )->will($this->returnValue($objectName));
441 $formFieldViewHelper->expects($this->at(1))->method(
'renderHiddenIdentityField')->with(
442 $mockFormObject, $expectedProperty1
444 $formFieldViewHelper->expects($this->at(2))->method(
'renderHiddenIdentityField')->with(
445 $mockFormObject, $expectedProperty2
448 $formFieldViewHelper->_call(
'addAdditionalIdentityPropertiesIfNeeded');
456 $formViewHelper = $this->getAccessibleMock(
457 \TYPO3\CMS\
Fluid\ViewHelpers\Form\AbstractFormFieldViewHelper::class, [
'getName'], [],
'',
false
460 $formViewHelper->expects($this->any())->method(
'getName')->will($this->returnValue(
'SomeFieldName'));
461 $this->viewHelperVariableContainer->expects($this->at(0))->method(
'exists')->with(
462 \TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'renderedHiddenFields'
463 )->will($this->returnValue(
true));
464 $this->viewHelperVariableContainer->expects($this->at(1))->method(
'get')->with(
465 \TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'renderedHiddenFields'
466 )->will($this->returnValue([]));
467 $expected =
'<input type="hidden" name="SomeFieldName" value="" />';
468 $actual = $formViewHelper->_call(
'renderHiddenFieldForEmptyValue');
469 $this->assertEquals($expected, $actual);
477 $formViewHelper = $this->getAccessibleMock(
478 \TYPO3\CMS\
Fluid\ViewHelpers\Form\AbstractFormFieldViewHelper::class, [
'getName'], [],
'',
false
481 $formViewHelper->expects($this->any())->method(
'getName')->will($this->returnValue(
'NewFieldName'));
482 $this->viewHelperVariableContainer->expects($this->at(0))->method(
'exists')->with(
483 \TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'renderedHiddenFields'
484 )->will($this->returnValue(
true));
485 $this->viewHelperVariableContainer->expects($this->at(1))->method(
'get')->with(
486 \TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'renderedHiddenFields'
487 )->will($this->returnValue([
'OldFieldName']));
488 $this->viewHelperVariableContainer->expects($this->at(2))->method(
'addOrUpdate')->with(
489 \TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'renderedHiddenFields', [
'OldFieldName',
'NewFieldName']
491 $formViewHelper->_call(
'renderHiddenFieldForEmptyValue');
499 $formViewHelper = $this->getAccessibleMock(
500 \TYPO3\CMS\
Fluid\ViewHelpers\Form\AbstractFormFieldViewHelper::class, [
'getName'], [],
'',
false
503 $formViewHelper->expects($this->any())->method(
'getName')->will($this->returnValue(
'SomeFieldName'));
504 $this->viewHelperVariableContainer->expects($this->at(0))->method(
'exists')->with(
505 \TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'renderedHiddenFields'
506 )->will($this->returnValue(
true));
507 $this->viewHelperVariableContainer->expects($this->at(1))->method(
'get')->with(
508 \TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'renderedHiddenFields'
509 )->will($this->returnValue([
'SomeFieldName']));
510 $this->viewHelperVariableContainer->expects($this->never())->method(
'addOrUpdate');
512 $actual = $formViewHelper->_call(
'renderHiddenFieldForEmptyValue');
513 $this->assertEquals($expected, $actual);
521 $formViewHelper = $this->getAccessibleMock(
522 \TYPO3\CMS\
Fluid\ViewHelpers\Form\AbstractFormFieldViewHelper::class, [
'getName'], [],
'',
false
525 $formViewHelper->expects($this->any())->method(
'getName')->will(
526 $this->returnValue(
'SomeFieldName[WithBrackets][]')
528 $this->viewHelperVariableContainer->expects($this->at(0))->method(
'exists')->with(
529 \TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'renderedHiddenFields'
530 )->will($this->returnValue(
true));
531 $this->viewHelperVariableContainer->expects($this->at(1))->method(
'get')->with(
532 \TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'renderedHiddenFields'
533 )->will($this->returnValue([]));
534 $this->viewHelperVariableContainer->expects($this->at(2))->method(
'addOrUpdate')->with(
535 \TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'renderedHiddenFields', [
'SomeFieldName[WithBrackets]']
537 $expected =
'<input type="hidden" name="SomeFieldName[WithBrackets]" value="" />';
538 $actual = $formViewHelper->_call(
'renderHiddenFieldForEmptyValue');
539 $this->assertEquals($expected, $actual);
547 $formViewHelper = $this->getAccessibleMock(
548 \TYPO3\CMS\
Fluid\ViewHelpers\Form\AbstractFormFieldViewHelper::class, [
'getName'], [],
'',
false
551 $formViewHelper->expects($this->any())->method(
'getName')->will(
552 $this->returnValue(
'SomeFieldName[WithBrackets][foo]')
554 $this->viewHelperVariableContainer->expects($this->at(0))->method(
'exists')->with(
555 \TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'renderedHiddenFields'
556 )->will($this->returnValue(
true));
557 $this->viewHelperVariableContainer->expects($this->at(1))->method(
'get')->with(
558 \TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'renderedHiddenFields'
559 )->will($this->returnValue([]));
560 $this->viewHelperVariableContainer->expects($this->at(2))->method(
'addOrUpdate')->with(
561 \TYPO3\CMS\
Fluid\ViewHelpers\FormViewHelper::class,
'renderedHiddenFields',
562 [
'SomeFieldName[WithBrackets][foo]']
564 $expected =
'<input type="hidden" name="SomeFieldName[WithBrackets][foo]" value="" />';
565 $actual = $formViewHelper->_call(
'renderHiddenFieldForEmptyValue');
566 $this->assertEquals($expected, $actual);