‪TYPO3CMS  11.5
TcaItemsProcessorFunctionsTest.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;
30 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
31 
32 class ‪TcaItemsProcessorFunctionsTest extends UnitTestCase
33 {
34  use ProphecyTrait;
35 
36  protected function ‪setUp(): void
37  {
38  parent::setUp();
39 
40  // Default LANG prophecy just returns incoming value as label if calling ->sL()
41  $languageServiceProphecy = $this->prophesize(LanguageService::class);
42  $languageServiceProphecy->loadSingleTableDescription(Argument::cetera())->willReturn(null);
43  $languageServiceProphecy->sL(Argument::cetera())->willReturnArgument(0);
44  ‪$GLOBALS['LANG'] = $languageServiceProphecy->reveal();
45 
46  $iconRegistryProphecy = $this->prophesize(IconRegistry::class);
47  GeneralUtility::setSingletonInstance(IconRegistry::class, $iconRegistryProphecy->reveal());
48  $iconFactoryProphecy = $this->prophesize(IconFactory::class);
49  // Two instances are needed due to the push/pop behavior of addInstance()
50  GeneralUtility::addInstance(IconFactory::class, $iconFactoryProphecy->reveal());
51  GeneralUtility::addInstance(IconFactory::class, $iconFactoryProphecy->reveal());
52  }
53 
57  protected function ‪tearDown(): void
58  {
59  GeneralUtility::purgeInstances();
60  parent::tearDown();
61  }
62 
66  public function ‪populateAvailableTablesTest(): void
67  {
68  $fieldDefinition = ['items' => [0 => ['---', 0]]];
69 
70  ‪$GLOBALS['TCA'] = [
71  'notInResult' => [
72  'ctrl' => [
73  'adminOnly' => true,
74  ],
75  ],
76  'aTable' => [
77  'ctrl' => [
78  'title' => 'aTitle',
79  ],
80  ],
81  ];
82  ‪$GLOBALS['TCA_DESCR']['aTable']['columns']['']['description'] = 'aDescription';
83 
84  $expected = [
85  'items' => [
86  0 => [
87  '---',
88  0,
89  ],
90  1 => [
91  0 => 'aTitle',
92  1 => 'aTable',
93  2 => null,
94  3 => null,
95  4 => 'aDescription',
96  ],
97  ],
98  ];
99 
100  (new TcaItemsProcessorFunctions())->populateAvailableTables($fieldDefinition);
101  self::assertSame($expected, $fieldDefinition);
102  }
103 
107  public function ‪populateAvailablePageTypesTest(): void
108  {
109  $fieldDefinition = ['items' => []];
110 
111  (new TcaItemsProcessorFunctions())->populateAvailablePageTypes($fieldDefinition);
112  self::assertSame($fieldDefinition, $fieldDefinition);
113 
114  ‪$GLOBALS['TCA']['pages']['columns']['doktype']['config']['items'] = [
115  0 => [
116  0 => 'Divider',
117  1 => '--div--',
118  ],
119  1 => [
120  0 => 'invalid',
121  ],
122  2 => [
123  0 => 'aLabel',
124  1 => 'aValue',
125  ],
126  ];
127 
128  $fieldDefinition = ['items' => [0 => ['---', 0]]];
129 
130  $expected = [
131  'items' => [
132  0 => [
133  0 => '---',
134  1 => 0,
135  ],
136  1 => [
137  0 => 'aLabel',
138  1 => 'aValue',
139  2 => null,
140  ],
141  ],
142  ];
143 
144  (new TcaItemsProcessorFunctions())->populateAvailablePageTypes($fieldDefinition);
145  self::assertSame($expected, $fieldDefinition);
146  }
147 
151  public function ‪populateAvailableGroupModulesTest(): void
152  {
153  ‪$GLOBALS['TBE_MODULES'] = [];
154 
155  $moduleLoaderProphecy = $this->prophesize(ModuleLoader::class);
156  $moduleLoader = $moduleLoaderProphecy->reveal();
157  GeneralUtility::addInstance(ModuleLoader::class, $moduleLoader);
158  $moduleLoaderProphecy->load([])->shouldBeCalled();
159  $moduleLoader->modListGroup = [
160  'aModule',
161  ];
162  $moduleLoaderProphecy->getModules()->willReturn([
163  'aModule' => [
164  'iconIdentifier' => 'empty-empty',
165  ],
166  ]);
167  $moduleLoaderProphecy->getLabelsForModule('aModule')->shouldBeCalled()->willReturn([
168  'shortdescription' => 'aModuleTabLabel',
169  'description' => 'aModuleTabDescription',
170  'title' => 'aModuleLabel',
171  ]);
172 
173  $fieldDefinition = $expected = ['items' => []];
174  $expected['items'] = [
175  0 => [
176  0 => 'aModuleLabel',
177  1 => 'aModule',
178  2 => 'empty-empty',
179  3 => null,
180  4 => [
181  'title' => 'aModuleTabLabel',
182  'description' => 'aModuleTabDescription',
183  ],
184  ],
185  ];
186 
187  (new TcaItemsProcessorFunctions())->populateAvailableGroupModules($fieldDefinition);
188  self::assertSame($expected, $fieldDefinition);
189  }
190 
194  public function ‪populateAvailableUserModulesTest(): void
195  {
196  ‪$GLOBALS['TBE_MODULES'] = [];
197 
198  $moduleLoaderProphecy = $this->prophesize(ModuleLoader::class);
199  $moduleLoader = $moduleLoaderProphecy->reveal();
200  GeneralUtility::addInstance(ModuleLoader::class, $moduleLoader);
201  $moduleLoaderProphecy->load([])->shouldBeCalled();
202  $moduleLoader->modListUser = [
203  'bModule',
204  ];
205  $moduleLoaderProphecy->getModules()->willReturn([
206  'bModule' => [
207  'iconIdentifier' => 'empty-empty',
208  ],
209  ]);
210  $moduleLoaderProphecy->getLabelsForModule('bModule')->shouldBeCalled()->willReturn([
211  'shortdescription' => 'bModuleTabLabel',
212  'description' => 'bModuleTabDescription',
213  'title' => 'bModuleLabel',
214  ]);
215 
216  $fieldDefinition = $expected = ['items' => []];
217  $expected['items'] = [
218  0 => [
219  0 => 'bModuleLabel',
220  1 => 'bModule',
221  2 => 'empty-empty',
222  3 => null,
223  4 => [
224  'title' => 'bModuleTabLabel',
225  'description' => 'bModuleTabDescription',
226  ],
227  ],
228  ];
229 
230  (new TcaItemsProcessorFunctions())->populateAvailableUserModules($fieldDefinition);
231  self::assertSame($expected, $fieldDefinition);
232  }
233 
238  public function ‪populateExcludeFieldsTest(array ‪$tca, array $expectedItems): void
239  {
240  ‪$GLOBALS['TCA'] = ‪$tca;
241  ‪$GLOBALS['TCA_DESCR']['fooTable']['columns']['bar']['description'] = 'aDescription';
242  $fieldDefinition = ['items' => []];
243  $expected = [
244  'items' => $expectedItems,
245  ];
246 
247  (new TcaItemsProcessorFunctions())->populateExcludeFields($fieldDefinition);
248  self::assertSame($expected, $fieldDefinition);
249  }
250 
251  public function ‪populateExcludeFieldsTestDataProvider(): array
252  {
253  return [
254  'Table with exclude and non exclude field returns exclude item' => [
255  [
256  // input tca
257  'fooTable' => [
258  'ctrl' => [
259  'title' => 'fooTableTitle',
260  ],
261  'columns' => [
262  'bar' => [
263  'label' => 'barColumnTitle',
264  'exclude' => 1,
265  ],
266  'baz' => [
267  'label' => 'bazColumnTitle',
268  ],
269  ],
270  ],
271  ],
272  [
273  // expected items
274  'fooTable' => [
275  0 => 'fooTableTitle',
276  1 => '--div--',
277  2 => null,
278  ],
279  0 => [
280  0 => 'barColumnTitle (bar)',
281  1 => 'fooTable:bar',
282  2 => 'empty-empty',
283  3 => null,
284  4 => 'aDescription',
285  ],
286  ],
287  ],
288  'Root level table with ignored root level restriction returns exclude item' => [
289  [
290  // input tca
291  'fooTable' => [
292  'ctrl' => [
293  'title' => 'fooTableTitle',
294  'rootLevel' => 1,
295  'security' => [
296  'ignoreRootLevelRestriction' => true,
297  ],
298  ],
299  'columns' => [
300  'bar' => [
301  'label' => 'barColumnTitle',
302  'exclude' => true,
303  ],
304  ],
305  ],
306  ],
307  [
308  // expected items
309  'fooTable' => [
310  0 => 'fooTableTitle',
311  1 => '--div--',
312  2 => null,
313  ],
314  0 => [
315  0 => 'barColumnTitle (bar)',
316  1 => 'fooTable:bar',
317  2 => 'empty-empty',
318  3 => null,
319  4 => 'aDescription',
320  ],
321  ],
322  ],
323  'Root level table without ignored root level restriction returns no item' => [
324  [
325  // input tca
326  'fooTable' => [
327  'ctrl' => [
328  'title' => 'fooTableTitle',
329  'rootLevel' => 1,
330  ],
331  'columns' => [
332  'bar' => [
333  'label' => 'barColumnTitle',
334  'exclude' => true,
335  ],
336  ],
337  ],
338  ],
339  [
340  // no items
341  ],
342  ],
343  'Admin table returns no item' => [
344  [
345  // input tca
346  'fooTable' => [
347  'ctrl' => [
348  'title' => 'fooTableTitle',
349  'adminOnly' => true,
350  ],
351  'columns' => [
352  'bar' => [
353  'label' => 'barColumnTitle',
354  'exclude' => true,
355  ],
356  ],
357  ],
358  ],
359  [
360  // no items
361  ],
362  ],
363  ];
364  }
365 
369  public function ‪populateExcludeFieldsWithFlexFormTest(): void
370  {
371  ‪$GLOBALS['TCA'] = [
372  'fooTable' => [
373  'ctrl' => [
374  'title' => 'fooTableTitle',
375  ],
376  'columns' => [
377  'aFlexField' => [
378  'label' => 'aFlexFieldTitle',
379  'config' => [
380  'type' => 'flex',
381  'title' => 'title',
382  'ds' => [
383  'dummy' => '
384  <T3DataStructure>
385  <ROOT>
386  <type>array</type>
387  <el>
388  <input1>
389  <TCEforms>
390  <label>flexInputLabel</label>
391  <exclude>1</exclude>
392  <config>
393  <type>input</type>
394  <size>23</size>
395  </config>
396  </TCEforms>
397  </input1>
398  </el>
399  </ROOT>
400  </T3DataStructure>
401  ',
402  ],
403  ],
404  ],
405  ],
406  ],
407  ];
408  ‪$GLOBALS['TCA_DESCR']['fooTable']['columns']['aFlexField;dummy;sDEF;input1']['description'] = 'aDescription';
409 
410  $fieldDefinition = ['items' => []];
411  $expected = [
412  'items' => [
413  'fooTableTitle aFlexFieldTitle dummy' => [
414  0 => 'fooTableTitle aFlexFieldTitle dummy',
415  1 => '--div--',
416  2 => null,
417  ],
418  0 => [
419  0 => 'flexInputLabel (input1)',
420  1 => 'fooTable:aFlexField;dummy;sDEF;input1',
421  2 => 'empty-empty',
422  3 => null,
423  4 => 'aDescription',
424  ],
425  ],
426  ];
427 
428  $cacheManagerProphecy = $this->prophesize(CacheManager::class);
429  $cacheProphecy = $this->prophesize(FrontendInterface::class);
430  $cacheManagerProphecy->getCache('runtime')->willReturn($cacheProphecy->reveal());
431  GeneralUtility::setSingletonInstance(CacheManager::class, $cacheManagerProphecy->reveal());
432 
433  (new ‪TcaItemsProcessorFunctions())->populateExcludeFields($fieldDefinition);
434  self::assertSame($expected, $fieldDefinition);
435  }
436 
444  public function ‪populateExplicitAuthValuesTest(array ‪$tca, array $expectedItems): void
445  {
446  ‪$GLOBALS['TCA'] = ‪$tca;
447  $fieldDefinition = ['items' => []];
448  $expected = [
449  'items' => $expectedItems,
450  ];
451  (new TcaItemsProcessorFunctions())->populateExplicitAuthValues($fieldDefinition);
452  self::assertSame($expected, $fieldDefinition);
453  }
454 
455  public function ‪populateExplicitAuthValuesTestDataProvider(): \Generator
456  {
457  yield 'ExplicitAllow fields with special explicit values' => [
458  [
459  'fooTable' => [
460  'ctrl' => [
461  'title' => 'fooTableTitle',
462  ],
463  'columns' => [
464  'aField' => [
465  'label' => 'aFieldTitle',
466  'config' => [
467  'type' => 'select',
468  'renderType' => 'selectSingle',
469  'authMode' => 'explicitAllow',
470  'items' => [
471  0 => [
472  'anItemTitle',
473  'anItemValue',
474  ],
475  ],
476  ],
477  ],
478  ],
479  ],
480  ],
481  [
482  0 => [
483  0 => 'fooTableTitle: aFieldTitle',
484  1 => '--div--',
485  ],
486  1 => [
487  0 => '[LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.allow] anItemTitle',
488  1 => 'fooTable:aField:anItemValue:ALLOW',
489  2 => 'status-status-permission-granted',
490  ],
491  ],
492  ];
493  yield 'ExplicitDeny fields with special explicit values' => [
494  [
495  'fooTable' => [
496  'ctrl' => [
497  'title' => 'fooTableTitle',
498  ],
499  'columns' => [
500  'aField' => [
501  'label' => 'aFieldTitle',
502  'config' => [
503  'type' => 'select',
504  'renderType' => 'selectSingle',
505  'authMode' => 'explicitDeny',
506  'items' => [
507  0 => [
508  'anItemTitle',
509  'anItemValue',
510  ],
511  ],
512  ],
513  ],
514  ],
515  ],
516  ],
517  [
518  0 => [
519  0 => 'fooTableTitle: aFieldTitle',
520  1 => '--div--',
521  ],
522  1 => [
523  0 => '[LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.deny] anItemTitle',
524  1 => 'fooTable:aField:anItemValue:DENY',
525  2 => 'status-status-permission-denied',
526  ],
527  ],
528  ];
529  yield 'Explicit individual allow fields with special explicit values' => [
530  [
531  'fooTable' => [
532  'ctrl' => [
533  'title' => 'fooTableTitle',
534  ],
535  'columns' => [
536  'aField' => [
537  'label' => 'aFieldTitle',
538  'config' => [
539  'type' => 'select',
540  'renderType' => 'selectSingle',
541  'authMode' => 'individual',
542  'items' => [
543  0 => [
544  'aItemTitle',
545  'aItemValue',
546  null,
547  null,
548  '',
549  'EXPL_ALLOW',
550  ],
551  // 1 is not selectable as allow and is always allowed
552  1 => [
553  'bItemTitle',
554  'bItemValue',
555  ],
556  2 => [
557  'cItemTitle',
558  'cItemValue',
559  null,
560  null,
561  '',
562  'EXPL_ALLOW',
563  ],
564  ],
565  ],
566  ],
567  ],
568  ],
569  ],
570  [
571  0 => [
572  0 => 'fooTableTitle: aFieldTitle',
573  1 => '--div--',
574  ],
575  1 => [
576  0 => '[LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.allow] aItemTitle',
577  1 => 'fooTable:aField:aItemValue:ALLOW',
578  2 => 'status-status-permission-granted',
579  ],
580  2 => [
581  0 => '[LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.allow] cItemTitle',
582  1 => 'fooTable:aField:cItemValue:ALLOW',
583  2 => 'status-status-permission-granted',
584  ],
585  ],
586  ];
587  yield 'Explicit individual deny fields with special explicit values' => [
588  [
589  'fooTable' => [
590  'ctrl' => [
591  'title' => 'fooTableTitle',
592  ],
593  'columns' => [
594  'aField' => [
595  'label' => 'aFieldTitle',
596  'config' => [
597  'type' => 'select',
598  'renderType' => 'selectSingle',
599  'authMode' => 'individual',
600  'items' => [
601  0 => [
602  'aItemTitle',
603  'aItemValue',
604  null,
605  null,
606  '',
607  'EXPL_DENY',
608  ],
609  // 1 is not selectable as allow and is always allowed
610  1 => [
611  'bItemTitle',
612  'bItemValue',
613  ],
614  2 => [
615  'cItemTitle',
616  'cItemValue',
617  null,
618  null,
619  '',
620  'EXPL_DENY',
621  ],
622  ],
623  ],
624  ],
625  ],
626  ],
627  ],
628  [
629  0 => [
630  0 => 'fooTableTitle: aFieldTitle',
631  1 => '--div--',
632  ],
633  1 => [
634  0 => '[LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.deny] aItemTitle',
635  1 => 'fooTable:aField:aItemValue:DENY',
636  2 => 'status-status-permission-denied',
637  ],
638  2 => [
639  0 => '[LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.deny] cItemTitle',
640  1 => 'fooTable:aField:cItemValue:DENY',
641  2 => 'status-status-permission-denied',
642  ],
643  ],
644  ];
645  }
646 
650  public function ‪populateCustomPermissionOptionsTest(): void
651  {
652  ‪$GLOBALS['TYPO3_CONF_VARS']['BE']['customPermOptions'] = [
653  'aKey' => [
654  'header' => 'aHeader',
655  'items' => [
656  'anItemKey' => [
657  0 => 'anItemTitle',
658  ],
659  'anotherKey' => [
660  0 => 'anotherTitle',
661  1 => 'status-status-permission-denied',
662  2 => 'aDescription',
663  ],
664  ],
665  ],
666  ];
667  $fieldDefinition = ['items' => []];
668  $expected = [
669  'items' => [
670  0 => [
671  0 => 'aHeader',
672  1 => '--div--',
673  ],
674  1 => [
675  0 => 'anItemTitle',
676  1 => 'aKey:anItemKey',
677  2 => 'empty-empty',
678  3 => null,
679  4 => '',
680  ],
681  2 => [
682  0 => 'anotherTitle',
683  1 => 'aKey:anotherKey',
684  2 => 'empty-empty',
685  3 => null,
686  4 => 'aDescription',
687  ],
688  ],
689  ];
690  (new ‪TcaItemsProcessorFunctions())->populateCustomPermissionOptions($fieldDefinition);
691  self::assertSame($expected, $fieldDefinition);
692  }
693 
698  {
699  $this->expectException(\UnexpectedValueException::class);
700  $this->expectExceptionCode(1627565458);
701 
702  $fieldDefinition = ['items' => [], 'config' => []];
703  (new TcaItemsProcessorFunctions())->‪populateAvailableCategoryFields($fieldDefinition);
704  }
705 
710  {
711  $this->expectException(\RuntimeException::class);
712  $this->expectExceptionCode(1627565459);
713 
714  $fieldDefinition = ['items' => [], 'config' => ['itemsProcConfig' => ['table' => 'aTable']]];
715  (new TcaItemsProcessorFunctions())->‪populateAvailableCategoryFields($fieldDefinition);
716  }
717 
722  public function ‪populateAvailableCategoryFields(array $itemsProcConfig, array $expectedItems): void
723  {
724  ‪$GLOBALS['TCA']['aTable']['columns'] = [
725  'aField' => [
726  'label' => 'aField label',
727  'config' => [
728  'type' => 'category',
729  'relationship' => 'manyToMany',
730  ],
731  ],
732  'bField' => [
733  'label' => 'bField label',
734  'config' => [
735  'type' => 'category',
736  ],
737  ],
738  'cField' => [
739  'label' => 'cField label',
740  'config' => [
741  'type' => 'category',
742  'relationship' => 'oneToMany',
743  ],
744  ],
745  'dField' => [
746  'label' => 'dField label',
747  'config' => [
748  'type' => 'category',
749  'relationship' => 'manyToMany',
750  ],
751  ],
752  ];
753  $fieldDefinition = ['items' => [], 'config' => ['itemsProcConfig' => $itemsProcConfig]];
754  $expected = $fieldDefinition;
755  $expected['items'] = $expectedItems;
756  (new TcaItemsProcessorFunctions())->‪populateAvailableCategoryFields($fieldDefinition);
757  self::assertSame($expected, $fieldDefinition);
758  }
759 
760  public function ‪populateAvailableCategoryFieldsDataProvider(): \Generator
761  {
762  yield 'falls back to default relationship (manyToMany)' => [
763  [
764  'table' => 'aTable',
765  ],
766  [
767  0 => [
768  0 => 'aField label',
769  1 => 'aField',
770  ],
771  1 => [
772  0 => 'dField label',
773  1 => 'dField',
774  ],
775  ],
776  ];
777  yield 'relationship oneToMany given' => [
778  [
779  'table' => 'aTable',
780  'allowedRelationships' => ['oneToMany'],
781  ],
782  [
783  0 => [
784  0 => 'cField label',
785  1 => 'cField',
786  ],
787  ],
788  ];
789  yield 'relationship oneToOne given' => [
790  [
791  'table' => 'aTable',
792  'allowedRelationships' => ['oneToOne'],
793  ],
794  [],
795  ];
796  yield 'multiple relationships given' => [
797  [
798  'table' => 'aTable',
799  'allowedRelationships' => ['oneToOne', 'oneToMany', 'manyToMany'],
800  ],
801  [
802  0 => [
803  0 => 'aField label',
804  1 => 'aField',
805  ],
806  1 => [
807  0 => 'cField label',
808  1 => 'cField',
809  ],
810  2 => [
811  0 => 'dField label',
812  1 => 'dField',
813  ],
814  ],
815  ];
816  }
817 }
‪TYPO3\CMS\Core\Tests\Unit\Hooks
Definition: TcaItemsProcessorFunctionsTest.php:18
‪TYPO3\CMS\Core\Tests\Unit\Hooks\TcaItemsProcessorFunctionsTest\populateExcludeFieldsWithFlexFormTest
‪populateExcludeFieldsWithFlexFormTest()
Definition: TcaItemsProcessorFunctionsTest.php:368
‪TYPO3\CMS\Core\Tests\Unit\Hooks\TcaItemsProcessorFunctionsTest\populateAvailableCategoryFieldsThrowsExceptionOnInvalidTable
‪populateAvailableCategoryFieldsThrowsExceptionOnInvalidTable()
Definition: TcaItemsProcessorFunctionsTest.php:708
‪TYPO3\CMS\Core\Tests\Unit\Hooks\TcaItemsProcessorFunctionsTest\populateAvailableTablesTest
‪populateAvailableTablesTest()
Definition: TcaItemsProcessorFunctionsTest.php:65
‪TYPO3\CMS\Core\Imaging\IconFactory
Definition: IconFactory.php:34
‪TYPO3\CMS\Core\Tests\Unit\Hooks\TcaItemsProcessorFunctionsTest
Definition: TcaItemsProcessorFunctionsTest.php:33
‪TYPO3\CMS\Core\Tests\Unit\Hooks\TcaItemsProcessorFunctionsTest\populateAvailableUserModulesTest
‪populateAvailableUserModulesTest()
Definition: TcaItemsProcessorFunctionsTest.php:193
‪TYPO3\CMS\Core\Tests\Unit\Hooks\TcaItemsProcessorFunctionsTest\populateAvailablePageTypesTest
‪populateAvailablePageTypesTest()
Definition: TcaItemsProcessorFunctionsTest.php:106
‪TYPO3\CMS\Core\Tests\Unit\Hooks\TcaItemsProcessorFunctionsTest\populateAvailableCategoryFieldsDataProvider
‪populateAvailableCategoryFieldsDataProvider()
Definition: TcaItemsProcessorFunctionsTest.php:759
‪TYPO3\CMS\Backend\Module\ModuleLoader
Definition: ModuleLoader.php:34
‪TYPO3\CMS\Core\Tests\Unit\Hooks\TcaItemsProcessorFunctionsTest\populateExcludeFieldsTestDataProvider
‪populateExcludeFieldsTestDataProvider()
Definition: TcaItemsProcessorFunctionsTest.php:250
‪TYPO3\CMS\Core\Tests\Unit\Hooks\TcaItemsProcessorFunctionsTest\populateAvailableGroupModulesTest
‪populateAvailableGroupModulesTest()
Definition: TcaItemsProcessorFunctionsTest.php:150
‪TYPO3\CMS\Core\Imaging\IconRegistry
Definition: IconRegistry.php:32
‪TYPO3\CMS\Core\Cache\CacheManager
Definition: CacheManager.php:36
‪TYPO3\CMS\Core\Tests\Unit\Hooks\TcaItemsProcessorFunctionsTest\populateAvailableCategoryFieldsThrowsExceptionOnMissingTable
‪populateAvailableCategoryFieldsThrowsExceptionOnMissingTable()
Definition: TcaItemsProcessorFunctionsTest.php:696
‪TYPO3\CMS\Core\Tests\Unit\Hooks\TcaItemsProcessorFunctionsTest\populateExplicitAuthValuesTest
‪populateExplicitAuthValuesTest(array $tca, array $expectedItems)
Definition: TcaItemsProcessorFunctionsTest.php:443
‪TYPO3\CMS\Core\Tests\Unit\Hooks\TcaItemsProcessorFunctionsTest\tearDown
‪tearDown()
Definition: TcaItemsProcessorFunctionsTest.php:56
‪TYPO3\CMS\Core\Tests\Unit\Hooks\TcaItemsProcessorFunctionsTest\populateCustomPermissionOptionsTest
‪populateCustomPermissionOptionsTest()
Definition: TcaItemsProcessorFunctionsTest.php:649
‪TYPO3\CMS\Core\Cache\Frontend\FrontendInterface
Definition: FrontendInterface.php:22
‪TYPO3\CMS\Core\Tests\Unit\Hooks\TcaItemsProcessorFunctionsTest\populateAvailableCategoryFields
‪populateAvailableCategoryFields(array $itemsProcConfig, array $expectedItems)
Definition: TcaItemsProcessorFunctionsTest.php:721
‪TYPO3\CMS\Core\Hooks\TcaItemsProcessorFunctions
Definition: TcaItemsProcessorFunctions.php:35
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:25
‪TYPO3\CMS\Core\Tests\Unit\Hooks\TcaItemsProcessorFunctionsTest\setUp
‪setUp()
Definition: TcaItemsProcessorFunctionsTest.php:35
‪$tca
‪$tca
Definition: sys_file_metadata.php:5
‪TYPO3\CMS\Core\Localization\LanguageService
Definition: LanguageService.php:42
‪TYPO3\CMS\Core\Tests\Unit\Hooks\TcaItemsProcessorFunctionsTest\populateExplicitAuthValuesTestDataProvider
‪populateExplicitAuthValuesTestDataProvider()
Definition: TcaItemsProcessorFunctionsTest.php:454
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:50
‪TYPO3\CMS\Core\Tests\Unit\Hooks\TcaItemsProcessorFunctionsTest\populateExcludeFieldsTest
‪populateExcludeFieldsTest(array $tca, array $expectedItems)
Definition: TcaItemsProcessorFunctionsTest.php:237