‪TYPO3CMS  11.5
PagesLanguageOverlayVisibleFieldsTest.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 ‪PagesLanguageOverlayVisibleFieldsTest extends FunctionalTestCase
27 {
33  protected static array ‪$defaultPagesLanguageOverlayFields = [
34  'title',
35  'nav_title',
36  'subtitle',
37  'hidden',
38  'starttime',
39  'endtime',
40  'abstract',
41  'keywords',
42  'description',
43  'author',
44  'author_email',
45  'media',
46  ];
47 
53  protected static array ‪$pageFormFields = [
57  'additionalFields' => [
58  'shortcut_mode',
59  'shortcut',
60  ],
61  'hiddenFields' => [
62  'keywords',
63  'description',
64  'content_from_pid',
65  'cache_timeout',
66  'cache_tags',
67  'module',
68  ],
69  ],
71  'hiddenFields' => [
72  'keywords',
73  'description',
74  'content_from_pid',
75  'cache_timeout',
76  'cache_tags',
77  'module',
78  ],
79  ],
81  'additionalFields' => [
82  'url',
83  ],
84  'hiddenFields' => [
85  'keywords',
86  'description',
87  'content_from_pid',
88  'cache_timeout',
89  'cache_tags',
90  'module',
91  ],
92  ],
94  'hiddenFields' => [
95  'nav_title',
96  'subtitle',
97  'starttime',
98  'endtime',
99  'abstract',
100  'keywords',
101  'description',
102  'author',
103  'author_email',
104  ],
105  ],
107  'hiddenFields' => [
108  'nav_title',
109  'subtitle',
110  'starttime',
111  'endtime',
112  'abstract',
113  'keywords',
114  'description',
115  'author',
116  'author_email',
117  'media',
118  ],
119  ],
121  'hiddenFields' => [
122  'nav_title',
123  'subtitle',
124  'abstract',
125  'keywords',
126  'description',
127  'author',
128  'author_email',
129  'media',
130  ],
131  ],
132  ];
133 
138  {
139  $pageTypes = [];
140 
141  foreach (static::$pageFormFields as $doktype => $fieldConfig) {
142  $expectedFields = static::$defaultPagesLanguageOverlayFields;
143  $hiddenFields = [];
144  if (array_key_exists('additionalFields', $fieldConfig)) {
145  $expectedFields = array_merge($expectedFields, $fieldConfig['additionalFields']);
146  }
147  if (array_key_exists('hiddenFields', $fieldConfig)) {
148  $hiddenFields = $fieldConfig['hiddenFields'];
149  $expectedFields = array_diff($expectedFields, $hiddenFields);
150  }
151  $pageTypes['page doktype ' . $doktype] = [$doktype, $expectedFields, $hiddenFields];
152  }
153 
154  return $pageTypes;
155  }
156 
165  int $doktype,
166  array $expectedFields,
167  array $hiddenFields
168  ): void {
169  $this->setUpBackendUserFromFixture(1);
170  ‪$GLOBALS['LANG'] = GeneralUtility::makeInstance(LanguageServiceFactory::class)->create('default');
171 
172  $formEngineTestService = GeneralUtility::makeInstance(FormTestService::class);
173  $formResult = $formEngineTestService->createNewRecordForm('pages', ['doktype' => $doktype]);
174 
175  foreach ($expectedFields as $expectedField) {
176  self::assertNotFalse(
177  $formEngineTestService->formHtmlContainsField($expectedField, $formResult['html']),
178  'The field ' . $expectedField . ' is not in the form HTML'
179  );
180  }
181 
182  foreach ($hiddenFields as $hiddenField) {
183  self::assertFalse(
184  $formEngineTestService->formHtmlContainsField($hiddenField, $formResult['html']),
185  'The field ' . $hiddenField . ' is in the form HTML'
186  );
187  }
188  }
189 }
‪TYPO3\CMS\Core\Localization\LanguageServiceFactory
Definition: LanguageServiceFactory.php:25
‪TYPO3\CMS\Frontend\Tests\Functional\Tca\PagesLanguageOverlayVisibleFieldsTest\$pageFormFields
‪static array $pageFormFields
Definition: PagesLanguageOverlayVisibleFieldsTest.php:53
‪TYPO3\CMS\Frontend\Tests\Functional\Tca\PagesLanguageOverlayVisibleFieldsTest\pagesLanguageOverlayFormContainsExpectedFieldsDataProvider
‪array pagesLanguageOverlayFormContainsExpectedFieldsDataProvider()
Definition: PagesLanguageOverlayVisibleFieldsTest.php:137
‪TYPO3\CMS\Core\Domain\Repository\PageRepository\DOKTYPE_DEFAULT
‪const DOKTYPE_DEFAULT
Definition: PageRepository.php:110
‪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\Frontend\Tests\Functional\Tca
Definition: BackendLayoutVisibleFieldsTest.php:18
‪TYPO3\CMS\Frontend\Tests\Functional\Tca\PagesLanguageOverlayVisibleFieldsTest\$defaultPagesLanguageOverlayFields
‪static array $defaultPagesLanguageOverlayFields
Definition: PagesLanguageOverlayVisibleFieldsTest.php:33
‪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
‪TYPO3\CMS\Frontend\Tests\Functional\Tca\PagesLanguageOverlayVisibleFieldsTest
Definition: PagesLanguageOverlayVisibleFieldsTest.php:27
‪$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
‪TYPO3\CMS\Frontend\Tests\Functional\Tca\PagesLanguageOverlayVisibleFieldsTest\pagesLanguageOverlayFormContainsExpectedFields
‪pagesLanguageOverlayFormContainsExpectedFields(int $doktype, array $expectedFields, array $hiddenFields)
Definition: PagesLanguageOverlayVisibleFieldsTest.php:164