- /**
- * @test
- */
- public function migrateIconsForFormFieldWizardToNewLocation(): void
- {
- $input = [
- 'aTable' => [
- 'columns' => [
- 'bodytext' => [
- 'config' => [
- 'type' => 'text',
- 'wizards' => [
- 't3editorHtml' => [
- 'icon' => 'wizard_table.gif',
- ],
- ],
- ],
- ],
- ],
- ],
- ];
-
- $expected = [
- 'aTable' => [
- 'columns' => [
- 'bodytext' => [
- 'config' => [
- 'type' => 'text',
- 'wizards' => [
- 't3editorHtml' => [
- 'icon' => 'content-table',
- ],
- ],
- ],
- ],
- ],
- ],
- ];
-
- $subject = new TcaMigration();
- $this->assertEquals($expected, $subject->migrate($input));
- }
-
- /**
- * @test
- */
- public function migrateExtAndSysextPathToEXTPath(): void
- {
- $input = [
- 'aTable' => [
- 'columns' => [
- 'foo' => [
- 'config' => [
- 'type' => 'select',
- 'items' => [
- ['foo', 0, 'ext/myext/foo/bar.gif'],
- ['bar', 1, 'sysext/myext/foo/bar.gif'],
- ],
- ],
- ],
- ],
- ],
- ];
-
- $expected = [
- 'aTable' => [
- 'columns' => [
- 'foo' => [
- 'config' => [
- 'type' => 'select',
- 'renderType' => 'selectSingle',
- 'items' => [
- ['foo', 0, 'EXT:myext/foo/bar.gif'],
- ['bar', 1, 'EXT:myext/foo/bar.gif'],
- ],
- ],
- ],
- ],
- ],
- ];
-
- $subject = new TcaMigration();
- $this->assertEquals($expected, $subject->migrate($input));
- }
-
- /**
- * @test
- */
- public function migratePathWhichStartsWithIToEXTPath(): void
- {
- $input = [
- 'aTable' => [
- 'columns' => [
- 'foo' => [
- 'config' => [
- 'type' => 'select',
- 'items' => [
- ['foo', 0, 'i/tt_content.gif'],
- ],
- ],
- ],
- ],
- ],
- ];
-
- $expected = [
- 'aTable' => [
- 'columns' => [
- 'foo' => [
- 'config' => [
- 'type' => 'select',
- 'renderType' => 'selectSingle',
- 'items' => [
- ['foo', 0, 'EXT:backend/Resources/Public/Images/tt_content.gif'],
- ],
- ],
- ],
- ],
- ],
- ];
-
- $subject = new TcaMigration();
- $this->assertEquals($expected, $subject->migrate($input));
- }
-
- /**
- * @test
- */
- public function migrateRemovesIconsInOptionTags(): void
- {
- $input = [
- 'aTable' => [
- 'columns' => [
- 'foo' => [
- 'config' => [
- 'type' => 'select',
- 'iconsInOptionTags' => 1,
- ],
- ],
- ],
- ],
- ];
- $expected = [
- 'aTable' => [
- 'columns' => [
- 'foo' => [
- 'config' => [
- 'type' => 'select',
- 'renderType' => 'selectSingle',
- ],
- ],
- ],
- ],
- ];
-
- $subject = new TcaMigration();
- $this->assertEquals($expected, $subject->migrate($input));
- }
-
- /**
- * @test
- */
- public function migrateRewritesRelativeIconPathToExtensionReference(): void
- {
- $input = [
- 'aTable' => [
- 'ctrl' => [
- 'iconfile' => '../typo3conf/ext/myExt/iconfile.gif',
- ],
- ],
- ];
- $expected = [
- 'aTable' => [
- 'ctrl' => [
- 'iconfile' => 'EXT:myExt/iconfile.gif',
- ],
- ],
- ];
- $subject = new TcaMigration();
- $this->assertEquals($expected, $subject->migrate($input));
- }
-
- /**
- * @test
- */
- public function migrateRewritesIconFilenameOnlyToDefaultT3skinExtensionReference(): void
- {
- $input = [
- 'aTable' => [
- 'ctrl' => [
- 'iconfile' => 'iconfile.gif',
- ],
- ],
- ];
- $expected = [
- 'aTable' => [
- 'ctrl' => [
- 'iconfile' => 'EXT:backend/Resources/Public/Images/iconfile.gif',
- ],
- ],
- ];
- $subject = new TcaMigration();
- $this->assertEquals($expected, $subject->migrate($input));
- }
-
- /**
- * @test
- */
- public function migrateKeepsGivenExtensionReference(): void
- {
- $input = [
- 'aTable' => [
- 'ctrl' => [
- 'iconfile' => 'EXT:myExt/iconfile.gif',
- ],
- ],
- ];
- $expected = [
- 'aTable' => [
- 'ctrl' => [
- 'iconfile' => 'EXT:myExt/iconfile.gif',
- ],
- ],
- ];
- $subject = new TcaMigration();
- $this->assertEquals($expected, $subject->migrate($input));
- }
-
- /**
- * @test
- */
- public function migrateSelectFieldRenderType(): void
- {
- $input = [
- 'aTable-do-not-migrate-because-renderType-is-set' => [
- 'columns' => [
- 'a-column' => [
- 'config' => [
- 'type' => 'select',
- 'renderType' => 'fooBar'
- ]
- ]
- ],
- ],
- 'aTable-do-migrate-because-renderType-is-not-set' => [
- 'columns' => [
- 'a-tree-column' => [
- 'config' => [
- 'type' => 'select',
- 'renderMode' => 'tree'
- ]
- ],
- 'a-singlebox-column' => [
- 'config' => [
- 'type' => 'select',
- 'renderMode' => 'singlebox'
- ]
- ],
- 'a-checkbox-column' => [
- 'config' => [
- 'type' => 'select',
- 'renderMode' => 'checkbox'
- ]
- ],
- 'an-unknown-column' => [
- 'config' => [
- 'type' => 'select',
- 'renderMode' => 'unknown'
- ]
- ],
- 'a-maxitems-column-not-set' => [
- 'config' => [
- 'type' => 'select',
- ]
- ],
- 'a-maxitems-column-0' => [
- 'config' => [
- 'type' => 'select',
- 'maxitems' => '0'
- ]
- ],
- 'a-maxitems-column-1' => [
- 'config' => [
- 'type' => 'select',
- 'maxitems' => '1'
- ]
- ],
- 'a-maxitems-column-2' => [
- 'config' => [
- 'type' => 'select',
- 'maxitems' => '2'
- ]
- ],
- 'a-tree-column-with-maxitems' => [
- 'config' => [
- 'type' => 'select',
- 'renderMode' => 'tree',
- 'maxitems' => '1'
- ]
- ],
- 'a-singlebox-column-with-maxitems' => [
- 'config' => [
- 'type' => 'select',
- 'renderMode' => 'singlebox',
- 'maxitems' => '1'
- ]
- ],
- 'a-checkbox-column-with-maxitems' => [
- 'config' => [
- 'type' => 'select',
- 'renderMode' => 'checkbox',
- 'maxitems' => '1'
- ]
- ],
- ],
- ],
- ];
- $expected = [
- 'aTable-do-not-migrate-because-renderType-is-set' => [
- 'columns' => [
- 'a-column' => [
- 'config' => [
- 'type' => 'select',
- 'renderType' => 'fooBar'
- ]
- ]
- ],
- ],
- 'aTable-do-migrate-because-renderType-is-not-set' => [
- 'columns' => [
- 'a-tree-column' => [
- 'config' => [
- 'type' => 'select',
- 'renderMode' => 'tree',
- 'renderType' => 'selectTree'
- ]
- ],
- 'a-singlebox-column' => [
- 'config' => [
- 'type' => 'select',
- 'renderMode' => 'singlebox',
- 'renderType' => 'selectSingleBox'
- ]
- ],
- 'a-checkbox-column' => [
- 'config' => [
- 'type' => 'select',
- 'renderMode' => 'checkbox',
- 'renderType' => 'selectCheckBox'
- ]
- ],
- 'an-unknown-column' => [
- 'config' => [
- 'type' => 'select',
- 'renderMode' => 'unknown'
- ]
- ],
- 'a-maxitems-column-not-set' => [
- 'config' => [
- 'type' => 'select',
- 'renderType' => 'selectSingle'
- ]
- ],
- 'a-maxitems-column-0' => [
- 'config' => [
- 'type' => 'select',
- 'maxitems' => '0',
- 'renderType' => 'selectSingle'
- ]
- ],
- 'a-maxitems-column-1' => [
- 'config' => [
- 'type' => 'select',
- 'maxitems' => 1,
- 'renderType' => 'selectSingle'
- ]
- ],
- 'a-maxitems-column-2' => [
- 'config' => [
- 'type' => 'select',
- 'maxitems' => 2,
- 'renderType' => 'selectMultipleSideBySide'
- ]
- ],
- 'a-tree-column-with-maxitems' => [
- 'config' => [
- 'type' => 'select',
- 'renderMode' => 'tree',
- 'renderType' => 'selectTree',
- 'maxitems' => '1'
- ]
- ],
- 'a-singlebox-column-with-maxitems' => [
- 'config' => [
- 'type' => 'select',
- 'renderMode' => 'singlebox',
- 'renderType' => 'selectSingleBox',
- 'maxitems' => '1'
- ]
- ],
- 'a-checkbox-column-with-maxitems' => [
- 'config' => [
- 'type' => 'select',
- 'renderMode' => 'checkbox',
- 'renderType' => 'selectCheckBox',
- 'maxitems' => '1'
- ]
- ],
- ],
- ],
- ];
- $subject = new TcaMigration();
- $this->assertEquals($expected, $subject->migrate($input));
- }
-
- /**
- * @return array
- */
- public function migrateSetsShowIconTableIfMissingDataProvider(): array
- {
- return [
- 'not-a-select-is-kept' => [
- [
- // Given config section
- 'type' => 'input',
- ],
- [
- // Expected config section
- 'type' => 'input',
- ],
- ],
- 'not-a-selectSingle-is-kept' => [
- [
- 'type' => 'select',
- 'renderType' => 'selectCheckBox',
- ],
- [
- 'type' => 'select',
- 'renderType' => 'selectCheckBox',
- ],
- ],
- 'noIconsBelowSelect-true-is-removed' => [
- [
- 'type' => 'select',
- 'renderType' => 'selectSingle',
- 'noIconsBelowSelect' => true,
- ],
- [
- 'type' => 'select',
- 'renderType' => 'selectSingle',
- ],
- ],
- 'noIconsBelowSelect-false-is-removed-sets-field-wizard' => [
- [
- 'type' => 'select',
- 'renderType' => 'selectSingle',
- 'noIconsBelowSelect' => false,
- ],
- [
- 'type' => 'select',
- 'renderType' => 'selectSingle',
- 'fieldWizard' => [
- 'selectIcons' => [
- 'disabled' => false,
- ],
- ],
- ],
- ],
- 'noIconsBelowSelect-false-is-removes-given-showIconTable-false' => [
- [
- 'type' => 'select',
- 'renderType' => 'selectSingle',
- 'noIconsBelowSelect' => false,
- 'showIconTable' => false,
- ],
- [
- 'type' => 'select',
- 'renderType' => 'selectSingle',
- ],
- ],
- 'suppress-icons-1-is-removed' => [
- [
- 'type' => 'select',
- 'renderType' => 'selectSingle',
- 'suppress_icons' => '1',
- ],
- [
- 'type' => 'select',
- 'renderType' => 'selectSingle',
- ],
- ],
- 'suppress-icons-value-is-removed' => [
- [
- 'type' => 'select',
- 'renderType' => 'selectSingle',
- 'suppress_icons' => 'IF_VALUE_FALSE',
- ],
- [
- 'type' => 'select',
- 'renderType' => 'selectSingle',
- ],
- ],
- 'selicon-cols-is-removed' => [
- [
- 'type' => 'select',
- 'renderType' => 'selectSingle',
- 'selicon_cols' => 16,
- ],
- [
- 'type' => 'select',
- 'renderType' => 'selectSingle',
- ],
- ],
- 'foreign_table_loadIcons-is-removed' => [
- [
- 'type' => 'select',
- 'renderType' => 'selectSingle',
- 'foreign_table_loadIcons' => true,
- ],
- [
- 'type' => 'select',
- 'renderType' => 'selectSingle',
- ],
- ],
- ];
- }
-
- /**
- * @test
- * @dataProvider migrateSetsShowIconTableIfMissingDataProvider
- * @param array $givenConfig
- * @param array $expectedConfig
- */
- public function migrateSetsShowIconTableIfMissing(array $givenConfig, array $expectedConfig): void
- {
- $input = [
- 'aTable' => [
- 'columns' => [
- 'aField' => [
- 'config' => $givenConfig,
- ]
- ],
- ],
- ];
- $expected = $input;
- $expected['aTable']['columns']['aField']['config'] = $expectedConfig;
-
- $subject = new TcaMigration();
- $this->assertEquals($expected, $subject->migrate($input));
- }
-
- /**
- * @test
- */
- public function migrateFixesReferenceToLinkHandler()
- {
- $input = [
- 'aTable' => [
- 'columns' => [
- 'aCol' => [
- 'config' => [
- 'type' => 'input',
- 'wizards' => [
- 'link' => [
- 'module' => [
- 'name' => 'wizard_element_browser',
- 'urlParameters' => [
- 'mode' => 'wizard'
- ]
- ],
- ],
- ],
- ],
- ],
- ],
- ],
- ];
- $expected = [
- 'aTable' => [
- 'columns' => [
- 'aCol' => [
- 'config' => [
- 'type' => 'input',
- 'wizards' => [
- 'link' => [
- 'module' => [
- 'name' => 'wizard_link',
- ],
- ],
- ],
- ],
- ],
- ],
- ],
- ];
-
- $subject = new TcaMigration();
- $this->assertEquals($expected, $subject->migrate($input));
- }
-