diff --git a/typo3/sysext/backend/Classes/Form/FormDataProvider/EvaluateDisplayConditions.php b/typo3/sysext/backend/Classes/Form/FormDataProvider/EvaluateDisplayConditions.php index 5544c45a9eb83b66eb3aeec9580c64407d1da180..59df135acc99df92b65198bbbc1c49ad08f41609 100644 --- a/typo3/sysext/backend/Classes/Form/FormDataProvider/EvaluateDisplayConditions.php +++ b/typo3/sysext/backend/Classes/Form/FormDataProvider/EvaluateDisplayConditions.php @@ -415,10 +415,10 @@ class EvaluateDisplayConditions implements FormDataProviderInterface 1481382954 ); } - $namedConditionArray['function'] = $namedConditionArray[1]; - array_shift($namedConditionArray); - array_shift($namedConditionArray); - $namedConditionArray['parameters'] = $namedConditionArray; + $namedConditionArray['function'] = $conditionArray[1]; + array_shift($conditionArray); + array_shift($conditionArray); + $namedConditionArray['parameters'] = $conditionArray; $namedConditionArray['record'] = $databaseRow; break; default: diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/EvaluateDisplayConditionsTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/EvaluateDisplayConditionsTest.php index 235b7bd8a2498cf201d2bd4a8753e56e3172a1cf..9c8a0235eecea01dfc5f772c55f295cb1e1c588b 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/EvaluateDisplayConditionsTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/EvaluateDisplayConditionsTest.php @@ -494,6 +494,47 @@ class EvaluateDisplayConditionsTest extends \TYPO3\TestingFramework\Core\Unit\Un (new EvaluateDisplayConditions())->addData($input); } + /** + * @test + */ + public function addDataEvaluatesUserCondition() + { + $input = [ + 'databaseRow' => [], + 'processedTca' => [ + 'columns' => [ + 'field_1' => [ + 'displayCond' => 'USER:' . self::class . '->addDataEvaluatesUserConditionCallback:more:arguments', + ], + ], + ], + ]; + $this->expectException(\RuntimeException::class); + $this->expectExceptionCode(1488130499); + (new EvaluateDisplayConditions())->addData($input); + } + + /** + * Callback method of addDataEvaluatesUserCondition. A USER condition + * Throws an exception if data is correct! + * + * @throws \RuntimeException if data is ok + */ + public function addDataEvaluatesUserConditionCallback(array $parameter) + { + $expected = [ + 'record' => [], + 'flexformValueKey' => 'vDEF', + 'conditionParameters' => [ + 0 => 'more', + 1 => 'arguments', + ] + ]; + if ($expected === $parameter) { + throw new \RuntimeException('testing', 1488130499); + } + } + /** * @test */