‪TYPO3CMS  ‪main
DefaultTcaSchemaTest.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 Doctrine\DBAL\Schema\Column;
21 use Doctrine\DBAL\Schema\Index;
22 use Doctrine\DBAL\Schema\SchemaException;
23 use Doctrine\DBAL\Schema\Table;
24 use Doctrine\DBAL\Types\IntegerType;
25 use Doctrine\DBAL\Types\StringType;
26 use Doctrine\DBAL\Types\Type;
27 use PHPUnit\Framework\Attributes\Test;
34 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
35 
36 final class ‪DefaultTcaSchemaTest extends UnitTestCase
37 {
39  protected ?Table ‪$defaultTable;
40 
41  public function ‪setUp(): void
42  {
43  parent::setUp();
44  $this->subject = new ‪DefaultTcaSchema();
45  $this->defaultTable = new Table('aTable');
46  }
47 
48  #[Test]
50  {
51  ‪$GLOBALS['TCA'] = [];
52  self::assertEquals(['aTable' => $this->defaultTable], $this->subject->enrich(['aTable' => $this->defaultTable]));
53  }
54 
55  #[Test]
57  {
58  $this->expectException(\RuntimeException::class);
59  $this->expectExceptionCode(1696424993);
60  ‪$GLOBALS['TCA'] = [
61  'aTable' => [],
62  ];
63  $this->subject->enrich([]);
64  }
65 
66  #[Test]
67  public function ‪enrichDoesNotAddColumnIfExists(): void
68  {
69  ‪$GLOBALS['TCA']['aTable']['ctrl'] = [];
70 
71  $table = new Table('aTable');
72  $table->addColumn('uid', 'integer');
73  $table->addColumn('pid', 'integer');
74  $input = [];
75  $input['aTable'] = $table;
76 
77  $table = new Table('aTable');
78  $table->addColumn('uid', 'integer');
79  $table->addColumn('pid', 'integer');
80  $expected = [];
81  $expected['aTable'] = $table;
82 
83  self::assertEquals($expected, $this->subject->enrich($input));
84  }
85 
86  #[Test]
87  public function ‪enrichAddsUidAndPrimaryKey(): void
88  {
89  ‪$GLOBALS['TCA']['aTable']['ctrl'] = [];
90  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
91  $expectedUidColumn = new Column(
92  '`uid`',
93  Type::getType('integer'),
94  [
95  'notnull' => true,
96  'unsigned' => true,
97  'autoincrement' => true,
98  ]
99  );
100  $expectedPrimaryKey = new Index('primary', ['uid'], true, true);
101  self::assertSame($expectedUidColumn->toArray(), $result['aTable']->getColumn('uid')->toArray());
102  self::assertEquals($expectedPrimaryKey, $result['aTable']->getPrimaryKey());
103  }
104 
105  #[Test]
106  public function ‪enrichAddsPid(): void
107  {
108  ‪$GLOBALS['TCA']['aTable']['ctrl'] = [];
109  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
110  $expectedPidColumn = new Column(
111  '`pid`',
112  Type::getType('integer'),
113  [
114  'default' => 0,
115  'notnull' => true,
116  'unsigned' => true,
117  ]
118  );
119  self::assertSame($expectedPidColumn->toArray(), $result['aTable']->getColumn('pid')->toArray());
120  }
121 
122  #[Test]
123  public function ‪enrichAddsTstamp(): void
124  {
125  ‪$GLOBALS['TCA']['aTable']['ctrl'] = [
126  'tstamp' => 'updatedon',
127  ];
128  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
129  $expectedColumn = new Column(
130  '`updatedon`',
131  Type::getType('integer'),
132  [
133  'default' => 0,
134  'notnull' => true,
135  'unsigned' => true,
136  ]
137  );
138  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('updatedon')->toArray());
139  }
140 
141  #[Test]
142  public function ‪enrichAddsCrdate(): void
143  {
144  ‪$GLOBALS['TCA']['aTable']['ctrl'] = [
145  'crdate' => 'createdon',
146  ];
147  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
148  $expectedColumn = new Column(
149  '`createdon`',
150  Type::getType('integer'),
151  [
152  'default' => 0,
153  'notnull' => true,
154  'unsigned' => true,
155  ]
156  );
157  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('createdon')->toArray());
158  }
159 
160  #[Test]
161  public function ‪enrichAddsDeleted(): void
162  {
163  ‪$GLOBALS['TCA']['aTable']['ctrl'] = [
164  'delete' => 'deleted',
165  ];
166  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
167  $expectedColumn = new Column(
168  '`deleted`',
169  Type::getType('smallint'),
170  [
171  'default' => 0,
172  'notnull' => true,
173  'unsigned' => true,
174  ]
175  );
176  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('deleted')->toArray());
177  }
178 
179  #[Test]
180  public function ‪enrichAddsDisabled(): void
181  {
182  ‪$GLOBALS['TCA']['aTable']['ctrl'] = [
183  'enablecolumns' => [
184  'disabled' => 'disabled',
185  ],
186  ];
187  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
188  $expectedColumn = new Column(
189  '`disabled`',
190  Type::getType('smallint'),
191  [
192  'default' => 0,
193  'notnull' => true,
194  'unsigned' => true,
195  ]
196  );
197  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('disabled')->toArray());
198  }
199 
200  #[Test]
201  public function ‪enrichAddsStarttime(): void
202  {
203  ‪$GLOBALS['TCA']['aTable']['ctrl'] = [
204  'enablecolumns' => [
205  'starttime' => 'starttime',
206  ],
207  ];
208  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
209  $expectedColumn = new Column(
210  '`starttime`',
211  Type::getType('integer'),
212  [
213  'default' => 0,
214  'notnull' => true,
215  'unsigned' => true,
216  ]
217  );
218  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('starttime')->toArray());
219  }
220 
221  #[Test]
222  public function ‪enrichAddsEndtime(): void
223  {
224  ‪$GLOBALS['TCA']['aTable']['ctrl'] = [
225  'enablecolumns' => [
226  'endtime' => 'endtime',
227  ],
228  ];
229  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
230  $expectedColumn = new Column(
231  '`endtime`',
232  Type::getType('integer'),
233  [
234  'default' => 0,
235  'notnull' => true,
236  'unsigned' => true,
237  ]
238  );
239  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('endtime')->toArray());
240  }
241 
242  #[Test]
243  public function ‪enrichAddsFegroup(): void
244  {
245  ‪$GLOBALS['TCA']['aTable']['ctrl'] = [
246  'enablecolumns' => [
247  'fe_group' => 'fe_group',
248  ],
249  ];
250  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
251  $expectedColumn = new Column(
252  '`fe_group`',
253  Type::getType('string'),
254  [
255  'default' => '0',
256  'notnull' => true,
257  'length' => 255,
258  ]
259  );
260  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('fe_group')->toArray());
261  }
262 
263  #[Test]
264  public function ‪enrichAddsSorting(): void
265  {
266  ‪$GLOBALS['TCA']['aTable']['ctrl'] = [
267  'sortby' => 'sorting',
268  ];
269  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
270  $expectedColumn = new Column(
271  '`sorting`',
272  Type::getType('integer'),
273  [
274  'default' => 0,
275  'notnull' => true,
276  'unsigned' => false,
277  ]
278  );
279  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('sorting')->toArray());
280  }
281 
282  #[Test]
283  public function ‪enrichAddsParentKey(): void
284  {
285  ‪$GLOBALS['TCA']['aTable']['ctrl'] = [];
286  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
287  $expectedIndex = new Index('parent', ['pid']);
288  self::assertEquals($expectedIndex, $result['aTable']->getIndex('parent'));
289  }
290 
291  #[Test]
292  public function ‪enrichAddsParentKeyWithDelete(): void
293  {
294  ‪$GLOBALS['TCA']['aTable']['ctrl'] = [
295  'delete' => 'deleted',
296  ];
297  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
298  $expectedIndex = new Index('parent', ['pid', 'deleted']);
299  self::assertEquals($expectedIndex, $result['aTable']->getIndex('parent'));
300  }
301 
302  #[Test]
303  public function ‪enrichAddsParentKeyWithDisabled(): void
304  {
305  ‪$GLOBALS['TCA']['aTable']['ctrl'] = [
306  'enablecolumns' => [
307  'disabled' => 'disabled',
308  ],
309  ];
310  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
311  $expectedIndex = new Index('parent', ['pid', 'disabled']);
312  self::assertEquals($expectedIndex, $result['aTable']->getIndex('parent'));
313  }
314 
315  #[Test]
316  public function ‪enrichAddsParentKeyInCorrectOrder(): void
317  {
318  ‪$GLOBALS['TCA']['aTable']['ctrl'] = [
319  'delete' => 'deleted',
320  'enablecolumns' => [
321  'disabled' => 'disabled',
322  ],
323  ];
324  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
325  $expectedIndex = new Index('parent', ['pid', 'deleted', 'disabled']);
326  self::assertEquals($expectedIndex, $result['aTable']->getIndex('parent'));
327  }
328 
329  #[Test]
330  public function ‪enrichAddsSysLanguageUid(): void
331  {
332  ‪$GLOBALS['TCA']['aTable']['ctrl'] = [
333  'languageField' => 'sys_language_uid',
334  ];
335  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
336  $expectedColumn = new Column(
337  '`sys_language_uid`',
338  Type::getType('integer'),
339  [
340  'default' => 0,
341  'notnull' => true,
342  'unsigned' => false,
343  ]
344  );
345  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('sys_language_uid')->toArray());
346  }
347 
348  #[Test]
349  public function ‪enrichAddsL10nParent(): void
350  {
351  ‪$GLOBALS['TCA']['aTable']['ctrl'] = [
352  'languageField' => 'sys_language_uid',
353  'transOrigPointerField' => 'l10n_parent',
354  ];
355  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
356  $expectedColumn = new Column(
357  '`l10n_parent`',
358  Type::getType('integer'),
359  [
360  'default' => 0,
361  'notnull' => true,
362  'unsigned' => true,
363  ]
364  );
365  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('l10n_parent')->toArray());
366  }
367 
368  #[Test]
370  {
371  ‪$GLOBALS['TCA']['aTable']['ctrl'] = [
372  'transOrigPointerField' => 'l10n_parent',
373  ];
374  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
375  $this->expectException(SchemaException::class);
376  $result['aTable']->getColumn('l10n_parent');
377  }
378 
379  #[Test]
380  public function ‪enrichAddsDescription(): void
381  {
382  ‪$GLOBALS['TCA']['aTable']['ctrl'] = [
383  'descriptionColumn' => 'rowDescription',
384  ];
385  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
386  $expectedColumn = new Column(
387  '`rowDescription`',
388  Type::getType('text'),
389  [
390  'notnull' => false,
391  'length' => 65535,
392  ]
393  );
394  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('rowDescription')->toArray());
395  }
396 
397  #[Test]
398  public function ‪enrichAddsEditlock(): void
399  {
400  ‪$GLOBALS['TCA']['aTable']['ctrl'] = [
401  'editlock' => 'editlock',
402  ];
403  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
404  $expectedColumn = new Column(
405  '`editlock`',
406  Type::getType('smallint'),
407  [
408  'default' => 0,
409  'notnull' => true,
410  'unsigned' => true,
411  ]
412  );
413  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('editlock')->toArray());
414  }
415 
416  #[Test]
417  public function ‪enrichAddsL10nSource(): void
418  {
419  ‪$GLOBALS['TCA']['aTable']['ctrl'] = [
420  'languageField' => 'sys_language_uid',
421  'translationSource' => 'l10n_source',
422  ];
423  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
424  $expectedColumn = new Column(
425  '`l10n_source`',
426  Type::getType('integer'),
427  [
428  'default' => 0,
429  'notnull' => true,
430  'unsigned' => true,
431  ]
432  );
433  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('l10n_source')->toArray());
434  }
435 
436  #[Test]
438  {
439  ‪$GLOBALS['TCA']['aTable']['ctrl'] = [
440  'translationSource' => 'l10n_source',
441  ];
442  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
443  $this->expectException(SchemaException::class);
444  $result['aTable']->getColumn('l10n_source');
445  }
446 
447  #[Test]
448  public function ‪enrichAddsL10nState(): void
449  {
450  ‪$GLOBALS['TCA']['aTable']['ctrl'] = [
451  'languageField' => 'sys_language_uid',
452  'transOrigPointerField' => 'l10n_parent',
453  ];
454  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
455  $expectedColumn = new Column(
456  '`l10n_state`',
457  Type::getType('text'),
458  [
459  'notnull' => false,
460  'length' => 65535,
461  ]
462  );
463  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('l10n_state')->toArray());
464  }
465 
466  #[Test]
468  {
469  ‪$GLOBALS['TCA']['aTable']['ctrl'] = [
470  'transOrigPointerField' => 'l10n_parent',
471  ];
472  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
473  $this->expectException(SchemaException::class);
474  $result['aTable']->getColumn('l10n_state');
475  }
476 
477  #[Test]
479  {
480  ‪$GLOBALS['TCA']['aTable']['ctrl'] = [
481  'languageField' => 'sys_language_uid',
482  ];
483  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
484  $this->expectException(SchemaException::class);
485  $result['aTable']->getColumn('l10n_state');
486  }
487 
488  #[Test]
489  public function ‪enrichAddsT3origUid(): void
490  {
491  ‪$GLOBALS['TCA']['aTable']['ctrl'] = [
492  'origUid' => 't3_origuid',
493  ];
494  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
495  $expectedColumn = new Column(
496  '`t3_origuid`',
497  Type::getType('integer'),
498  [
499  'default' => 0,
500  'notnull' => true,
501  'unsigned' => true,
502  ]
503  );
504  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('t3_origuid')->toArray());
505  }
506 
507  #[Test]
508  public function ‪enrichAddsL10nDiffsource(): void
509  {
510  ‪$GLOBALS['TCA']['aTable']['ctrl'] = [
511  'transOrigDiffSourceField' => 'l18n_diffsource',
512  ];
513  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
514  $expectedColumn = new Column(
515  '`l18n_diffsource`',
516  Type::getType('blob'),
517  [
518  'length' => 16777215,
519  'notnull' => false,
520  ]
521  );
522  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('l18n_diffsource')->toArray());
523  }
524 
525  #[Test]
526  public function ‪enrichAddsT3verOid(): void
527  {
528  ‪$GLOBALS['TCA']['aTable']['ctrl'] = [
529  'versioningWS' => true,
530  ];
531  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
532  $expectedColumn = new Column(
533  '`t3ver_oid`',
534  Type::getType('integer'),
535  [
536  'default' => 0,
537  'notnull' => true,
538  'unsigned' => true,
539  ]
540  );
541  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('t3ver_oid')->toArray());
542  }
543 
544  #[Test]
545  public function ‪enrichAddsT3verWsid(): void
546  {
547  ‪$GLOBALS['TCA']['aTable']['ctrl'] = [
548  'versioningWS' => true,
549  ];
550  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
551  $expectedColumn = new Column(
552  '`t3ver_wsid`',
553  Type::getType('integer'),
554  [
555  'default' => 0,
556  'notnull' => true,
557  'unsigned' => true,
558  ]
559  );
560  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('t3ver_wsid')->toArray());
561  }
562 
563  #[Test]
564  public function ‪enrichAddsT3verState(): void
565  {
566  ‪$GLOBALS['TCA']['aTable']['ctrl'] = [
567  'versioningWS' => true,
568  ];
569  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
570  $expectedColumn = new Column(
571  '`t3ver_state`',
572  Type::getType('smallint'),
573  [
574  'default' => 0,
575  'notnull' => true,
576  'unsigned' => false,
577  ]
578  );
579  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('t3ver_state')->toArray());
580  }
581 
582  #[Test]
583  public function ‪enrichAddsT3verStage(): void
584  {
585  ‪$GLOBALS['TCA']['aTable']['ctrl'] = [
586  'versioningWS' => true,
587  ];
588  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
589  $expectedColumn = new Column(
590  '`t3ver_stage`',
591  Type::getType('integer'),
592  [
593  'default' => 0,
594  'notnull' => true,
595  'unsigned' => false,
596  ]
597  );
598  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('t3ver_stage')->toArray());
599  }
600 
601  #[Test]
602  public function ‪enrichAddsLifeTimerangeDatefield(): void
603  {
605  ‪$GLOBALS['TCA']['aTable']['columns']['aBigDateField'] = [
606  'label' => 'aLabel',
607  'config' => [
608  'type' => 'datetime',
609  'format' => 'date',
610  'range' => [
611  'lower' => mktime(0, 0, 0, 10, 28, 1979),
612  'upper' => mktime(0, 0, 0, 1, 1, 2051),
613  ],
614  ],
615  ];
616 
617  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
618  $expectedColumn = new Column(
619  '`aBigDateField`',
620  Type::getType('bigint'),
621  [
622  'default' => 0,
623  'notnull' => true,
624  'unsigned' => false,
625  ]
626  );
627  self::assertEquals($expectedColumn, $result['aTable']->getColumn('aBigDateField'));
628  }
629 
630  #[Test]
632  {
634  ‪$GLOBALS['TCA']['aTable']['columns']['aSmallDateField'] = [
635  'label' => 'aLabel',
636  'config' => [
637  'type' => 'datetime',
638  'format' => 'date',
639  'range' => [
640  'lower' => mktime(0, 0, 0, 10, 28, 1979),
641  'upper' => mktime(0, 0, 0, 1, 1, 2037),
642  ],
643  ],
644  ];
645 
646  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
647  $expectedColumn = new Column(
648  '`aSmallDateField`',
649  Type::getType('bigint'),
650  [
651  'default' => 0,
652  'notnull' => true,
653  'unsigned' => false,
654  ]
655  );
656  self::assertEquals($expectedColumn, $result['aTable']->getColumn('aSmallDateField'));
657  }
658 
659  #[Test]
661  {
663  ‪$GLOBALS['TCA']['aTable']['columns']['aDefaultDateField'] = [
664  'label' => 'aLabel',
665  'config' => [
666  'type' => 'datetime',
667  'format' => 'date',
668  ],
669  ];
670 
671  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
672  $expectedColumn = new Column(
673  '`aDefaultDateField`',
674  Type::getType('bigint'),
675  [
676  'default' => 0,
677  'notnull' => true,
678  'unsigned' => false,
679  ]
680  );
681  self::assertEquals($expectedColumn, $result['aTable']->getColumn('aDefaultDateField'));
682  }
683 
684  #[Test]
686  {
688  ‪$GLOBALS['TCA']['aTable']['columns']['aBigDateField'] = [
689  'label' => 'aLabel',
690  'config' => [
691  'type' => 'datetime',
692  'format' => 'date',
693  'range' => [
694  'lower' => mktime(0, 0, 0, 10, 28, 1979),
695  'upper' => mktime(0, 0, 0, 1, 1, 2111),
696  ],
697  ],
698  ];
699 
700  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
701  $expectedColumn = new Column(
702  '`aBigDateField`',
703  Type::getType('bigint'),
704  [
705  'default' => 0,
706  'notnull' => true,
707  'unsigned' => false,
708  ]
709  );
710  self::assertEquals($expectedColumn, $result['aTable']->getColumn('aBigDateField'));
711  }
712 
713  #[Test]
715  {
717  ‪$GLOBALS['TCA']['aTable']['columns']['aSmallDateField'] = [
718  'label' => 'aLabel',
719  'config' => [
720  'type' => 'datetime',
721  'format' => 'date',
722  'range' => [
723  'lower' => mktime(0, 0, 0, 10, 28, 1888),
724  'upper' => mktime(0, 0, 0, 1, 1, 2111),
725  ],
726  ],
727  ];
728 
729  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
730  $expectedColumn = new Column(
731  '`aSmallDateField`',
732  Type::getType('bigint'),
733  [
734  'default' => 0,
735  'notnull' => true,
736  'unsigned' => false,
737  ]
738  );
739  self::assertEquals($expectedColumn, $result['aTable']->getColumn('aSmallDateField'));
740  }
741 
742  #[Test]
743  public function ‪enrichAddsT3verOidIndex(): void
744  {
745  ‪$GLOBALS['TCA']['aTable']['ctrl'] = [
746  'versioningWS' => true,
747  ];
748  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
749  $expectedIndex = new Index('t3ver_oid', ['t3ver_oid', 't3ver_wsid']);
750  self::assertEquals($expectedIndex, $result['aTable']->getIndex('t3ver_oid'));
751  }
752 
753  #[Test]
754  public function ‪enrichAddsSimpleMmForSelect(): void
755  {
757  ‪$GLOBALS['TCA']['aTable']['columns']['aField']['config'] = [
758  'type' => 'select',
759  'MM' => 'tx_myext_atable_afield_mm',
760  ];
761  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
762  $expectedMmTable = new Table(
763  'tx_myext_atable_afield_mm',
764  [
765  new Column(
766  '`uid_local`',
767  new IntegerType(),
768  [
769  'default' => 0,
770  'unsigned' => true,
771  ]
772  ),
773  new Column(
774  '`uid_foreign`',
775  new IntegerType(),
776  [
777  'default' => 0,
778  'unsigned' => true,
779  ]
780  ),
781  new Column(
782  '`sorting`',
783  new IntegerType(),
784  [
785  'default' => 0,
786  'unsigned' => true,
787  ]
788  ),
789  new Column(
790  '`sorting_foreign`',
791  new IntegerType(),
792  [
793  'default' => 0,
794  'unsigned' => true,
795  ]
796  ),
797  ],
798  [
799  new Index(
800  'uid_local',
801  ['uid_local']
802  ),
803  new Index(
804  'uid_foreign',
805  ['uid_foreign']
806  ),
807  new Index(
808  'primary',
809  ['uid_local', 'uid_foreign'],
810  true,
811  true
812  ),
813  ]
814  );
815  self::assertEquals($expectedMmTable, $result['tx_myext_atable_afield_mm']);
816  }
817 
818  #[Test]
820  {
822  ‪$GLOBALS['TCA']['aTable']['columns']['aField']['config'] = [
823  'type' => 'select',
824  'MM' => 'tx_myext_atable_afield_mm',
825  'multiple' => true,
826  ];
827  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
828  $expectedMmTable = new Table(
829  'tx_myext_atable_afield_mm',
830  [
831  new Column(
832  '`uid_local`',
833  new IntegerType(),
834  [
835  'default' => 0,
836  'unsigned' => true,
837  ]
838  ),
839  new Column(
840  '`uid_foreign`',
841  new IntegerType(),
842  [
843  'default' => 0,
844  'unsigned' => true,
845  ]
846  ),
847  new Column(
848  '`sorting`',
849  new IntegerType(),
850  [
851  'default' => 0,
852  'unsigned' => true,
853  ]
854  ),
855  new Column(
856  '`sorting_foreign`',
857  new IntegerType(),
858  [
859  'default' => 0,
860  'unsigned' => true,
861  ]
862  ),
863  new Column(
864  '`uid`',
865  new IntegerType(),
866  [
867  'default' => null,
868  'autoincrement' => true,
869  'unsigned' => true,
870  ]
871  ),
872  ],
873  [
874  new Index(
875  'uid_local',
876  ['uid_local']
877  ),
878  new Index(
879  'uid_foreign',
880  ['uid_foreign']
881  ),
882  new Index(
883  'primary',
884  ['uid'],
885  true,
886  true
887  ),
888  ]
889  );
890  self::assertEquals($expectedMmTable, $result['tx_myext_atable_afield_mm']);
891  }
892 
893  #[Test]
895  {
897  ‪$GLOBALS['TCA']['aTable']['columns']['aField']['config'] = [
898  'type' => 'select',
899  'MM' => 'tx_myext_atable_afield_mm',
900  'MM_oppositeUsage' => [
901  'tt_content' => [
902  'categories',
903  ],
904  ],
905  ];
906  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
907  $expectedMmTable = new Table(
908  'tx_myext_atable_afield_mm',
909  [
910  new Column(
911  '`uid_local`',
912  new IntegerType(),
913  [
914  'default' => 0,
915  'unsigned' => true,
916  ]
917  ),
918  new Column(
919  '`uid_foreign`',
920  new IntegerType(),
921  [
922  'default' => 0,
923  'unsigned' => true,
924  ]
925  ),
926  new Column(
927  '`sorting`',
928  new IntegerType(),
929  [
930  'default' => 0,
931  'unsigned' => true,
932  ]
933  ),
934  new Column(
935  '`sorting_foreign`',
936  new IntegerType(),
937  [
938  'default' => 0,
939  'unsigned' => true,
940  ]
941  ),
942  new Column(
943  '`tablenames`',
944  new StringType(),
945  [
946  'default' => '',
947  'length' => 64,
948  ]
949  ),
950  new Column(
951  '`fieldname`',
952  new StringType(),
953  [
954  'default' => '',
955  'length' => 64,
956  ]
957  ),
958  ],
959  [
960  new Index(
961  'uid_local',
962  ['uid_local']
963  ),
964  new Index(
965  'uid_foreign',
966  ['uid_foreign']
967  ),
968  new Index(
969  'primary',
970  ['uid_local', 'uid_foreign', 'tablenames', 'fieldname'],
971  true,
972  true
973  ),
974  ]
975  );
976  self::assertEquals($expectedMmTable, $result['tx_myext_atable_afield_mm']);
977  }
978 
979  #[Test]
980  public function ‪enrichAddsSlug(): void
981  {
983  ‪$GLOBALS['TCA']['aTable']['columns']['slug'] = [
984  'label' => 'aLabel',
985  'config' => [
986  'type' => 'slug',
987  ],
988  ];
989  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
990  $expectedColumn = new Column(
991  '`slug`',
992  Type::getType('string'),
993  [
994  'default' => null,
995  'notnull' => false,
996  'length' => 2048,
997  ]
998  );
999  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('slug')->toArray());
1000  }
1001 
1002  #[Test]
1003  public function ‪enrichAddsFile(): void
1004  {
1006  ‪$GLOBALS['TCA']['aTable']['columns']['file'] = [
1007  'label' => 'aLabel',
1008  'config' => [
1009  'type' => 'file',
1010  ],
1011  ];
1012  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
1013  $expectedColumn = new Column(
1014  '`file`',
1015  Type::getType('integer'),
1016  [
1017  'default' => 0,
1018  'notnull' => true,
1019  'unsigned' => true,
1020  ]
1021  );
1022  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('file')->toArray());
1023  }
1024 
1025  #[Test]
1026  public function ‪enrichAddsEmail(): void
1027  {
1029  ‪$GLOBALS['TCA']['aTable']['columns']['email'] = [
1030  'label' => 'aLabel',
1031  'config' => [
1032  'type' => 'email',
1033  ],
1034  ];
1035  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
1036  $expectedColumn = new Column(
1037  '`email`',
1038  Type::getType('string'),
1039  [
1040  'length' => 255,
1041  'default' => '',
1042  'notnull' => true,
1043  ]
1044  );
1045  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('email')->toArray());
1046  }
1047 
1048  #[Test]
1049  public function ‪enrichAddsNullableEmail(): void
1050  {
1052  ‪$GLOBALS['TCA']['aTable']['columns']['email'] = [
1053  'label' => 'aLabel',
1054  'config' => [
1055  'type' => 'email',
1056  'nullable' => true,
1057  ],
1058  ];
1059  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
1060  $expectedColumn = new Column(
1061  '`email`',
1062  Type::getType('string'),
1063  [
1064  'length' => 255,
1065  'default' => null,
1066  'notnull' => false,
1067  ]
1068  );
1069  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('email')->toArray());
1070  }
1071 
1072  #[Test]
1073  public function ‪enrichAddsCheck(): void
1074  {
1076  ‪$GLOBALS['TCA']['aTable']['columns']['check'] = [
1077  'label' => 'aLabel',
1078  'config' => [
1079  'type' => 'check',
1080  ],
1081  ];
1082  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
1083  $expectedColumn = new Column(
1084  '`check`',
1085  Type::getType('smallint'),
1086  [
1087  'default' => 0,
1088  'notnull' => true,
1089  'unsigned' => true,
1090  ]
1091  );
1092  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('check')->toArray());
1093  }
1094 
1095  #[Test]
1096  public function ‪enrichAddsFolder(): void
1097  {
1099  ‪$GLOBALS['TCA']['aTable']['columns']['folder'] = [
1100  'label' => 'aLabel',
1101  'config' => [
1102  'type' => 'folder',
1103  ],
1104  ];
1105  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
1106  $expectedColumn = new Column(
1107  '`folder`',
1108  Type::getType('text'),
1109  [
1110  'notnull' => false,
1111  ]
1112  );
1113  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('folder')->toArray());
1114  }
1115 
1116  #[Test]
1117  public function ‪enrichAddsImageManipulation(): void
1118  {
1120  ‪$GLOBALS['TCA']['aTable']['columns']['imageManipulation'] = [
1121  'label' => 'aLabel',
1122  'config' => [
1123  'type' => 'imageManipulation',
1124  ],
1125  ];
1126  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
1127  $expectedColumn = new Column(
1128  '`imageManipulation`',
1129  Type::getType('text'),
1130  [
1131  'notnull' => false,
1132  ]
1133  );
1134  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('imageManipulation')->toArray());
1135  }
1136 
1137  #[Test]
1138  public function ‪enrichAddsLanguage(): void
1139  {
1141  ‪$GLOBALS['TCA']['aTable']['columns']['language'] = [
1142  'label' => 'aLabel',
1143  'config' => [
1144  'type' => 'language',
1145  ],
1146  ];
1147  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
1148  $expectedColumn = new Column(
1149  '`language`',
1150  Type::getType('integer'),
1151  [
1152  'default' => 0,
1153  'notnull' => true,
1154  'unsigned' => false,
1155  ]
1156  );
1157  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('language')->toArray());
1158  }
1159 
1160  #[Test]
1161  public function ‪enrichAddsGroup(): void
1162  {
1164  ‪$GLOBALS['TCA']['aTable']['columns']['group'] = [
1165  'label' => 'aLabel',
1166  'config' => [
1167  'type' => 'group',
1168  ],
1169  ];
1170  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
1171  $expectedColumn = new Column(
1172  '`group`',
1173  Type::getType('text'),
1174  [
1175  'notnull' => false,
1176  ]
1177  );
1178  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('group')->toArray());
1179  }
1180 
1181  #[Test]
1182  public function ‪enrichAddsGroupWithMM(): void
1183  {
1185  ‪$GLOBALS['TCA']['aTable']['columns']['groupWithMM'] = [
1186  'label' => 'aLabel',
1187  'config' => [
1188  'type' => 'group',
1189  'MM' => 'aTable',
1190  ],
1191  ];
1192  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
1193  $expectedColumn = new Column(
1194  '`groupWithMM`',
1195  Type::getType('integer'),
1196  [
1197  'default' => 0,
1198  'notnull' => true,
1199  'unsigned' => true,
1200  ]
1201  );
1202  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('groupWithMM')->toArray());
1203  }
1204 
1205  #[Test]
1206  public function ‪enrichAddsFlex(): void
1207  {
1209  ‪$GLOBALS['TCA']['aTable']['columns']['flex'] = [
1210  'label' => 'aLabel',
1211  'config' => [
1212  'type' => 'flex',
1213  ],
1214  ];
1215  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
1216  $expectedColumn = new Column(
1217  '`flex`',
1218  Type::getType('text'),
1219  [
1220  'notnull' => false,
1221  ]
1222  );
1223  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('flex')->toArray());
1224  }
1225 
1226  #[Test]
1227  public function ‪enrichAddsText(): void
1228  {
1230  ‪$GLOBALS['TCA']['aTable']['columns']['text'] = [
1231  'label' => 'aLabel',
1232  'config' => [
1233  'type' => 'text',
1234  ],
1235  ];
1236  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
1237  $expectedColumn = new Column(
1238  '`text`',
1239  Type::getType('text'),
1240  [
1241  'notnull' => false,
1242  ]
1243  );
1244  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('text')->toArray());
1245  }
1246 
1247  #[Test]
1248  public function ‪enrichAddsPassword(): void
1249  {
1251  ‪$GLOBALS['TCA']['aTable']['columns']['password'] = [
1252  'label' => 'aLabel',
1253  'config' => [
1254  'type' => 'password',
1255  ],
1256  ];
1257  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
1258  $expectedColumn = new Column(
1259  '`password`',
1260  Type::getType('string'),
1261  [
1262  'default' => '',
1263  'notnull' => true,
1264  ]
1265  );
1266  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('password')->toArray());
1267  }
1268 
1269  #[Test]
1270  public function ‪enrichAddsPasswordNullable(): void
1271  {
1273  ‪$GLOBALS['TCA']['aTable']['columns']['password'] = [
1274  'label' => 'aLabel',
1275  'config' => [
1276  'type' => 'password',
1277  'nullable' => true,
1278  ],
1279  ];
1280  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
1281  $expectedColumn = new Column(
1282  '`password`',
1283  Type::getType('string'),
1284  [
1285  'default' => null,
1286  'notnull' => false,
1287  ]
1288  );
1289  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('password')->toArray());
1290  }
1291 
1292  #[Test]
1293  public function ‪enrichAddsColor(): void
1294  {
1296  ‪$GLOBALS['TCA']['aTable']['columns']['color'] = [
1297  'label' => 'aLabel',
1298  'config' => [
1299  'type' => 'color',
1300  ],
1301  ];
1302  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
1303  $expectedColumn = new Column(
1304  '`color`',
1305  Type::getType('string'),
1306  [
1307  'length' => 7,
1308  'default' => '',
1309  'notnull' => true,
1310  ]
1311  );
1312  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('color')->toArray());
1313  }
1314 
1315  #[Test]
1316  public function ‪enrichAddsColorNullable(): void
1317  {
1319  ‪$GLOBALS['TCA']['aTable']['columns']['color'] = [
1320  'label' => 'aLabel',
1321  'config' => [
1322  'type' => 'color',
1323  'nullable' => true,
1324  ],
1325  ];
1326  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
1327  $expectedColumn = new Column(
1328  '`color`',
1329  Type::getType('string'),
1330  [
1331  'length' => 7,
1332  'default' => null,
1333  'notnull' => false,
1334  ]
1335  );
1336  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('color')->toArray());
1337  }
1338 
1339  #[Test]
1340  public function ‪enrichAddsRadioString(): void
1341  {
1343  ‪$GLOBALS['TCA']['aTable']['columns']['radio'] = [
1344  'label' => 'aLabel',
1345  'config' => [
1346  'type' => 'radio',
1347  'items' => [
1348  [
1349  'label' => 'Radio 1',
1350  'value' => 'item1',
1351  ],
1352  [
1353  'label' => 'Radio 2',
1354  'value' => 'item2',
1355  ],
1356  ],
1357  ],
1358  ];
1359  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
1360  $expectedColumn = new Column(
1361  '`radio`',
1362  Type::getType('string'),
1363  [
1364  'length' => 255,
1365  'default' => '',
1366  'notnull' => true,
1367  ]
1368  );
1369  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('radio')->toArray());
1370  }
1371 
1372  #[Test]
1374  {
1376  ‪$GLOBALS['TCA']['aTable']['columns']['radio1'] = [
1377  'label' => 'aLabel',
1378  'config' => [
1379  'type' => 'radio',
1380  'items' => [
1381  [
1382  'label' => 'Radio 1',
1383  'value' => 'item1',
1384  ],
1385  [
1386  'label' => 'Radio 2',
1387  'value' => 'item2',
1388  ],
1389  ],
1390  ],
1391  ];
1392  ‪$GLOBALS['TCA']['aTable']['columns']['radio2'] = [
1393  'label' => 'aLabel',
1394  'config' => [
1395  'type' => 'radio',
1396  'items' => [
1397  [
1398  'label' => 'Radio 1',
1399  'value' => 'item1',
1400  ],
1401  [
1402  'label' => 'Radio 2',
1403  'value' => 'item2',
1404  ],
1405  ],
1406  ],
1407  ];
1408  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
1409  $expectedColumn1 = new Column(
1410  '`radio1`',
1411  Type::getType('string'),
1412  [
1413  'length' => 255,
1414  'default' => '',
1415  'notnull' => true,
1416  ]
1417  );
1418  $expectedColumn2 = new Column(
1419  '`radio2`',
1420  Type::getType('string'),
1421  [
1422  'length' => 255,
1423  'default' => '',
1424  'notnull' => true,
1425  ]
1426  );
1427  self::assertSame($expectedColumn1->toArray(), $result['aTable']->getColumn('radio1')->toArray());
1428  self::assertSame($expectedColumn2->toArray(), $result['aTable']->getColumn('radio2')->toArray());
1429  }
1430 
1431  #[Test]
1433  {
1435  ‪$GLOBALS['TCA']['aTable']['columns']['radio'] = [
1436  'label' => 'aLabel',
1437  'config' => [
1438  'type' => 'radio',
1439  'items' => [],
1440  ],
1441  ];
1442  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
1443  $expectedColumn = new Column(
1444  '`radio`',
1445  Type::getType('string'),
1446  [
1447  'length' => 255,
1448  'default' => '',
1449  'notnull' => true,
1450  ]
1451  );
1452  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('radio')->toArray());
1453  }
1454 
1455  #[Test]
1457  {
1459  ‪$GLOBALS['TCA']['aTable']['columns']['radio'] = [
1460  'label' => 'aLabel',
1461  'config' => [
1462  'type' => 'radio',
1463  'itemsProcFunc' => 'Foo->bar',
1464  'items' => [
1465  [
1466  'label' => 'Radio 1',
1467  'value' => '0',
1468  ],
1469  [
1470  'label' => 'Radio 2',
1471  'value' => '1',
1472  ],
1473  ],
1474  ],
1475  ];
1476  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
1477  $expectedColumn = new Column(
1478  '`radio`',
1479  Type::getType('string'),
1480  [
1481  'length' => 255,
1482  'default' => '',
1483  'notnull' => true,
1484  ]
1485  );
1486  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('radio')->toArray());
1487  }
1488 
1489  #[Test]
1490  public function ‪enrichAddsRadioSmallInt(): void
1491  {
1493  ‪$GLOBALS['TCA']['aTable']['columns']['radio'] = [
1494  'label' => 'aLabel',
1495  'config' => [
1496  'type' => 'radio',
1497  'items' => [
1498  [
1499  'label' => 'Radio 1',
1500  'value' => '0',
1501  ],
1502  [
1503  'label' => 'Radio 2',
1504  'value' => '1',
1505  ],
1506  [
1507  'label' => 'Radio 3',
1508  'value' => '2',
1509  ],
1510  ],
1511  ],
1512  ];
1513  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
1514  $expectedColumn = new Column(
1515  '`radio`',
1516  Type::getType('smallint'),
1517  [
1518  'default' => 0,
1519  'notnull' => true,
1520  ]
1521  );
1522  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('radio')->toArray());
1523  }
1524 
1525  #[Test]
1526  public function ‪enrichAddsRadioInt(): void
1527  {
1529  ‪$GLOBALS['TCA']['aTable']['columns']['radio'] = [
1530  'label' => 'aLabel',
1531  'config' => [
1532  'type' => 'radio',
1533  'items' => [
1534  [
1535  'label' => 'Radio 1',
1536  'value' => '0',
1537  ],
1538  [
1539  'label' => 'Radio 2',
1540  'value' => '1',
1541  ],
1542  [
1543  'label' => 'Radio 3',
1544  'value' => '32768',
1545  ],
1546  ],
1547  ],
1548  ];
1549  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
1550  $expectedColumn = new Column(
1551  '`radio`',
1552  Type::getType('integer'),
1553  [
1554  'default' => 0,
1555  'notnull' => true,
1556  ]
1557  );
1558  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('radio')->toArray());
1559  }
1560 
1561  #[Test]
1562  public function ‪enrichAddsLink(): void
1563  {
1565  ‪$GLOBALS['TCA']['aTable']['columns']['link'] = [
1566  'label' => 'aLabel',
1567  'config' => [
1568  'type' => 'link',
1569  ],
1570  ];
1571  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
1572  $expectedColumn = new Column(
1573  '`link`',
1574  Type::getType('string'),
1575  [
1576  'length' => 2048,
1577  'default' => '',
1578  'notnull' => true,
1579  ]
1580  );
1581  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('link')->toArray());
1582  }
1583  #[Test]
1584  public function ‪enrichAddsLinkNullable(): void
1585  {
1587  ‪$GLOBALS['TCA']['aTable']['columns']['link'] = [
1588  'label' => 'aLabel',
1589  'config' => [
1590  'type' => 'link',
1591  'nullable' => true,
1592  ],
1593  ];
1594  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
1595  $expectedColumn = new Column(
1596  '`link`',
1597  Type::getType('string'),
1598  [
1599  'length' => 2048,
1600  'default' => null,
1601  'notnull' => false,
1602  ]
1603  );
1604  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('link')->toArray());
1605  }
1606 
1607  #[Test]
1608  public function ‪enrichAddsInlineWithMMSet(): void
1609  {
1611  ‪$GLOBALS['TCA']['aTable']['columns']['inline_MM'] = [
1612  'label' => 'aLabel',
1613  'config' => [
1614  'type' => 'inline',
1615  'foreign_table' => 'bTable',
1616  'MM' => 'cTable',
1617  ],
1618  ];
1619  $result = $this->subject->enrich(['aTable' => $this->defaultTable, 'bTable' => new Table('bTable'), 'cTable' => new Table('cTable')]);
1620  $expectedColumn = new Column(
1621  '`inline_MM`',
1622  Type::getType('integer'),
1623  [
1624  'default' => 0,
1625  'unsigned' => true,
1626  'notnull' => true,
1627  ]
1628  );
1629  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('inline_MM')->toArray());
1630  }
1631 
1632  #[Test]
1634  {
1636  ‪$GLOBALS['TCA']['aTable']['columns']['inline_ff'] = [
1637  'label' => 'aLabel',
1638  'config' => [
1639  'type' => 'inline',
1640  'foreign_table' => 'bTable',
1641  'foreign_field' => 'bField',
1642  ],
1643  ];
1644  $result = $this->subject->enrich(['aTable' => $this->defaultTable, 'bTable' => new Table('bTable')]);
1645  $expectedColumn = new Column(
1646  '`inline_ff`',
1647  Type::getType('integer'),
1648  [
1649  'default' => 0,
1650  'unsigned' => true,
1651  'notnull' => true,
1652  ]
1653  );
1654  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('inline_ff')->toArray());
1655  }
1656 
1657  #[Test]
1659  {
1661  ‪$GLOBALS['TCA']['aTable']['columns']['inline_ff'] = [
1662  'label' => 'aLabel',
1663  'config' => [
1664  'type' => 'inline',
1665  'foreign_field' => 'bField',
1666  'foreign_table' => 'bTable',
1667  'foreign_table_field' => 'cField',
1668  ],
1669  ];
1670  $result = $this->subject->enrich(['aTable' => $this->defaultTable, 'bTable' => new Table('bTable')]);
1671  $expectedColumn = new Column(
1672  '`inline_ff`',
1673  Type::getType('integer'),
1674  [
1675  'default' => 0,
1676  'unsigned' => true,
1677  'notnull' => true,
1678  ]
1679  );
1680  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('inline_ff')->toArray());
1681 
1682  $expectedChildColumnForForeignField = new Column(
1683  'bField',
1684  Type::getType('integer'),
1685  [
1686  'default' => 0,
1687  'unsigned' => true,
1688  'notnull' => true,
1689  ]
1690  );
1691  self::assertSame($expectedChildColumnForForeignField->toArray(), $result['bTable']->getColumn('bField')->toArray());
1692 
1693  $expectedChildColumnForForeignTableField = new Column(
1694  'cField',
1695  Type::getType('string'),
1696  [
1697  'default' => '',
1698  'notnull' => true,
1699  'length' => 255,
1700  ]
1701  );
1702  self::assertSame($expectedChildColumnForForeignTableField->toArray(), $result['bTable']->getColumn('cField')->toArray());
1703  }
1704 
1705  #[Test]
1707  {
1709  ‪$GLOBALS['TCA']['aTable']['columns']['inline'] = [
1710  'label' => 'aLabel',
1711  'config' => [
1712  'type' => 'inline',
1713  'foreign_table' => 'bTable',
1714  ],
1715  ];
1716  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
1717  $expectedColumn = new Column(
1718  '`inline`',
1719  Type::getType('string'),
1720  [
1721  'default' => '',
1722  'notnull' => true,
1723  'length' => 255,
1724  ]
1725  );
1726  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('inline')->toArray());
1727  }
1728 
1729  #[Test]
1731  {
1733  ‪$GLOBALS['TCA']['aTable']['columns']['number'] = [
1734  'label' => 'aLabel',
1735  'config' => [
1736  'type' => 'number',
1737  'format' => 'decimal',
1738  ],
1739  ];
1740  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
1741  $expectedColumn = new Column(
1742  '`number`',
1743  Type::getType('decimal'),
1744  [
1745  'default' => 0.00,
1746  'notnull' => true,
1747  'precision' => 10,
1748  'scale' => 2,
1749  ]
1750  );
1751  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('number')->toArray());
1752  }
1753 
1754  #[Test]
1756  {
1757  $this->‪mockDefaultConnectionPlatformInConnectionPool(SQLitePlatform::class);
1758  ‪$GLOBALS['TCA']['aTable']['columns']['number'] = [
1759  'label' => 'aLabel',
1760  'config' => [
1761  'type' => 'number',
1762  'format' => 'decimal',
1763  ],
1764  ];
1765  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
1766  $expectedColumn = new Column(
1767  '`number`',
1768  Type::getType('string'),
1769  [
1770  'default' => '0.00',
1771  'notnull' => true,
1772  'length' => 255,
1773  ]
1774  );
1775  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('number')->toArray());
1776  }
1777 
1778  #[Test]
1779  public function ‪enrichAddsNumberAsInteger(): void
1780  {
1782  ‪$GLOBALS['TCA']['aTable']['columns']['number'] = [
1783  'label' => 'aLabel',
1784  'config' => [
1785  'type' => 'number',
1786  'format' => 'integer',
1787  ],
1788  ];
1789  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
1790  $expectedColumn = new Column(
1791  '`number`',
1792  Type::getType('integer'),
1793  [
1794  'default' => 0,
1795  'notnull' => true,
1796  ]
1797  );
1798  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('number')->toArray());
1799  }
1800 
1801  #[Test]
1803  {
1805  ‪$GLOBALS['TCA']['aTable']['columns']['number'] = [
1806  'label' => 'aLabel',
1807  'config' => [
1808  'type' => 'number',
1809  ],
1810  ];
1811  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
1812  $expectedColumn = new Column(
1813  '`number`',
1814  Type::getType('integer'),
1815  [
1816  'default' => 0,
1817  'notnull' => true,
1818  ]
1819  );
1820  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('number')->toArray());
1821  }
1822 
1823  #[Test]
1825  {
1827  ‪$GLOBALS['TCA']['aTable']['columns']['number'] = [
1828  'label' => 'aLabel',
1829  'config' => [
1830  'type' => 'number',
1831  'nullable' => true,
1832  ],
1833  ];
1834  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
1835  $expectedColumn = new Column(
1836  '`number`',
1837  Type::getType('integer'),
1838  [
1839  'default' => null,
1840  'notnull' => false,
1841  'unsigned' => false,
1842  ]
1843  );
1844  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('number')->toArray());
1845  }
1846 
1847  #[Test]
1849  {
1851  ‪$GLOBALS['TCA']['aTable']['columns']['number'] = [
1852  'label' => 'aLabel',
1853  'config' => [
1854  'type' => 'number',
1855  'range' => [
1856  'lower' => 0,
1857  ],
1858  ],
1859  ];
1860  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
1861  $expectedColumn = new Column(
1862  '`number`',
1863  Type::getType('integer'),
1864  [
1865  'default' => 0,
1866  'notnull' => true,
1867  'unsigned' => true,
1868  ]
1869  );
1870  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('number')->toArray());
1871  }
1872 
1873  #[Test]
1875  {
1877  ‪$GLOBALS['TCA']['aTable']['columns']['number'] = [
1878  'label' => 'aLabel',
1879  'config' => [
1880  'type' => 'number',
1881  'range' => [
1882  'lower' => -1,
1883  ],
1884  ],
1885  ];
1886  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
1887  $expectedColumn = new Column(
1888  '`number`',
1889  Type::getType('integer'),
1890  [
1891  'default' => 0,
1892  'notnull' => true,
1893  'unsigned' => false,
1894  ]
1895  );
1896  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('number')->toArray());
1897  }
1898 
1899  #[Test]
1900  public function ‪enrichAddsSelectText(): void
1901  {
1903  ‪$GLOBALS['TCA']['aTable']['columns']['select'] = [
1904  'label' => 'aLabel',
1905  'config' => [
1906  'type' => 'select',
1907  'renderType' => 'selectMultipleSideBySide',
1908  'items' => [
1909  [
1910  'label' => 'someLabel',
1911  'value' => 'someValue',
1912  ],
1913  ],
1914  ],
1915  ];
1916  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
1917  $expectedColumn = new Column(
1918  '`select`',
1919  Type::getType('text'),
1920  [
1921  'notnull' => false,
1922  ]
1923  );
1924  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('select')->toArray());
1925  }
1926 
1927  #[Test]
1929  {
1931  ‪$GLOBALS['TCA']['aTable']['columns']['select'] = [
1932  'label' => 'aLabel',
1933  'config' => [
1934  'type' => 'select',
1935  'itemsProcFunc' => 'Foo->bar',
1936  ],
1937  ];
1938  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
1939  $expectedColumn = new Column(
1940  '`select`',
1941  Type::getType('text'),
1942  [
1943  'notnull' => false,
1944  ]
1945  );
1946  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('select')->toArray());
1947  }
1948 
1949  #[Test]
1951  {
1953  ‪$GLOBALS['TCA']['aTable']['columns']['select'] = [
1954  'label' => 'aLabel',
1955  'config' => [
1956  'type' => 'select',
1957  'renderType' => 'selectSingle',
1958  ],
1959  ];
1960  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
1961  $expectedColumn = new Column(
1962  '`select`',
1963  Type::getType('string'),
1964  [
1965  'notnull' => true,
1966  'default' => '',
1967  'length' => 255,
1968  ]
1969  );
1970  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('select')->toArray());
1971  }
1972 
1973  #[Test]
1975  {
1977  ‪$GLOBALS['TCA']['aTable']['columns']['select'] = [
1978  'label' => 'aLabel',
1979  'config' => [
1980  'type' => 'select',
1981  'renderType' => 'selectMultipleSideBySide',
1982  ],
1983  ];
1984  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
1985  $expectedColumn = new Column(
1986  '`select`',
1987  Type::getType('string'),
1988  [
1989  'notnull' => false,
1990  'default' => '',
1991  'length' => 255,
1992  ]
1993  );
1994  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('select')->toArray());
1995  }
1996 
1997  #[Test]
1999  {
2001  ‪$GLOBALS['TCA']['aTable']['columns']['select'] = [
2002  'label' => 'aLabel',
2003  'config' => [
2004  'type' => 'select',
2005  'renderType' => 'selectMultipleSideBySide',
2006  'dbFieldLength' => 15,
2007  ],
2008  ];
2009  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
2010  $expectedColumn = new Column(
2011  '`select`',
2012  Type::getType('string'),
2013  [
2014  'notnull' => false,
2015  'default' => '',
2016  'length' => 15,
2017  ]
2018  );
2019  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('select')->toArray());
2020  }
2021 
2022  #[Test]
2024  {
2026  ‪$GLOBALS['TCA']['aTable']['columns']['select'] = [
2027  'label' => 'aLabel',
2028  'config' => [
2029  'type' => 'select',
2030  'renderType' => 'selectSingle',
2031  'MM' => 'aTable',
2032  ],
2033  ];
2034  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
2035  $expectedColumn = new Column(
2036  '`select`',
2037  Type::getType('integer'),
2038  [
2039  'notnull' => true,
2040  'default' => 0,
2041  'unsigned' => true,
2042  ]
2043  );
2044  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('select')->toArray());
2045  }
2046 
2047  #[Test]
2049  {
2051  ‪$GLOBALS['TCA']['aTable']['columns']['select'] = [
2052  'label' => 'aLabel',
2053  'config' => [
2054  'type' => 'select',
2055  'renderType' => 'selectSingle',
2056  'foreign_table' => 'aTable',
2057  ],
2058  ];
2059  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
2060  $expectedColumn = new Column(
2061  '`select`',
2062  Type::getType('integer'),
2063  [
2064  'notnull' => true,
2065  'default' => 0,
2066  'unsigned' => true,
2067  ]
2068  );
2069  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('select')->toArray());
2070  }
2071 
2072  #[Test]
2074  {
2076  ‪$GLOBALS['TCA']['aTable']['columns']['select'] = [
2077  'label' => 'aLabel',
2078  'config' => [
2079  'type' => 'select',
2080  'renderType' => 'selectSingle',
2081  'foreign_table' => 'aTable',
2082  'items' => [
2083  [
2084  'label' => 'someLabel',
2085  'value' => 17,
2086  ],
2087  ],
2088  ],
2089  ];
2090  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
2091  $expectedColumn = new Column(
2092  '`select`',
2093  Type::getType('integer'),
2094  [
2095  'notnull' => true,
2096  'default' => 0,
2097  'unsigned' => true,
2098  ]
2099  );
2100  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('select')->toArray());
2101  }
2102 
2103  #[Test]
2105  {
2107  ‪$GLOBALS['TCA']['aTable']['columns']['select'] = [
2108  'label' => 'aLabel',
2109  'config' => [
2110  'type' => 'select',
2111  'renderType' => 'selectSingle',
2112  'foreign_table' => 'aTable',
2113  'items' => [
2114  [
2115  'label' => 'someLabel',
2116  'value' => -17,
2117  ],
2118  ],
2119  ],
2120  ];
2121  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
2122  $expectedColumn = new Column(
2123  '`select`',
2124  Type::getType('integer'),
2125  [
2126  'notnull' => true,
2127  'default' => 0,
2128  'unsigned' => false,
2129  ]
2130  );
2131  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('select')->toArray());
2132  }
2133 
2134  #[Test]
2136  {
2138  ‪$GLOBALS['TCA']['aTable']['columns']['select'] = [
2139  'label' => 'aLabel',
2140  'config' => [
2141  'type' => 'select',
2142  'renderType' => 'selectSingle',
2143  'foreign_table' => 'aTable',
2144  'items' => [
2145  [
2146  'label' => 'someLabel',
2147  'value' => 'someValue',
2148  ],
2149  ],
2150  ],
2151  ];
2152  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
2153  $expectedColumn = new Column(
2154  '`select`',
2155  Type::getType('string'),
2156  [
2157  'notnull' => true,
2158  'default' => '',
2159  'length' => 255,
2160  ]
2161  );
2162  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('select')->toArray());
2163  }
2164 
2165  #[Test]
2167  {
2169  ‪$GLOBALS['TCA']['aTable']['columns']['select'] = [
2170  'label' => 'aLabel',
2171  'config' => [
2172  'type' => 'select',
2173  'renderType' => 'selectSingleBox',
2174  'foreign_table' => 'aTable',
2175  'items' => [
2176  [
2177  'label' => 'someLabel',
2178  'value' => '35',
2179  ],
2180  ],
2181  ],
2182  ];
2183  $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
2184  $expectedColumn = new Column(
2185  '`select`',
2186  Type::getType('string'),
2187  [
2188  'notnull' => false,
2189  'default' => '',
2190  'length' => 255,
2191  ]
2192  );
2193  self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('select')->toArray());
2194  }
2195 
2196  private function ‪mockDefaultConnectionPlatformInConnectionPool(string $databasePlatformClass = MariaDBPlatform::class): void
2197  {
2198  $connectionPool = $this->getMockBuilder(ConnectionPool::class)->onlyMethods(['getConnectionForTable'])->getMock();
2199  $mariaDbConnection = $this->getMockBuilder($databasePlatformClass)->getMock();
2200  $connection = $this->getMockBuilder(Connection::class)->disableOriginalConstructor()->getMock();
2201  $connection->expects(self::any())->method('getDatabasePlatform')->willReturn($mariaDbConnection);
2202  $connectionPool->expects(self::any())->method('getConnectionForTable')->willReturn($connection);
2203  GeneralUtility::addInstance(ConnectionPool::class, $connectionPool);
2204  }
2205 }
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsGroup
‪enrichAddsGroup()
Definition: DefaultTcaSchemaTest.php:1161
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsL10nDiffsource
‪enrichAddsL10nDiffsource()
Definition: DefaultTcaSchemaTest.php:508
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsSimpleMmForSelect
‪enrichAddsSimpleMmForSelect()
Definition: DefaultTcaSchemaTest.php:754
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsInlineWithMMSet
‪enrichAddsInlineWithMMSet()
Definition: DefaultTcaSchemaTest.php:1608
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichDoesNotAddL10nStateIfTransOrigPointerFieldIsNotDefined
‪enrichDoesNotAddL10nStateIfTransOrigPointerFieldIsNotDefined()
Definition: DefaultTcaSchemaTest.php:478
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsSelectSingleWithMMTable
‪enrichAddsSelectSingleWithMMTable()
Definition: DefaultTcaSchemaTest.php:2023
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsStarttime
‪enrichAddsStarttime()
Definition: DefaultTcaSchemaTest.php:201
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsParentKeyWithDisabled
‪enrichAddsParentKeyWithDisabled()
Definition: DefaultTcaSchemaTest.php:303
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichDoesNotAddL10nStateIfLanguageFieldIsNotDefined
‪enrichDoesNotAddL10nStateIfLanguageFieldIsNotDefined()
Definition: DefaultTcaSchemaTest.php:467
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsT3verState
‪enrichAddsT3verState()
Definition: DefaultTcaSchemaTest.php:564
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsFegroup
‪enrichAddsFegroup()
Definition: DefaultTcaSchemaTest.php:243
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichThrowsIfTcaTableIsNotDefinedInIncomingSet
‪enrichThrowsIfTcaTableIsNotDefinedInIncomingSet()
Definition: DefaultTcaSchemaTest.php:56
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsSelectSingleWithOnlyForeignTable
‪enrichAddsSelectSingleWithOnlyForeignTable()
Definition: DefaultTcaSchemaTest.php:2048
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichKeepsGivenTablesArrayWithEmptyTca
‪enrichKeepsGivenTablesArrayWithEmptyTca()
Definition: DefaultTcaSchemaTest.php:49
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsRadioSmallInt
‪enrichAddsRadioSmallInt()
Definition: DefaultTcaSchemaTest.php:1490
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsNumberWithoutFormatAsInteger
‪enrichAddsNumberWithoutFormatAsInteger()
Definition: DefaultTcaSchemaTest.php:1802
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsT3verWsid
‪enrichAddsT3verWsid()
Definition: DefaultTcaSchemaTest.php:545
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsDeleted
‪enrichAddsDeleted()
Definition: DefaultTcaSchemaTest.php:161
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsMmWithUidWhenMultipleIsSet
‪enrichAddsMmWithUidWhenMultipleIsSet()
Definition: DefaultTcaSchemaTest.php:819
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsCrdate
‪enrichAddsCrdate()
Definition: DefaultTcaSchemaTest.php:142
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsColor
‪enrichAddsColor()
Definition: DefaultTcaSchemaTest.php:1293
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema
Definition: ConnectionMigratorTest.php:18
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsT3verOidIndex
‪enrichAddsT3verOidIndex()
Definition: DefaultTcaSchemaTest.php:743
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsNumberWithoutFormatAsIntegerWithLowerRangePositive
‪enrichAddsNumberWithoutFormatAsIntegerWithLowerRangePositive()
Definition: DefaultTcaSchemaTest.php:1848
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsSelectTextWithoutAnyItemsOrTable
‪enrichAddsSelectTextWithoutAnyItemsOrTable()
Definition: DefaultTcaSchemaTest.php:1974
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsT3origUid
‪enrichAddsT3origUid()
Definition: DefaultTcaSchemaTest.php:489
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsLinkNullable
‪enrichAddsLinkNullable()
Definition: DefaultTcaSchemaTest.php:1584
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichDoesNotAddL10nParentIfLanguageFieldIsNotDefined
‪enrichDoesNotAddL10nParentIfLanguageFieldIsNotDefined()
Definition: DefaultTcaSchemaTest.php:369
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsGroupWithMM
‪enrichAddsGroupWithMM()
Definition: DefaultTcaSchemaTest.php:1182
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsPasswordNullable
‪enrichAddsPasswordNullable()
Definition: DefaultTcaSchemaTest.php:1270
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsSelectSingleWithForeignTableAndIntegerItems
‪enrichAddsSelectSingleWithForeignTableAndIntegerItems()
Definition: DefaultTcaSchemaTest.php:2073
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsNullableEmail
‪enrichAddsNullableEmail()
Definition: DefaultTcaSchemaTest.php:1049
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\$subject
‪DefaultTcaSchema $subject
Definition: DefaultTcaSchemaTest.php:38
‪TYPO3\CMS\Core\Database\Platform\SQLitePlatform
Definition: SQLitePlatform.php:31
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsColorNullable
‪enrichAddsColorNullable()
Definition: DefaultTcaSchemaTest.php:1316
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsFile
‪enrichAddsFile()
Definition: DefaultTcaSchemaTest.php:1003
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsParentKey
‪enrichAddsParentKey()
Definition: DefaultTcaSchemaTest.php:283
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsDescription
‪enrichAddsDescription()
Definition: DefaultTcaSchemaTest.php:380
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsText
‪enrichAddsText()
Definition: DefaultTcaSchemaTest.php:1227
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\$defaultTable
‪Table $defaultTable
Definition: DefaultTcaSchemaTest.php:39
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsMmWithTablenamesAndFieldname
‪enrichAddsMmWithTablenamesAndFieldname()
Definition: DefaultTcaSchemaTest.php:894
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsNumberWithoutFormatAsIntegerWithLowerRangeNegative
‪enrichAddsNumberWithoutFormatAsIntegerWithLowerRangeNegative()
Definition: DefaultTcaSchemaTest.php:1874
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsShortLifeTimerangeDatefield
‪enrichAddsShortLifeTimerangeDatefield()
Definition: DefaultTcaSchemaTest.php:631
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsRadioString
‪enrichAddsRadioString()
Definition: DefaultTcaSchemaTest.php:1340
‪TYPO3\CMS\Core\Database\Schema\DefaultTcaSchema
Definition: DefaultTcaSchema.php:43
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsDisabled
‪enrichAddsDisabled()
Definition: DefaultTcaSchemaTest.php:180
‪TYPO3\CMS\Core\Database\Platform\MariaDBPlatform
Definition: MariaDBPlatform.php:34
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsLink
‪enrichAddsLink()
Definition: DefaultTcaSchemaTest.php:1562
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsEmail
‪enrichAddsEmail()
Definition: DefaultTcaSchemaTest.php:1026
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsEndtime
‪enrichAddsEndtime()
Definition: DefaultTcaSchemaTest.php:222
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsSelectSingleWithForeignTableAndStringItems
‪enrichAddsSelectSingleWithForeignTableAndStringItems()
Definition: DefaultTcaSchemaTest.php:2135
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsRadioInt
‪enrichAddsRadioInt()
Definition: DefaultTcaSchemaTest.php:1526
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsParentKeyWithDelete
‪enrichAddsParentKeyWithDelete()
Definition: DefaultTcaSchemaTest.php:292
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsSelectMultipleWithForeignTableAndIntItems
‪enrichAddsSelectMultipleWithForeignTableAndIntItems()
Definition: DefaultTcaSchemaTest.php:2166
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsInlineWithForeignFieldSet
‪enrichAddsInlineWithForeignFieldSet()
Definition: DefaultTcaSchemaTest.php:1633
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsSelectSingleWithForeignTableAndSignedIntegerItems
‪enrichAddsSelectSingleWithForeignTableAndSignedIntegerItems()
Definition: DefaultTcaSchemaTest.php:2104
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsSorting
‪enrichAddsSorting()
Definition: DefaultTcaSchemaTest.php:264
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsL10nSource
‪enrichAddsL10nSource()
Definition: DefaultTcaSchemaTest.php:417
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsInlineWithForeignFieldAndChildRelationSet
‪enrichAddsInlineWithForeignFieldAndChildRelationSet()
Definition: DefaultTcaSchemaTest.php:1658
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsLargeFutureTimerangeDatefield
‪enrichAddsLargeFutureTimerangeDatefield()
Definition: DefaultTcaSchemaTest.php:685
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsT3verStage
‪enrichAddsT3verStage()
Definition: DefaultTcaSchemaTest.php:583
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsUidAndPrimaryKey
‪enrichAddsUidAndPrimaryKey()
Definition: DefaultTcaSchemaTest.php:87
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsSysLanguageUid
‪enrichAddsSysLanguageUid()
Definition: DefaultTcaSchemaTest.php:330
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsL10nState
‪enrichAddsL10nState()
Definition: DefaultTcaSchemaTest.php:448
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsNumberAsInteger
‪enrichAddsNumberAsInteger()
Definition: DefaultTcaSchemaTest.php:1779
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsSelectVarcharWhenSelectSingleAndNoItems
‪enrichAddsSelectVarcharWhenSelectSingleAndNoItems()
Definition: DefaultTcaSchemaTest.php:1950
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsSlug
‪enrichAddsSlug()
Definition: DefaultTcaSchemaTest.php:980
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsRadioStringVerifyThatCorrectLoopIsContinued
‪enrichAddsRadioStringVerifyThatCorrectLoopIsContinued()
Definition: DefaultTcaSchemaTest.php:1373
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsRadioStringWhenNoItemsOrUserFuncAreSet
‪enrichAddsRadioStringWhenNoItemsOrUserFuncAreSet()
Definition: DefaultTcaSchemaTest.php:1432
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsLargePastTimerangeDatefield
‪enrichAddsLargePastTimerangeDatefield()
Definition: DefaultTcaSchemaTest.php:714
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsInlineWithoutRelationTableSet
‪enrichAddsInlineWithoutRelationTableSet()
Definition: DefaultTcaSchemaTest.php:1706
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsFolder
‪enrichAddsFolder()
Definition: DefaultTcaSchemaTest.php:1096
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsL10nParent
‪enrichAddsL10nParent()
Definition: DefaultTcaSchemaTest.php:349
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsLanguage
‪enrichAddsLanguage()
Definition: DefaultTcaSchemaTest.php:1138
‪TYPO3\CMS\Core\Database\Connection
Definition: Connection.php:41
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsParentKeyInCorrectOrder
‪enrichAddsParentKeyInCorrectOrder()
Definition: DefaultTcaSchemaTest.php:316
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsNumberAsDecimalForSqlite
‪enrichAddsNumberAsDecimalForSqlite()
Definition: DefaultTcaSchemaTest.php:1755
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsCheck
‪enrichAddsCheck()
Definition: DefaultTcaSchemaTest.php:1073
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:25
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichDoesNotAddL10nSourceIfLanguageFieldIsNotDefined
‪enrichDoesNotAddL10nSourceIfLanguageFieldIsNotDefined()
Definition: DefaultTcaSchemaTest.php:437
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsLifeTimerangeDatefield
‪enrichAddsLifeTimerangeDatefield()
Definition: DefaultTcaSchemaTest.php:602
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichDoesNotAddColumnIfExists
‪enrichDoesNotAddColumnIfExists()
Definition: DefaultTcaSchemaTest.php:67
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsSelectText
‪enrichAddsSelectText()
Definition: DefaultTcaSchemaTest.php:1900
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsRadioStringWhenItemsProcFuncSet
‪enrichAddsRadioStringWhenItemsProcFuncSet()
Definition: DefaultTcaSchemaTest.php:1456
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsImageManipulation
‪enrichAddsImageManipulation()
Definition: DefaultTcaSchemaTest.php:1117
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsDefaultTimerangeDatefield
‪enrichAddsDefaultTimerangeDatefield()
Definition: DefaultTcaSchemaTest.php:660
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsPid
‪enrichAddsPid()
Definition: DefaultTcaSchemaTest.php:106
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsT3verOid
‪enrichAddsT3verOid()
Definition: DefaultTcaSchemaTest.php:526
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsNumberAsDecimalForNonSqlite
‪enrichAddsNumberAsDecimalForNonSqlite()
Definition: DefaultTcaSchemaTest.php:1730
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsEditlock
‪enrichAddsEditlock()
Definition: DefaultTcaSchemaTest.php:398
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsSelectTextWithItemProcFunc
‪enrichAddsSelectTextWithItemProcFunc()
Definition: DefaultTcaSchemaTest.php:1928
‪TYPO3\CMS\Core\Database\ConnectionPool
Definition: ConnectionPool.php:46
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsTstamp
‪enrichAddsTstamp()
Definition: DefaultTcaSchemaTest.php:123
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsPassword
‪enrichAddsPassword()
Definition: DefaultTcaSchemaTest.php:1248
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:52
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest
Definition: DefaultTcaSchemaTest.php:37
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsSelectStringWithLengthWithoutAnyItemsOrTable
‪enrichAddsSelectStringWithLengthWithoutAnyItemsOrTable()
Definition: DefaultTcaSchemaTest.php:1998
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsNumberWithoutFormatAsIntegerWithNullable
‪enrichAddsNumberWithoutFormatAsIntegerWithNullable()
Definition: DefaultTcaSchemaTest.php:1824
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\setUp
‪setUp()
Definition: DefaultTcaSchemaTest.php:41
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\enrichAddsFlex
‪enrichAddsFlex()
Definition: DefaultTcaSchemaTest.php:1206
‪TYPO3\CMS\Core\Tests\Unit\Database\Schema\DefaultTcaSchemaTest\mockDefaultConnectionPlatformInConnectionPool
‪mockDefaultConnectionPlatformInConnectionPool(string $databasePlatformClass=MariaDBPlatform::class)
Definition: DefaultTcaSchemaTest.php:2196