17 use Prophecy\Argument;
18 use Prophecy\Prophecy\ObjectProphecy;
25 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
37 GeneralUtility::purgeInstances();
47 'simpleCheckboxConfig' => [
77 'invertStateDisplay' => false
86 'brokenSimpleCheckboxConfig' => [
107 'tableName' =>
'foo',
117 'invertStateDisplay' => false
126 'toggleCheckboxConfig' => [
128 'tableName' =>
'foo',
134 'renderType' =>
'checkboxToggle',
139 'labelChecked' =>
'Enabled',
140 'labelUnchecked' =>
'Disabled'
149 'tableName' =>
'foo',
155 'renderType' =>
'checkboxToggle',
160 'invertStateDisplay' => false
169 'inverted_toggleCheckboxConfig' => [
171 'tableName' =>
'foo',
177 'renderType' =>
'checkboxToggle',
182 'labelChecked' =>
'Enabled',
183 'labelUnchecked' =>
'Disabled',
184 'invertStateDisplay' => true
193 'tableName' =>
'foo',
199 'renderType' =>
'checkboxToggle',
204 'invertStateDisplay' => true
213 'labeledCheckboxConfig' => [
215 'tableName' =>
'foo',
221 'renderType' =>
'checkboxLabeledToggle',
226 'labelChecked' =>
'Enabled',
227 'labelUnchecked' =>
'Disabled'
236 'tableName' =>
'foo',
242 'renderType' =>
'checkboxLabeledToggle',
247 'labelChecked' =>
'Enabled',
248 'labelUnchecked' =>
'Disabled',
249 'invertStateDisplay' => false
258 'inverted_labeledCheckboxConfig' => [
260 'tableName' =>
'foo',
266 'renderType' =>
'checkboxLabeledToggle',
271 'labelChecked' =>
'Enabled',
272 'labelUnchecked' =>
'Disabled',
273 'invertStateDisplay' => true
282 'tableName' =>
'foo',
288 'renderType' =>
'checkboxLabeledToggle',
293 'labelChecked' =>
'Enabled',
294 'labelUnchecked' =>
'Disabled',
295 'invertStateDisplay' => true
304 'iconCheckboxConfig' => [
306 'tableName' =>
'foo',
312 'renderType' =>
'checkboxIconToggle',
317 'labelChecked' =>
'Enabled',
318 'labelUnchecked' =>
'Disabled',
319 'iconIdentifierChecked' =>
'styleguide-icon-toggle-checked',
320 'iconIdentifierUnchecked' =>
'styleguide-icon-toggle-checked',
329 'tableName' =>
'foo',
335 'renderType' =>
'checkboxIconToggle',
340 'iconIdentifierChecked' =>
'styleguide-icon-toggle-checked',
341 'iconIdentifierUnchecked' =>
'styleguide-icon-toggle-checked',
342 'invertStateDisplay' => false
351 'inverted_iconCheckboxConfig' => [
353 'tableName' =>
'foo',
359 'renderType' =>
'checkboxIconToggle',
364 'labelChecked' =>
'Enabled',
365 'labelUnchecked' =>
'Disabled',
366 'iconIdentifierChecked' =>
'styleguide-icon-toggle-checked',
367 'iconIdentifierUnchecked' =>
'styleguide-icon-toggle-checked',
368 'invertStateDisplay' => true
377 'tableName' =>
'foo',
383 'renderType' =>
'checkboxIconToggle',
388 'iconIdentifierChecked' =>
'styleguide-icon-toggle-checked',
389 'iconIdentifierUnchecked' =>
'styleguide-icon-toggle-checked',
390 'invertStateDisplay' => true
408 $languageService = $this->prophesize(LanguageService::class);
409 $GLOBALS[
'LANG'] = $languageService->reveal();
410 $languageService->sL(Argument::cetera())->willReturnArgument(0);
436 $languageService = $this->prophesize(LanguageService::class);
437 $GLOBALS[
'LANG'] = $languageService->reveal();
438 $languageService->sL(Argument::cetera())->willReturnArgument(0);
440 $this->expectException(\UnexpectedValueException::class);
441 $this->expectExceptionCode(1440499337);
458 'funnyKey' =>
'funnyValue',
468 $languageService = $this->prophesize(LanguageService::class);
469 $GLOBALS[
'LANG'] = $languageService->reveal();
470 $languageService->sL(Argument::cetera())->willReturnArgument(0);
472 $this->expectException(\UnexpectedValueException::class);
473 $this->expectExceptionCode(1440499338);
502 $languageService = $this->prophesize(LanguageService::class);
503 $GLOBALS[
'LANG'] = $languageService->reveal();
505 $languageService->sL(
'aLabel')->shouldBeCalled()->willReturn(
'translated');
508 $expected[
'processedTca'][
'columns'][
'aField'][
'config'][
'items'][0][0] =
'translated';
509 $expected[
'processedTca'][
'columns'][
'aField'][
'config'][
'items'][0][
'invertStateDisplay'] =
false;
520 'tableName' =>
'aTable',
528 'itemsProcFunc' =>
function (array $parameters, $pObj) {
529 $parameters[
'items'] = [
539 $languageService = $this->prophesize(LanguageService::class);
540 $GLOBALS[
'LANG'] = $languageService->reveal();
541 $languageService->sL(Argument::cetera())->willReturnArgument(0);
544 $expected[
'processedTca'][
'columns'][
'aField'][
'config'] = [
559 'tableName' =>
'aTable',
561 'aField' =>
'aValue',
567 'itemsProcFunc.' => [
568 'itemParamKey' =>
'itemParamValue',
574 'flexParentDatabaseRow' => [
575 'aParentDatabaseRowFieldName' =>
'aParentDatabaseRowFieldValue',
587 'invertedStateDisplay' => false
590 'itemsProcFunc' =>
function (array $parameters, $pObj) {
592 $parameters[
'items'] !== [ 0 => [0=>
'foo', 1 =>
'bar',
'invertStateDisplay' =>
false]]
593 || $parameters[
'config'][
'aKey'] !==
'aValue'
594 || $parameters[
'TSconfig'] !== [
'itemParamKey' =>
'itemParamValue' ]
595 || $parameters[
'table'] !==
'aTable'
596 || $parameters[
'row'] !== [
'aField' =>
'aValue' ]
597 || $parameters[
'field'] !==
'aField'
598 || $parameters[
'flexParentDatabaseRow'][
'aParentDatabaseRowFieldName'] !==
'aParentDatabaseRowFieldValue'
600 throw new \UnexpectedValueException(
'broken', 1476109402);
609 $languageService = $this->prophesize(LanguageService::class);
610 $GLOBALS[
'LANG'] = $languageService->reveal();
611 $languageService->sL(Argument::cetera())->willReturnArgument(0);
613 $flashMessage = $this->prophesize(FlashMessage::class);
614 GeneralUtility::addInstance(FlashMessage::class, $flashMessage->reveal());
616 $flashMessageService = $this->prophesize(FlashMessageService::class);
617 GeneralUtility::setSingletonInstance(FlashMessageService::class, $flashMessageService->reveal());
619 $flashMessageQueue = $this->prophesize(FlashMessageQueue::class);
620 $flashMessageService->getMessageQueueByIdentifier(Argument::cetera())->willReturn($flashMessageQueue->reveal());
623 $flashMessageQueue->enqueue($flashMessage)->shouldNotBeCalled();
634 'tableName' =>
'aTable',
636 'aField' =>
'aValue',
642 'itemsProcFunc.' => [
643 'itemParamKey' =>
'itemParamValue',
661 'itemsProcFunc' =>
function (array $parameters, $pObj) {
662 throw new \UnexpectedValueException(
'anException', 1438604329);
670 $languageService = $this->prophesize(LanguageService::class);
671 $GLOBALS[
'LANG'] = $languageService->reveal();
673 $flashMessage = $this->prophesize(FlashMessage::class);
674 GeneralUtility::addInstance(FlashMessage::class, $flashMessage->reveal());
676 $flashMessageService = $this->prophesize(FlashMessageService::class);
677 GeneralUtility::setSingletonInstance(FlashMessageService::class, $flashMessageService->reveal());
679 $flashMessageQueue = $this->prophesize(FlashMessageQueue::class);
680 $flashMessageService->getMessageQueueByIdentifier(Argument::cetera())->willReturn($flashMessageQueue->reveal());
682 $flashMessageQueue->enqueue($flashMessage)->shouldBeCalled();
693 'tableName' =>
'aTable',
714 0 =>
'labelOverride',
723 $languageService = $this->prophesize(LanguageService::class);
724 $GLOBALS[
'LANG'] = $languageService->reveal();
725 $languageService->sL(
'aLabel')->willReturnArgument(0);
727 $languageService->sL(
'labelOverride')->shouldBeCalled()->willReturnArgument(0);
730 $expected[
'processedTca'][
'columns'][
'aField'][
'config'][
'items'][0][0] =
'labelOverride';
731 $expected[
'processedTca'][
'columns'][
'aField'][
'config'][
'items'][0][
'invertStateDisplay'] =
false;