diff --git a/typo3/sysext/form/Classes/Hooks/DataStructureIdentifierHook.php b/typo3/sysext/form/Classes/Hooks/DataStructureIdentifierHook.php index 8b802029c009..fa775c59b490 100644 --- a/typo3/sysext/form/Classes/Hooks/DataStructureIdentifierHook.php +++ b/typo3/sysext/form/Classes/Hooks/DataStructureIdentifierHook.php @@ -67,7 +67,7 @@ public function getDataStructureIdentifierPostProcess( ): array { if ($tableName === 'tt_content' && $fieldName === 'pi_flexform' && $row['CType'] === 'form_formframework') { $currentFlexData = []; - if (!is_array($row['pi_flexform']) && !empty($row['pi_flexform'])) { + if (!empty($row['pi_flexform']) && !\is_array($row['pi_flexform'])) { $currentFlexData = GeneralUtility::xml2array($row['pi_flexform']); } @@ -111,7 +111,7 @@ public function parseDataStructureByIdentifierPostProcess(array $dataStructure, $formIsAccessible = true; } - if ($form['invalid']) { + if (isset($form['invalid']) && $form['invalid']) { $dataStructure['sheets']['sDEF']['ROOT']['el']['settings.persistenceIdentifier']['TCEforms']['config']['items'][] = [ $form['name'] . ' (' . $form['persistenceIdentifier'] . ')', $form['persistenceIdentifier'], diff --git a/typo3/sysext/form/Tests/Unit/Hooks/DataStructureIdentifierHookTest.php b/typo3/sysext/form/Tests/Unit/Hooks/DataStructureIdentifierHookTest.php index 738a61a081de..b9a438a5d505 100644 --- a/typo3/sysext/form/Tests/Unit/Hooks/DataStructureIdentifierHookTest.php +++ b/typo3/sysext/form/Tests/Unit/Hooks/DataStructureIdentifierHookTest.php @@ -1,4 +1,5 @@ singletonInstances); parent::tearDown(); @@ -55,7 +52,7 @@ public function tearDown() /** * @test */ - public function getDataStructureIdentifierPostProcessReturnsIdentifierForNotMatchingScenario() + public function getDataStructureIdentifierPostProcessReturnsIdentifierForNotMatchingScenario(): void { $givenIdentifier = ['aKey' => 'aValue']; $result = (new DataStructureIdentifierHook())->getDataStructureIdentifierPostProcess( @@ -71,7 +68,7 @@ public function getDataStructureIdentifierPostProcessReturnsIdentifierForNotMatc /** * @test */ - public function getDataStructureIdentifierPostProcessAddDefaultValuesForNewRecord() + public function getDataStructureIdentifierPostProcessAddDefaultValuesForNewRecord(): void { $result = (new DataStructureIdentifierHook())->getDataStructureIdentifierPostProcess( [], @@ -89,7 +86,7 @@ public function getDataStructureIdentifierPostProcessAddDefaultValuesForNewRecor /** * @test */ - public function getDataStructureIdentifierPostProcessAddsGivenPersistenceIdentifier() + public function getDataStructureIdentifierPostProcessAddsGivenPersistenceIdentifier(): void { $row = [ 'CType' => 'form_formframework', @@ -128,7 +125,7 @@ public function getDataStructureIdentifierPostProcessAddsGivenPersistenceIdentif /** * @test */ - public function getDataStructureIdentifierPostProcessAddsOverrideFinisherValue() + public function getDataStructureIdentifierPostProcessAddsOverrideFinisherValue(): void { $row = [ 'CType' => 'form_formframework', @@ -163,7 +160,7 @@ public function getDataStructureIdentifierPostProcessAddsOverrideFinisherValue() /** * @test */ - public function parseDataStructureByIdentifierPostProcessReturnsDataStructureUnchanged() + public function parseDataStructureByIdentifierPostProcessReturnsDataStructureUnchanged(): void { $dataStructure = ['foo' => 'bar']; $expected = $dataStructure; @@ -181,7 +178,7 @@ public function parseDataStructureByIdentifierPostProcessReturnsDataStructureUnc * @param array $formDefinition * @param array $expectedItem */ - public function parseDataStructureByIdentifierPostProcessAddsExistingFormItems(array $formDefinition, array $expectedItem) + public function parseDataStructureByIdentifierPostProcessAddsExistingFormItems(array $formDefinition, array $expectedItem): void { $objectManagerProphecy = $this->prophesize(ObjectManager::class); GeneralUtility::setSingletonInstance(ObjectManager::class, $objectManagerProphecy->reveal()); @@ -284,7 +281,7 @@ public function parseDataStructureByIdentifierPostProcessDataProvider(): array * * @return array */ - public function implodeArrayKeysReturnsStringDataProvider() + public function implodeArrayKeysReturnsStringDataProvider(): array { return [ 'One string' => [ @@ -351,8 +348,10 @@ public function implodeArrayKeysReturnsStringDataProvider() /** * @dataProvider implodeArrayKeysReturnsStringDataProvider * @test + * @param array $array + * @param string $expectation */ - public function implodeArrayKeysReturnsString($array, $expectation) + public function implodeArrayKeysReturnsString(array $array, string $expectation): void { $hookMock = $this->getAccessibleMock(DataStructureIdentifierHook::class, [ 'dummy' ], [], '', false); $this->assertEquals($expectation, $hookMock->_call('implodeArrayKeys', $array));