‪TYPO3CMS  11.5
PagesVisibleFieldsTest.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 
24 use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
25 
26 class ‪PagesVisibleFieldsTest extends FunctionalTestCase
27 {
33  protected static ‪$defaultPageFormFields = [
34  'title',
35  'nav_title',
36  'subtitle',
37  'hidden',
38  'nav_hide',
39  'starttime',
40  'endtime',
41  'extendToSubpages',
42  'fe_group',
43  'fe_login_mode',
44  'abstract',
45  'keywords',
46  'description',
47  'author',
48  'author_email',
49  'layout',
50  'newUntil',
51  'backend_layout',
52  'backend_layout_next_level',
53  'content_from_pid',
54  'target',
55  'cache_timeout',
56  'cache_tags',
57  'l18n_cfg',
58  'is_siteroot',
59  'no_search',
60  'editlock',
61  'php_tree_stop',
62  'module',
63  'media',
64  'tsconfig_includes',
65  'TSconfig',
66  'categories',
67  ];
68 
74  protected static ‪$pageFormFields = [
78  'additionalFields' => [
79  'shortcut_mode',
80  'shortcut',
81  ],
82  'hiddenFields' => [
83  'keywords',
84  'description',
85  'content_from_pid',
86  'cache_timeout',
87  'cache_tags',
88  'module',
89  ],
90  ],
92  'additionalFields' => [
93  'mount_pid_ol',
94  'mount_pid',
95  ],
96  'hiddenFields' => [
97  'keywords',
98  'description',
99  'content_from_pid',
100  'cache_timeout',
101  'cache_tags',
102  'module',
103  ],
104  ],
106  'additionalFields' => [
107  'url',
108  ],
109  'hiddenFields' => [
110  'keywords',
111  'description',
112  'content_from_pid',
113  'cache_timeout',
114  'cache_tags',
115  'module',
116  ],
117  ],
119  'hiddenFields' => [
120  'nav_title',
121  'subtitle',
122  'nav_hide',
123  'starttime',
124  'endtime',
125  'extendToSubpages',
126  'fe_group',
127  'fe_login_mode',
128  'abstract',
129  'keywords',
130  'description',
131  'author',
132  'author_email',
133  'layout',
134  'newUntil',
135  'content_from_pid',
136  'cache_timeout',
137  'cache_tags',
138  'content_from_pid',
139  'target',
140  'cache_timeout',
141  'cache_tags',
142  'l18n_cfg',
143  'is_siteroot',
144  'no_search',
145  'php_tree_stop',
146  ],
147  ],
149  'hiddenFields' => [
150  'nav_title',
151  'subtitle',
152  'nav_hide',
153  'starttime',
154  'endtime',
155  'extendToSubpages',
156  'fe_group',
157  'fe_login_mode',
158  'abstract',
159  'keywords',
160  'description',
161  'author',
162  'author_email',
163  'layout',
164  'newUntil',
165  'backend_layout',
166  'backend_layout_next_level',
167  'content_from_pid',
168  'cache_timeout',
169  'cache_tags',
170  'content_from_pid',
171  'target',
172  'cache_timeout',
173  'cache_tags',
174  'l18n_cfg',
175  'is_siteroot',
176  'no_search',
177  'php_tree_stop',
178  'module',
179  'media',
180  'tsconfig_includes',
181  'TSconfig',
182  ],
183  ],
185  'hiddenFields' => [
186  'nav_title',
187  'subtitle',
188  'abstract',
189  'keywords',
190  'description',
191  'author',
192  'author_email',
193  'layout',
194  'newUntil',
195  'module',
196  'content_from_pid',
197  'cache_timeout',
198  'cache_tags',
199  'content_from_pid',
200  'target',
201  'cache_timeout',
202  'cache_tags',
203  'l18n_cfg',
204  'is_siteroot',
205  'no_search',
206  'php_tree_stop',
207  'media',
208  ],
209  ],
210  ];
211 
215  public function ‪pagesFormContainsExpectedFieldsDataProvider(): array
216  {
217  $pageTypes = [];
218 
219  foreach (static::$pageFormFields as $doktype => $fieldConfig) {
220  $expectedFields = static::$defaultPageFormFields;
221  $hiddenFields = [];
222  if (array_key_exists('additionalFields', $fieldConfig)) {
223  $expectedFields = array_merge($expectedFields, $fieldConfig['additionalFields']);
224  }
225  if (array_key_exists('hiddenFields', $fieldConfig)) {
226  $hiddenFields = $fieldConfig['hiddenFields'];
227  $expectedFields = array_diff($expectedFields, $hiddenFields);
228  }
229  $pageTypes['page doktype ' . $doktype] = [$doktype, $expectedFields, $hiddenFields];
230  }
231 
232  return $pageTypes;
233  }
234 
242  public function ‪pagesFormContainsExpectedFields(int $doktype, array $expectedFields, array $hiddenFields): void
243  {
244  $this->setUpBackendUserFromFixture(1);
245  ‪$GLOBALS['LANG'] = GeneralUtility::makeInstance(LanguageServiceFactory::class)->create('default');
246 
247  $formEngineTestService = GeneralUtility::makeInstance(FormTestService::class);
248  $formResult = $formEngineTestService->createNewRecordForm('pages', ['doktype' => $doktype]);
249 
250  foreach ($expectedFields as $expectedField) {
251  self::assertNotFalse(
252  $formEngineTestService->formHtmlContainsField($expectedField, $formResult['html']),
253  'The field ' . $expectedField . ' is not in the HTML'
254  );
255  }
256 
257  foreach ($hiddenFields as $hiddenField) {
258  self::assertFalse(
259  $formEngineTestService->formHtmlContainsField($hiddenField, $formResult['html']),
260  'The field ' . $hiddenField . ' is in the HTML'
261  );
262  }
263  }
264 }
‪TYPO3\CMS\Core\Localization\LanguageServiceFactory
Definition: LanguageServiceFactory.php:25
‪TYPO3\CMS\Core\Tests\Functional\Tca\PagesVisibleFieldsTest\$defaultPageFormFields
‪static array $defaultPageFormFields
Definition: PagesVisibleFieldsTest.php:32
‪TYPO3\CMS\Core\Domain\Repository\PageRepository\DOKTYPE_DEFAULT
‪const DOKTYPE_DEFAULT
Definition: PageRepository.php:110
‪TYPO3\CMS\Core\Tests\Functional\Tca
Definition: BackendGroupsVisibleFieldsTest.php:18
‪TYPO3\CMS\Core\Domain\Repository\PageRepository\DOKTYPE_SHORTCUT
‪const DOKTYPE_SHORTCUT
Definition: PageRepository.php:112
‪TYPO3\CMS\Core\Domain\Repository\PageRepository\DOKTYPE_LINK
‪const DOKTYPE_LINK
Definition: PageRepository.php:111
‪TYPO3\CMS\Core\Tests\Functional\Tca\PagesVisibleFieldsTest
Definition: PagesVisibleFieldsTest.php:27
‪TYPO3\CMS\Core\Tests\Functional\Tca\PagesVisibleFieldsTest\pagesFormContainsExpectedFieldsDataProvider
‪array pagesFormContainsExpectedFieldsDataProvider()
Definition: PagesVisibleFieldsTest.php:213
‪TYPO3\CMS\Core\Tests\Functional\Tca\PagesVisibleFieldsTest\$pageFormFields
‪static array $pageFormFields
Definition: PagesVisibleFieldsTest.php:72
‪TYPO3\CMS\Core\Tests\Functional\Tca\PagesVisibleFieldsTest\pagesFormContainsExpectedFields
‪pagesFormContainsExpectedFields(int $doktype, array $expectedFields, array $hiddenFields)
Definition: PagesVisibleFieldsTest.php:240
‪TYPO3\CMS\Core\Domain\Repository\PageRepository\DOKTYPE_MOUNTPOINT
‪const DOKTYPE_MOUNTPOINT
Definition: PageRepository.php:114
‪TYPO3\CMS\Core\Domain\Repository\PageRepository\DOKTYPE_SPACER
‪const DOKTYPE_SPACER
Definition: PageRepository.php:115
‪TYPO3\CMS\Core\Domain\Repository\PageRepository\DOKTYPE_BE_USER_SECTION
‪const DOKTYPE_BE_USER_SECTION
Definition: PageRepository.php:113
‪TYPO3\CMS\Core\Domain\Repository\PageRepository\DOKTYPE_SYSFOLDER
‪const DOKTYPE_SYSFOLDER
Definition: PageRepository.php:116
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:25
‪TYPO3\CMS\Backend\Tests\Functional\Form\FormTestService
Definition: FormTestService.php:29
‪TYPO3\CMS\Core\Domain\Repository\PageRepository
Definition: PageRepository.php:53
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:50
‪TYPO3\CMS\Core\Domain\Repository\PageRepository\DOKTYPE_RECYCLER
‪const DOKTYPE_RECYCLER
Definition: PageRepository.php:117