17 use Prophecy\Argument;
27 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
36 $cacheManagerProphecy = $this->prophesize(CacheManager::class);
37 GeneralUtility::setSingletonInstance(CacheManager::class, $cacheManagerProphecy->reveal());
38 $cacheFrontendProphecy = $this->prophesize(FrontendInterface::class);
39 $cacheManagerProphecy->getCache(
'cache_runtime')->willReturn($cacheFrontendProphecy->reveal());
40 $cacheFrontendProphecy->get(Argument::cetera())->willReturn(
false);
41 $cacheFrontendProphecy->set(Argument::cetera())->willReturn(
null);
46 GeneralUtility::purgeInstances();
55 $mockController = $this->getAccessibleMock(FormFrontendController::class, [
59 $configurationServiceProphecy = $this->prophesize(ConfigurationService::class);
61 $objectManagerMock = $this->createMock(ObjectManager::class);
63 ->expects($this->any())
65 ->with(ConfigurationService::class)
66 ->willReturn($configurationServiceProphecy->reveal());
68 $sheetIdentifier = md5(
72 'ext-form-identifier',
78 $contentObject = new \stdClass();
79 $contentObject->data = [
80 'pi_flexform' => $flexFormTools->flexArray2Xml([
84 'settings.finishers.EmailToReceiver.subject' => [
'vDEF' =>
'Mesage Subject overridden'],
85 'settings.finishers.EmailToReceiver.recipientAddress' => [
'vDEF' =>
'your.company@example.com overridden'],
86 'settings.finishers.EmailToReceiver.format' => [
'vDEF' =>
'html overridden'],
93 $frontendConfigurationManager = $this->createMock(FrontendConfigurationManager::class);
94 $frontendConfigurationManager
95 ->expects($this->any())
96 ->method(
'getContentObject')
97 ->willReturn($contentObject);
99 $mockController->_set(
'configurationManager', $frontendConfigurationManager);
100 $mockController->_set(
'objectManager', $objectManagerMock);
102 $configurationServiceProphecy->getPrototypeConfiguration(Argument::cetera())->willReturn([
103 'finishersDefinition' => [
104 'EmailToReceiver' => [
108 'recipientAddress' => [],
116 $mockController->_set(
'settings', [
117 'overrideFinishers' => 0,
121 'identifier' =>
'ext-form-identifier',
122 'persistenceIdentifier' =>
'1:/foo',
123 'prototypeName' =>
'standard',
126 'identifier' =>
'EmailToReceiver',
128 'subject' =>
'Mesage Subject',
129 'recipientAddress' =>
'your.company@example.com',
137 'identifier' =>
'ext-form-identifier',
138 'persistenceIdentifier' =>
'1:/foo',
139 'prototypeName' =>
'standard',
142 'identifier' =>
'EmailToReceiver',
144 'subject' =>
'Mesage Subject',
145 'recipientAddress' =>
'your.company@example.com',
152 $this->assertSame($expected, $mockController->_call(
'overrideByFlexFormSettings', $input));
160 $mockController = $this->getAccessibleMock(FormFrontendController::class, [
164 $configurationServiceProphecy = $this->prophesize(ConfigurationService::class);
166 $objectManagerMock = $this->createMock(ObjectManager::class);
168 ->expects($this->any())
170 ->with(ConfigurationService::class)
171 ->willReturn($configurationServiceProphecy->reveal());
173 $sheetIdentifier = md5(
177 'ext-form-identifier',
183 $contentObject = new \stdClass();
184 $contentObject->data = [
185 'pi_flexform' => $flexFormTools->flexArray2Xml([
187 $sheetIdentifier => [
189 'settings.finishers.EmailToReceiver.subject' => [
'vDEF' =>
'Mesage Subject overridden'],
190 'settings.finishers.EmailToReceiver.recipientAddress' => [
'vDEF' =>
'your.company@example.com overridden'],
191 'settings.finishers.EmailToReceiver.format' => [
'vDEF' =>
'html overridden'],
198 $frontendConfigurationManager = $this->createMock(FrontendConfigurationManager::class);
199 $frontendConfigurationManager
200 ->expects($this->any())
201 ->method(
'getContentObject')
202 ->willReturn($contentObject);
204 $mockController->_set(
'configurationManager', $frontendConfigurationManager);
205 $mockController->_set(
'objectManager', $objectManagerMock);
207 $configurationServiceProphecy->getPrototypeConfiguration(Argument::cetera())->willReturn([
208 'finishersDefinition' => [
209 'EmailToReceiver' => [
212 'subject' => [
'config' => [
'type' =>
'input']],
213 'recipientAddress' => [
'config' => [
'type' =>
'input']],
214 'format' => [
'config' => [
'type' =>
'input']],
221 $mockController->_set(
'settings', [
222 'overrideFinishers' => 1,
226 'persistenceIdentifier' =>
'1:/foo',
227 'identifier' =>
'ext-form-identifier',
228 'prototypeName' =>
'standard',
231 'identifier' =>
'EmailToReceiver',
233 'subject' =>
'Mesage Subject',
234 'recipientAddress' =>
'your.company@example.com',
242 'persistenceIdentifier' =>
'1:/foo',
243 'identifier' =>
'ext-form-identifier',
244 'prototypeName' =>
'standard',
247 'identifier' =>
'EmailToReceiver',
249 'subject' =>
'Mesage Subject overridden',
250 'recipientAddress' =>
'your.company@example.com overridden',
251 'format' =>
'html overridden',
257 $this->assertSame($expected, $mockController->_call(
'overrideByFlexFormSettings', $input));
265 $mockController = $this->getAccessibleMock(FormFrontendController::class, [
269 $configurationServiceProphecy = $this->prophesize(ConfigurationService::class);
271 $objectManagerMock = $this->createMock(ObjectManager::class);
273 ->expects($this->any())
275 ->with(ConfigurationService::class)
276 ->willReturn($configurationServiceProphecy->reveal());
278 $sheetIdentifier = md5(
282 'ext-form-identifier',
288 $contentObject = new \stdClass();
289 $contentObject->data = [
290 'pi_flexform' => $flexFormTools->flexArray2Xml([
292 $sheetIdentifier => [
294 'settings.finishers.EmailToReceiver.subject' => [
'vDEF' =>
'Mesage Subject overridden'],
295 'settings.finishers.EmailToReceiver.recipientAddress' => [
'vDEF' =>
'your.company@example.com overridden'],
296 'settings.finishers.EmailToReceiver.format' => [
'vDEF' =>
'html overridden'],
303 $frontendConfigurationManager = $this->createMock(FrontendConfigurationManager::class);
304 $frontendConfigurationManager
305 ->expects($this->any())
306 ->method(
'getContentObject')
307 ->willReturn($contentObject);
309 $mockController->_set(
'configurationManager', $frontendConfigurationManager);
310 $mockController->_set(
'objectManager', $objectManagerMock);
312 $configurationServiceProphecy->getPrototypeConfiguration(Argument::cetera())->willReturn([
313 'finishersDefinition' => [
314 'EmailToReceiver' => [
317 'subject' => [
'config' => [
'type' =>
'input']],
318 'recipientAddress' => [
'config' => [
'type' =>
'input']],
325 $mockController->_set(
'settings', [
326 'overrideFinishers' => 1,
328 'EmailToReceiver' => [
329 'subject' =>
'Mesage Subject overridden',
330 'recipientAddress' =>
'your.company@example.com overridden',
331 'format' =>
'html overridden',
337 'persistenceIdentifier' =>
'1:/foo',
338 'identifier' =>
'ext-form-identifier',
339 'prototypeName' =>
'standard',
342 'identifier' =>
'EmailToReceiver',
344 'subject' =>
'Mesage Subject',
345 'recipientAddress' =>
'your.company@example.com',
353 'persistenceIdentifier' =>
'1:/foo',
354 'identifier' =>
'ext-form-identifier',
355 'prototypeName' =>
'standard',
358 'identifier' =>
'EmailToReceiver',
360 'subject' =>
'Mesage Subject overridden',
361 'recipientAddress' =>
'your.company@example.com overridden',
368 $this->assertSame($expected, $mockController->_call(
'overrideByFlexFormSettings', $input));
376 $mockController = $this->getAccessibleMock(FormFrontendController::class, [
380 $configurationServiceProphecy = $this->prophesize(ConfigurationService::class);
382 $objectManagerMock = $this->createMock(ObjectManager::class);
384 ->expects($this->any())
386 ->with(ConfigurationService::class)
387 ->willReturn($configurationServiceProphecy->reveal());
389 $sheetIdentifier = md5(
393 'ext-form-identifier',
398 $anotherSheetIdentifier = md5(
402 'another-ext-form-identifier',
408 $contentObject = new \stdClass();
409 $contentObject->data = [
410 'pi_flexform' => $flexFormTools->flexArray2Xml([
412 $sheetIdentifier => [
414 'settings.finishers.EmailToReceiver.subject' => [
'vDEF' =>
'Mesage Subject overridden 1'],
415 'settings.finishers.EmailToReceiver.recipientAddress' => [
'vDEF' =>
'your.company@example.com overridden 1'],
416 'settings.finishers.EmailToReceiver.format' => [
'vDEF' =>
'html overridden 1'],
419 $anotherSheetIdentifier => [
421 'settings.finishers.EmailToReceiver.subject' => [
'vDEF' =>
'Mesage Subject overridden 2'],
422 'settings.finishers.EmailToReceiver.recipientAddress' => [
'vDEF' =>
'your.company@example.com overridden 2'],
423 'settings.finishers.EmailToReceiver.format' => [
'vDEF' =>
'html overridden 2'],
430 $frontendConfigurationManager = $this->createMock(FrontendConfigurationManager::class);
431 $frontendConfigurationManager
432 ->expects($this->any())
433 ->method(
'getContentObject')
434 ->willReturn($contentObject);
436 $mockController->_set(
'configurationManager', $frontendConfigurationManager);
437 $mockController->_set(
'objectManager', $objectManagerMock);
439 $configurationServiceProphecy->getPrototypeConfiguration(Argument::cetera())->willReturn([
440 'finishersDefinition' => [
441 'EmailToReceiver' => [
444 'subject' => [
'config' => [
'type' =>
'input']],
445 'recipientAddress' => [
'config' => [
'type' =>
'input']],
446 'format' => [
'config' => [
'type' =>
'input']],
453 $mockController->_set(
'settings', [
454 'overrideFinishers' => 1,
458 'persistenceIdentifier' =>
'1:/foo',
459 'identifier' =>
'ext-form-identifier',
460 'prototypeName' =>
'standard',
463 'identifier' =>
'EmailToReceiver',
465 'subject' =>
'Mesage Subject',
466 'recipientAddress' =>
'your.company@example.com',
474 'persistenceIdentifier' =>
'1:/foo',
475 'identifier' =>
'ext-form-identifier',
476 'prototypeName' =>
'standard',
479 'identifier' =>
'EmailToReceiver',
481 'subject' =>
'Mesage Subject overridden 1',
482 'recipientAddress' =>
'your.company@example.com overridden 1',
483 'format' =>
'html overridden 1',
489 $this->assertSame($expected, $mockController->_call(
'overrideByFlexFormSettings', $input));
497 $mockController = $this->getAccessibleMock(FormFrontendController::class, [
501 $typoScriptServiceProphecy = $this->prophesize(TypoScriptService::class);
503 $objectManagerMock = $this->createMock(ObjectManager::class);
505 ->expects($this->any())
507 ->with(TypoScriptService::class)
508 ->willReturn($typoScriptServiceProphecy->reveal());
510 $mockController->_set(
'objectManager', $objectManagerMock);
512 $typoScriptServiceProphecy
513 ->resolvePossibleTypoScriptConfiguration(Argument::cetera())
514 ->willReturnArgument(0);
516 $mockController->_set(
'settings', [
517 'formDefinitionOverrides' => [
522 'identifier' =>
'ext-form-identifier',
523 'prototypeName' =>
'standard',
527 'identifier' =>
'page-1',
532 'identifier' =>
'text-1',
542 'identifier' =>
'ext-form-identifier',
543 'prototypeName' =>
'standard',
547 'identifier' =>
'page-1',
552 'identifier' =>
'text-1',
561 $this->assertSame($expected, $mockController->_call(
'overrideByTypoScriptSettings', $input));
569 $mockController = $this->getAccessibleMock(FormFrontendController::class, [
573 $typoScriptServiceProphecy = $this->prophesize(TypoScriptService::class);
575 $objectManagerMock = $this->createMock(ObjectManager::class);
577 ->expects($this->any())
579 ->with(TypoScriptService::class)
580 ->willReturn($typoScriptServiceProphecy->reveal());
582 $mockController->_set(
'objectManager', $objectManagerMock);
584 $typoScriptServiceProphecy
585 ->resolvePossibleTypoScriptConfiguration(Argument::cetera())
586 ->willReturnArgument(0);
588 $mockController->_set(
'settings', [
589 'formDefinitionOverrides' => [
590 'ext-form-identifier' => [
591 'label' =>
'Label override',
596 'label' =>
'Label override',
606 'identifier' =>
'ext-form-identifier',
607 'prototypeName' =>
'standard',
611 'identifier' =>
'page-1',
616 'identifier' =>
'text-1',
626 'identifier' =>
'ext-form-identifier',
627 'prototypeName' =>
'standard',
628 'label' =>
'Label override',
631 'identifier' =>
'page-1',
636 'identifier' =>
'text-1',
638 'label' =>
'Label override',
645 $this->assertSame($expected, $mockController->_call(
'overrideByTypoScriptSettings', $input));