‪TYPO3CMS  ‪main
FileMetadataVisibleFieldsTest.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 /*
6  * This file is part of the TYPO3 CMS project.
7  *
8  * It is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU General Public License, either version 2
10  * of the License, or any later version.
11  *
12  * For the full copyright and license information, please read the
13  * LICENSE.txt file that was distributed with this source code.
14  *
15  * The TYPO3 project - inspiring people to share!
16  */
17 
19 
20 use PHPUnit\Framework\Attributes\DataProvider;
21 use PHPUnit\Framework\Attributes\Test;
26 use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
27 
28 final class ‪FileMetadataVisibleFieldsTest extends FunctionalTestCase
29 {
30  protected array ‪$coreExtensionsToLoad = ['filemetadata'];
31 
32  #[DataProvider('metadataFieldsDataDataProvider')]
33  #[Test]
34  public function ‪fileMetadataFormContainsExpectedFields(‪FileType $filetype, array ‪$fields): void
35  {
36  $this->importCSVDataSet(__DIR__ . '/../Fixtures/be_users.csv');
37  $this->setUpBackendUser(1);
38  ‪$GLOBALS['LANG'] = GeneralUtility::makeInstance(LanguageServiceFactory::class)->create('default');
39  ‪$GLOBALS['TCA']['sys_file_metadata']['ctrl']['type'] = 'fileype';
40 
41  $formEngineTestService = GeneralUtility::makeInstance(FormTestService::class);
42 
43  $formResult = $formEngineTestService->createNewRecordForm(
44  'sys_file_metadata',
45  ['fileype' => $filetype->value]
46  );
47 
48  foreach (‪$fields as $expectedFields) {
49  self::assertTrue(
50  $formEngineTestService->formHtmlContainsField($expectedFields, $formResult['html']),
51  'The field ' . $expectedFields . ' is not in the form HTML for file type ' . $filetype->name
52  );
53  }
54  }
55 
59  public static function ‪metadataFieldsDataDataProvider(): array
60  {
61  return [
62  FileType::UNKNOWN->name => [
63  FileType::UNKNOWN,
64  [
65  'title',
66  'description',
67  'ranking',
68  'keywords',
69  'caption',
70  'download_name',
71  'visible',
72  'status',
73  'fe_groups',
74  'creator',
75  'creator_tool',
76  'publisher',
77  'source',
78  'copyright',
79  'location_country',
80  'location_region',
81  'location_city',
82  'categories',
83  ],
84  ],
85  FileType::TEXT->value => [
86  FileType::TEXT,
87  [
88  'title',
89  'description',
90  'ranking',
91  'keywords',
92  'caption',
93  'download_name',
94  'visible',
95  'status',
96  'fe_groups',
97  'creator',
98  'creator_tool',
99  'publisher',
100  'source',
101  'copyright',
102  'language',
103  'location_country',
104  'location_region',
105  'location_city',
106  'categories',
107  ],
108  ],
109  FileType::IMAGE->value => [
110  FileType::IMAGE,
111  [
112  'title',
113  'description',
114  'ranking',
115  'keywords',
116  'alternative',
117  'caption',
118  'download_name',
119  'visible',
120  'status',
121  'fe_groups',
122  'creator',
123  'creator_tool',
124  'publisher',
125  'source',
126  'copyright',
127  'language',
128  'location_country',
129  'location_region',
130  'location_city',
131  'latitude',
132  'longitude',
133  'content_creation_date',
134  'content_modification_date',
135  'categories',
136  ],
137  ],
138  FileType::AUDIO->value => [
139  FileType::AUDIO,
140  [
141  'title',
142  'description',
143  'ranking',
144  'keywords',
145  'caption',
146  'download_name',
147  'visible',
148  'status',
149  'fe_groups',
150  'creator',
151  'creator_tool',
152  'publisher',
153  'source',
154  'copyright',
155  'language',
156  'content_creation_date',
157  'content_modification_date',
158  'duration',
159  'categories',
160  ],
161  ],
162  FileType::VIDEO->value => [
163  FileType::VIDEO,
164  [
165  'title',
166  'description',
167  'ranking',
168  'keywords',
169  'caption',
170  'download_name',
171  'visible',
172  'status',
173  'fe_groups',
174  'creator',
175  'creator_tool',
176  'publisher',
177  'source',
178  'copyright',
179  'language',
180  'content_creation_date',
181  'content_modification_date',
182  'duration',
183  'categories',
184  ],
185  ],
186  ];
187  }
188 }
‪TYPO3\CMS\Core\Localization\LanguageServiceFactory
Definition: LanguageServiceFactory.php:25
‪TYPO3\CMS\Filemetadata\Tests\Functional\Tca\FileMetadataVisibleFieldsTest\fileMetadataFormContainsExpectedFields
‪fileMetadataFormContainsExpectedFields(FileType $filetype, array $fields)
Definition: FileMetadataVisibleFieldsTest.php:34
‪TYPO3\CMS\Filemetadata\Tests\Functional\Tca\FileMetadataVisibleFieldsTest\$coreExtensionsToLoad
‪array $coreExtensionsToLoad
Definition: FileMetadataVisibleFieldsTest.php:30
‪TYPO3\CMS\Filemetadata\Tests\Functional\Tca\FileMetadataVisibleFieldsTest
Definition: FileMetadataVisibleFieldsTest.php:29
‪$fields
‪$fields
Definition: pages.php:5
‪TYPO3\CMS\Filemetadata\Tests\Functional\Tca
Definition: FileMetadataVisibleFieldsTest.php:18
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:25
‪TYPO3\CMS\Backend\Tests\Functional\Form\FormTestService
Definition: FormTestService.php:32
‪TYPO3\CMS\Core\Resource\FileType
‪FileType
Definition: FileType.php:21
‪TYPO3\CMS\Filemetadata\Tests\Functional\Tca\FileMetadataVisibleFieldsTest\metadataFieldsDataDataProvider
‪static array[] metadataFieldsDataDataProvider()
Definition: FileMetadataVisibleFieldsTest.php:59
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:52