‪TYPO3CMS  11.5
TcaLanguageTest.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 Prophecy\Argument;
21 use Prophecy\PhpUnit\ProphecyTrait;
28 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
29 
30 class ‪TcaLanguageTest extends UnitTestCase
31 {
32  use ProphecyTrait;
33 
34  protected function ‪setUp(): void
35  {
36  parent::setUp();
37  // Default LANG prophecy just returns incoming value as label if calling ->sL()
38  $languageServiceProphecy = $this->prophesize(LanguageService::class);
39  $languageServiceProphecy->loadSingleTableDescription(Argument::cetera())->willReturn(null);
40  $languageServiceProphecy->sL(Argument::cetera())->willReturnArgument(0);
41  ‪$GLOBALS['LANG'] = $languageServiceProphecy->reveal();
42  }
43 
44  protected function ‪tearDown(): void
45  {
46  GeneralUtility::purgeInstances();
47  parent::tearDown();
48  }
49 
53  public function ‪addDataIgnoresEmptyOrWrongTcaType(): void
54  {
55  $input = $this->‪getDefaultResultArray(['config' => ['type' => 'none']]);
56  self::assertEquals($input, (new ‪TcaLanguage())->addData($input));
57  }
58 
62  public function ‪addDataRespectsCustomRenderType(): void
63  {
64  $input = $this->‪getDefaultResultArray(['config' => ['renderType' => 'customRenderType']]);
65 
66  self::assertEquals(
67  'customRenderType',
68  (new TcaLanguage())->addData($input)['processedTca']['columns']['aField']['config']['renderType']
69  );
70  }
71 
75  public function ‪addDataThrowsExceptionIfAnItemIsNotAnArray(): void
76  {
77  $input = $this->‪getDefaultResultArray(['config' => ['items' => ['foo']]]);
78 
79  $this->expectException(\UnexpectedValueException::class);
80  $this->expectExceptionCode(1439288036);
81 
82  (new TcaLanguage())->addData($input);
83  }
84 
88  public function ‪addDataAddsAllSiteLanguages(): void
89  {
90  $input = $this->‪getDefaultResultArray([], $this->‪getDefaultSystemLanguages());
91 
92  $expected = [
93  ['LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.siteLanguages', '--div--', null, null, null],
94  ['English', 0, 'flags-us', null, null],
95  ['Danish', 13, 'flags-dk', null, null],
96  ['German', 14, 'flags-de', null, null],
97  ['LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.specialLanguages', '--div--', null, null, null],
98  ['LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.allLanguages', -1, 'flags-multiple', null, null],
99  ];
100 
101  self::assertEquals(
102  $expected,
103  (new TcaLanguage())->addData($input)['processedTca']['columns']['aField']['config']['items']
104  );
105  }
106 
110  public function ‪addDataOmitsLanguageAllForPages(): void
111  {
112  $input = $this->‪getDefaultResultArray([], $this->‪getDefaultSystemLanguages(), [], ['tableName' => 'pages']);
113 
114  $expected = [
115  ['LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.siteLanguages', '--div--', null, null, null],
116  ['English', 0, 'flags-us', null, null],
117  ['Danish', 13, 'flags-dk', null, null],
118  ['German', 14, 'flags-de', null, null],
119  ];
120 
121  self::assertEquals(
122  $expected,
123  (new TcaLanguage())->addData($input)['processedTca']['columns']['aField']['config']['items']
124  );
125  }
126 
130  public function ‪addDataOmitsLanguageAllIfNotAllowed(): void
131  {
132  $systemLanguages = $this->‪getDefaultSystemLanguages();
133  // ALL is not allowed
134  unset($systemLanguages[-1]);
135 
136  $input = $this->‪getDefaultResultArray([], $systemLanguages);
137 
138  $expected = [
139  ['LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.siteLanguages', '--div--', null, null, null],
140  ['English', 0, 'flags-us', null, null],
141  ['Danish', 13, 'flags-dk', null, null],
142  ['German', 14, 'flags-de', null, null],
143  ];
144 
145  self::assertEquals(
146  $expected,
147  (new TcaLanguage())->addData($input)['processedTca']['columns']['aField']['config']['items']
148  );
149  }
150 
154  public function ‪addDataAddsUserDefinedItems(): void
155  {
156  $input = $this->‪getDefaultResultArray(
157  [
158  'config' => [
159  'items' => [
160  8 => [
161  'User defined', 8, 'some-icon',
162  ],
163  ],
164  ],
165  ],
167  [],
168  ['tableName' => 'pages']
169  );
170 
171  $expected = [
172  ['LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.siteLanguages', '--div--', null, null, null],
173  ['English', 0, 'flags-us', null, null],
174  ['Danish', 13, 'flags-dk', null, null],
175  ['German', 14, 'flags-de', null, null],
176  ['LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.specialLanguages', '--div--', null, null, null],
177  ['User defined', 8, 'some-icon', null, null],
178  ];
179 
180  self::assertEquals(
181  $expected,
182  (new TcaLanguage())->addData($input)['processedTca']['columns']['aField']['config']['items']
183  );
184  }
185 
190  {
191  $input = $this->‪getDefaultResultArray(
192  [
193  'config' => [
194  'items' => [
195  8 => [
196  'User defined', 8, 'some-icon',
197  ],
198  ],
199  'disableNoMatchingValueElement' => true,
200  ],
201  ]
202  );
203 
204  $expected = [
205  ['LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.specialLanguages', '--div--', null, null, null],
206  ['User defined', 8, 'some-icon', null, null],
207  ];
208 
209  self::assertEquals(
210  $expected,
211  (new TcaLanguage())->addData($input)['processedTca']['columns']['aField']['config']['items']
212  );
213  }
214 
218  public function ‪addDataRemovesAllItemsByEmptyKeepItems(): void
219  {
220  $input = $this->‪getDefaultResultArray(
221  [],
223  [],
224  [
225  'pageTsConfig' => [
226  'TCEFORM.' => [
227  'aTable.' => [
228  'aField.' => [
229  'keepItems' => '',
230  ],
231  ],
232  ],
233  ],
234  ]
235  );
236 
237  self::assertEmpty((new TcaLanguage())->addData($input)['processedTca']['columns']['aField']['config']['items']);
238  }
239 
243  public function ‪addDataRespectsKeepItems(): void
244  {
245  $input = $this->‪getDefaultResultArray(
246  [],
248  [],
249  [
250  'pageTsConfig' => [
251  'TCEFORM.' => [
252  'aTable.' => [
253  'aField.' => [
254  'keepItems' => '0,13',
255  ],
256  ],
257  ],
258  ],
259  ]
260  );
261 
262  $expected = [
263  ['English', 0, 'flags-us', null, null],
264  ['Danish', 13, 'flags-dk', null, null],
265  ];
266 
267  self::assertEquals(
268  $expected,
269  (new TcaLanguage())->addData($input)['processedTca']['columns']['aField']['config']['items']
270  );
271  }
272 
276  public function ‪addDataRespectsAddItems(): void
277  {
278  $input = $this->‪getDefaultResultArray(
279  [],
280  [],
281  ['aField' => 5],
282  [
283  'pageTsConfig' => [
284  'TCEFORM.' => [
285  'aTable.' => [
286  'aField.' => [
287  'addItems.' => [
288  '8' => 'User defined',
289  '8.' => [
290  'icon' => 'some-icon',
291  ],
292  ],
293  ],
294  ],
295  ],
296  ],
297  ]
298  );
299 
300  $expected = [
301  ['[ LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.noMatchingValue ]', 5, null, null, null],
302  ['User defined', 8, 'some-icon', null, null],
303  ];
304 
305  self::assertEquals(
306  $expected,
307  (new TcaLanguage())->addData($input)['processedTca']['columns']['aField']['config']['items']
308  );
309  }
310 
314  public function ‪addDataRespectsRemoveItems(): void
315  {
316  $input = $this->‪getDefaultResultArray(
317  [],
319  [],
320  [
321  'pageTsConfig' => [
322  'TCEFORM.' => [
323  'aTable.' => [
324  'aField.' => [
325  'removeItems' => '-1,13,14',
326  ],
327  ],
328  ],
329  ],
330  ]
331  );
332 
333  $expected = [
334  ['LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.siteLanguages', '--div--', null, null, null],
335  ['English', 0, 'flags-us', null, null],
336  ];
337 
338  self::assertEquals(
339  $expected,
340  (new TcaLanguage())->addData($input)['processedTca']['columns']['aField']['config']['items']
341  );
342  }
343 
347  public function ‪addDataAddsInvalidDatabaseValue(): void
348  {
349  $input = $this->‪getDefaultResultArray([], $this->‪getDefaultSystemLanguages(), ['aField' => 5], ['tableName' => 'pages']);
350 
351  $expected = [
352  ['[ LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.noMatchingValue ]', 5, null, null, null],
353  ['LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.siteLanguages', '--div--', null, null, null],
354  ['English', 0, 'flags-us', null, null],
355  ['Danish', 13, 'flags-dk', null, null],
356  ['German', 14, 'flags-de', null, null],
357  ];
358 
359  self::assertEquals(
360  $expected,
361  (new TcaLanguage())->addData($input)['processedTca']['columns']['aField']['config']['items']
362  );
363  }
368  {
369  $input = $this->‪getDefaultResultArray(
370  [],
371  [],
372  ['aField' => 5],
373  [
374  'pageTsConfig' => [
375  'TCEFORM.' => [
376  'aTable.' => [
377  'aField.' => [
378  'disableNoMatchingValueElement' => '1',
379  ],
380  ],
381  ],
382  ],
383  ]
384  );
385 
386  // Adding invalid value is disabled in TSconfig
387  self::assertEmpty((new TcaLanguage())->addData($input)['processedTca']['columns']['aField']['config']['items']);
388 
389  $input = $this->‪getDefaultResultArray(['config' => ['disableNoMatchingValueElement' => true]], [], ['aField' => 5]);
390 
391  // Adding invalid value is disabled in columns config
392  self::assertEmpty((new TcaLanguage())->addData($input)['processedTca']['columns']['aField']['config']['items']);
393 
394  $input = $this->‪getDefaultResultArray(
395  [
396  'config' => [
397  'items' => [
398  8 => [
399  'User defined', 8, 'some-icon',
400  ],
401  ],
402  ],
403  ],
404  [],
405  ['aField' => 5],
406  [
407  'pageTsConfig' => [
408  'TCEFORM.' => [
409  'aTable.' => [
410  'aField.' => [
411  'noMatchingValue_label' => 'Custom label',
412  ],
413  ],
414  ],
415  ],
416  ]
417  );
418 
419  $expected = [
420  ['Custom label', 5, null, null, null],
421  ['LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.specialLanguages', '--div--', null, null, null],
422  ['User defined', 8, 'some-icon', null, null],
423  ];
424 
425  // Custom label is respected
426  self::assertEquals(
427  $expected,
428  (new TcaLanguage())->addData($input)['processedTca']['columns']['aField']['config']['items']
429  );
430  }
431 
435  public function ‪addDataRespectsAltLabels(): void
436  {
437  $input = $this->‪getDefaultResultArray(
438  [],
440  [],
441  [
442  'pageTsConfig' => [
443  'TCEFORM.' => [
444  'aTable.' => [
445  'aField.' => [
446  'altLabels.' => [
447  '0' => 'Default Language',
448  '14' => 'Deutsch',
449  ],
450  ],
451  ],
452  ],
453  ],
454  ]
455  );
456 
457  $expected = [
458  ['LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.siteLanguages', '--div--', null, null, null],
459  ['Default Language', 0, 'flags-us', null, null],
460  ['Danish', 13, 'flags-dk', null, null],
461  ['Deutsch', 14, 'flags-de', null, null],
462  ['LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.specialLanguages', '--div--', null, null, null],
463  ['LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.allLanguages', -1, 'flags-multiple', null, null],
464  ];
465 
466  self::assertEquals(
467  $expected,
468  (new TcaLanguage())->addData($input)['processedTca']['columns']['aField']['config']['items']
469  );
470  }
471 
475  public function ‪addDataRespectsAltIcons(): void
476  {
477  $input = $this->‪getDefaultResultArray(
478  [],
480  [],
481  [
482  'pageTsConfig' => [
483  'TCEFORM.' => [
484  'aTable.' => [
485  'aField.' => [
486  'altIcons.' => [
487  '0' => 'alternative-icon-default',
488  '14' => 'alternative-icon-german',
489  ],
490  ],
491  ],
492  ],
493  ],
494  ]
495  );
496 
497  $expected = [
498  ['LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.siteLanguages', '--div--', null, null, null],
499  ['English', 0, 'alternative-icon-default', null, null],
500  ['Danish', 13, 'flags-dk', null, null],
501  ['German', 14, 'alternative-icon-german', null, null],
502  ['LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.specialLanguages', '--div--', null, null, null],
503  ['LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.allLanguages', -1, 'flags-multiple', null, null],
504  ];
505 
506  self::assertEquals(
507  $expected,
508  (new TcaLanguage())->addData($input)['processedTca']['columns']['aField']['config']['items']
509  );
510  }
511 
515  public function ‪addDataRemovesLastItemIfDivider(): void
516  {
517  $input = $this->‪getDefaultResultArray(
518  [],
520  [],
521  [
522  'pageTsConfig' => [
523  'TCEFORM.' => [
524  'aTable.' => [
525  'aField.' => [
526  'removeItems' => '-1',
527  ],
528  ],
529  ],
530  ],
531  ],
532  );
533 
534  $expected = [
535  ['LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.siteLanguages', '--div--', null, null, null],
536  ['English', 0, 'flags-us', null, null],
537  ['Danish', 13, 'flags-dk', null, null],
538  ['German', 14, 'flags-de', null, null],
539  ];
540 
541  self::assertEquals(
542  $expected,
543  (new TcaLanguage())->addData($input)['processedTca']['columns']['aField']['config']['items']
544  );
545  }
546 
551  public function ‪addDataAddsAllSiteLanguagesFromAllSites(array $config): void
552  {
553  $siteFinder = $this->prophesize(SiteFinder::class);
554  $siteFinder->getAllSites()->willReturn([
555  new Site('site-1', 1, [
556  'base' => '/',
557  'languages' => [
558  [
559  'title' => 'English',
560  'languageId' => 0,
561  'base' => '/',
562  'locale' => 'en_US',
563  'flag' => 'us',
564  ],
565  [
566  'title' => 'German',
567  'languageId' => 2,
568  'base' => '/de/',
569  'locale' => 'de_DE',
570  'flag' => 'de',
571  ],
572  ],
573  ]),
574  new Site('site-2', 2, [
575  'base' => '/',
576  'languages' => [
577  [
578  'title' => 'German',
579  'languageId' => 0,
580  'base' => '/',
581  'locale' => 'de_DE',
582  'flag' => 'de',
583  ],
584  ],
585  ]),
586  ]);
587  GeneralUtility::addInstance(SiteFinder::class, $siteFinder->reveal());
588 
589  $input = $this->‪getDefaultResultArray([], [], [], $config);
590 
591  $expected = [
592  ['LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.siteLanguages', '--div--', null, null, null],
593  ['English [Site: site-1], German [Site: site-2]', 0, 'flags-us', null, null],
594  ['German [Site: site-1]', 2, 'flags-de', null, null],
595  ];
596 
597  self::assertEquals(
598  $expected,
599  (new TcaLanguage())->addData($input)['processedTca']['columns']['aField']['config']['items']
600  );
601  }
602 
603  public function ‪addDataAddsAllSiteLanguagesDataProvider(): \Generator
604  {
605  yield 'On root level pid=0' => [
606  [
607  'effectivePid' => 0,
608  ],
609  ];
610  yield 'Without site configuration' => [
611  [
612  'site' => new ‪NullSite(),
613  ],
614  ];
615  }
616 
617  protected function ‪getDefaultResultArray(
618  array $fieldConfig = [],
619  array $systemLanguages = [],
620  array $databaseRow = [],
621  array $additionalConfiguration = []
622  ): array {
623  return array_replace_recursive([
624  'tableName' => 'aTable',
625  'systemLanguageRows' => array_replace_recursive([], $systemLanguages),
626  'effectivePid' => 1,
627  'site' => new ‪Site('some-site', 1, []),
628  'databaseRow' => array_replace_recursive([], $databaseRow),
629  'processedTca' => [
630  'columns' => [
631  'aField' => array_replace_recursive([
632  'config' => [
633  'type' => 'language',
634  ],
635  ], $fieldConfig),
636  ],
637  ],
638  ], $additionalConfiguration);
639  }
640 
641  protected function ‪getDefaultSystemLanguages(array $additionalLanguages = []): array
642  {
643  return array_replace_recursive([
644  -1 => [
645  'uid' => -1,
646  'title' => 'All Languages',
647  'iso' => 'DEF',
648  'flagIconIdentifier' => 'flags-multiple',
649  ],
650  0 => [
651  'uid' => 0,
652  'title' => 'English',
653  'iso' => 'DEF',
654  'flagIconIdentifier' => 'flags-us',
655  ],
656  13 => [
657  'uid' => 13,
658  'title' => 'Danish',
659  'iso' => 'da',
660  'flagIconIdentifier' => 'flags-dk',
661  ],
662  14 => [
663  'uid' => 14,
664  'title' => 'German',
665  'iso' => 'de',
666  'flagIconIdentifier' => 'flags-de',
667  ],
668  ], $additionalLanguages);
669  }
670 }
‪TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider\TcaLanguageTest\addDataRespectsAltIcons
‪addDataRespectsAltIcons()
Definition: TcaLanguageTest.php:474
‪TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider\TcaLanguageTest\addDataAddsAllSiteLanguagesFromAllSites
‪addDataAddsAllSiteLanguagesFromAllSites(array $config)
Definition: TcaLanguageTest.php:550
‪TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider\TcaLanguageTest\addDataRespectsAltLabels
‪addDataRespectsAltLabels()
Definition: TcaLanguageTest.php:434
‪TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider\TcaLanguageTest\addDataIgnoresEmptyOrWrongTcaType
‪addDataIgnoresEmptyOrWrongTcaType()
Definition: TcaLanguageTest.php:52
‪TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider\TcaLanguageTest\tearDown
‪tearDown()
Definition: TcaLanguageTest.php:43
‪TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider\TcaLanguageTest\addDataAddsAllSiteLanguagesDataProvider
‪addDataAddsAllSiteLanguagesDataProvider()
Definition: TcaLanguageTest.php:602
‪TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider\TcaLanguageTest\addDataThrowsExceptionIfAnItemIsNotAnArray
‪addDataThrowsExceptionIfAnItemIsNotAnArray()
Definition: TcaLanguageTest.php:74
‪TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider\TcaLanguageTest\getDefaultResultArray
‪getDefaultResultArray(array $fieldConfig=[], array $systemLanguages=[], array $databaseRow=[], array $additionalConfiguration=[])
Definition: TcaLanguageTest.php:616
‪TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider\TcaLanguageTest\addDataRespectsRemoveItems
‪addDataRespectsRemoveItems()
Definition: TcaLanguageTest.php:313
‪TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider\TcaLanguageTest\addDataRemovesLastItemIfDivider
‪addDataRemovesLastItemIfDivider()
Definition: TcaLanguageTest.php:514
‪TYPO3\CMS\Core\Site\Entity\NullSite
Definition: NullSite.php:32
‪TYPO3\CMS\Core\Site\SiteFinder
Definition: SiteFinder.php:31
‪TYPO3\CMS\Backend\Form\FormDataProvider\TcaLanguage
Definition: TcaLanguage.php:29
‪TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider\TcaLanguageTest\addDataRespectsAddItems
‪addDataRespectsAddItems()
Definition: TcaLanguageTest.php:275
‪TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider\TcaLanguageTest\addDataRespectsKeepItems
‪addDataRespectsKeepItems()
Definition: TcaLanguageTest.php:242
‪TYPO3\CMS\Core\Site\Entity\Site
Definition: Site.php:42
‪TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider\TcaLanguageTest\addDataAddsAllSiteLanguages
‪addDataAddsAllSiteLanguages()
Definition: TcaLanguageTest.php:87
‪TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider\TcaLanguageTest
Definition: TcaLanguageTest.php:31
‪TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider\TcaLanguageTest\addDataRespectsCustomRenderType
‪addDataRespectsCustomRenderType()
Definition: TcaLanguageTest.php:61
‪TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider\TcaLanguageTest\addDataOmitsLanguageAllForPages
‪addDataOmitsLanguageAllForPages()
Definition: TcaLanguageTest.php:109
‪TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider\TcaLanguageTest\addDataRepsetcsConfigurationOnAddingInvalidDatabaseValue
‪addDataRepsetcsConfigurationOnAddingInvalidDatabaseValue()
Definition: TcaLanguageTest.php:366
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:25
‪TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider\TcaLanguageTest\getDefaultSystemLanguages
‪getDefaultSystemLanguages(array $additionalLanguages=[])
Definition: TcaLanguageTest.php:640
‪TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider\TcaLanguageTest\addDataAddsUserDefinedItemsOnEmptySystemLanguages
‪addDataAddsUserDefinedItemsOnEmptySystemLanguages()
Definition: TcaLanguageTest.php:188
‪TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider\TcaLanguageTest\addDataOmitsLanguageAllIfNotAllowed
‪addDataOmitsLanguageAllIfNotAllowed()
Definition: TcaLanguageTest.php:129
‪TYPO3\CMS\Core\Localization\LanguageService
Definition: LanguageService.php:42
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:50
‪TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider\TcaLanguageTest\addDataRemovesAllItemsByEmptyKeepItems
‪addDataRemovesAllItemsByEmptyKeepItems()
Definition: TcaLanguageTest.php:217
‪TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider\TcaLanguageTest\addDataAddsInvalidDatabaseValue
‪addDataAddsInvalidDatabaseValue()
Definition: TcaLanguageTest.php:346
‪TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider\TcaLanguageTest\addDataAddsUserDefinedItems
‪addDataAddsUserDefinedItems()
Definition: TcaLanguageTest.php:153
‪TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider\TcaLanguageTest\setUp
‪setUp()
Definition: TcaLanguageTest.php:33
‪TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider
Definition: DatabaseDefaultLanguagePageRowTest.php:18