‪TYPO3CMS  ‪main
RichtextTest.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 PHPUnit\Framework\Attributes\DataProvider;
21 use PHPUnit\Framework\Attributes\Test;
23 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
24 
25 final class ‪RichtextTest extends UnitTestCase
26 {
27  #[Test]
29  {
30  $fieldConfig = [
31  'type' => 'text',
32  'enableRichtext' => true,
33  ];
34  $pageTsConfig = [
35  'classes.' => [
36  'aClass' => 'aConfig',
37  ],
38  'default.' => [
39  'removeComments' => '1',
40  ],
41  'config.' => [
42  'aTable.' => [
43  'aField.' => [
44  'types.' => [
45  'textmedia.' => [
46  'proc.' => [
47  'overruleMode' => 'myTransformation',
48  ],
49  ],
50  ],
51  ],
52  ],
53  ],
54  ];
55  $expected = [
56  'classes.' => [
57  'aClass' => 'aConfig',
58  ],
59  'removeComments' => '1',
60  'proc.' => [
61  'overruleMode' => 'myTransformation',
62  ],
63  'preset' => 'default',
64  'classes' => [
65  'aClass' => 'aConfig',
66  ],
67  'proc' => [
68  'overruleMode' => 'myTransformation',
69  ],
70  ];
71  // Accessible mock to $subject since getRtePageTsConfigOfPid calls BackendUtility::getPagesTSconfig()
72  // which can't be mocked in a sane way
73  $subject = $this->getAccessibleMock(Richtext::class, ['getRtePageTsConfigOfPid'], [], '', false);
74  $subject->expects(self::once())->method('getRtePageTsConfigOfPid')->with(42)->willReturn($pageTsConfig);
75  ‪$output = $subject->getConfiguration('aTable', 'aField', 42, 'textmedia', $fieldConfig);
76  self::assertSame($expected, ‪$output);
77  }
78 
79  #[Test]
81  {
82  $fieldConfig = [
83  'type' => 'text',
84  'enableRichtext' => true,
85  ];
86  $pageTsConfig = [
87  'classes.' => [
88  'aClass' => 'aConfig',
89  ],
90  'default.' => [
91  'removeComments' => '1',
92  ],
93  'config.' => [
94  'aTable.' => [
95  'aField.' => [
96  'proc.' => [
97  'overruleMode' => 'myTransformation',
98  ],
99  ],
100  ],
101  ],
102  ];
103  $expected = [
104  'classes.' => [
105  'aClass' => 'aConfig',
106  ],
107  'removeComments' => '1',
108  'proc.' => [
109  'overruleMode' => 'myTransformation',
110  ],
111  'preset' => 'default',
112  'classes' => [
113  'aClass' => 'aConfig',
114  ],
115  'proc' => [
116  'overruleMode' => 'myTransformation',
117  ],
118  ];
119  // Accessible mock to $subject since getRtePageTsConfigOfPid calls BackendUtility::getPagesTSconfig()
120  // which can't be mocked in a sane way
121  $subject = $this->getAccessibleMock(Richtext::class, ['getRtePageTsConfigOfPid'], [], '', false);
122  $subject->expects(self::once())->method('getRtePageTsConfigOfPid')->with(42)->willReturn($pageTsConfig);
123  ‪$output = $subject->getConfiguration('aTable', 'aField', 42, 'textmedia', $fieldConfig);
124  self::assertSame($expected, ‪$output);
125  }
126 
127  #[Test]
129  {
130  $fieldConfig = [
131  'type' => 'text',
132  'enableRichtext' => true,
133  ];
134  $pageTsConfig = [
135  'classes.' => [
136  'aClass' => 'aConfig',
137  ],
138  'default.' => [
139  'removeComments' => '1',
140  ],
141  ];
142  $expected = [
143  'classes.' => [
144  'aClass' => 'aConfig',
145  ],
146  'removeComments' => '1',
147  'preset' => 'default',
148  'classes' => [
149  'aClass' => 'aConfig',
150  ],
151  'proc.' => [
152  'overruleMode' => 'default',
153  ],
154  ];
155  // Accessible mock to $subject since getRtePageTsConfigOfPid calls BackendUtility::getPagesTSconfig()
156  // which can't be mocked in a sane way
157  $subject = $this->getAccessibleMock(Richtext::class, ['getRtePageTsConfigOfPid'], [], '', false);
158  $subject->expects(self::once())->method('getRtePageTsConfigOfPid')->with(42)->willReturn($pageTsConfig);
159  ‪$output = $subject->getConfiguration('aTable', 'aField', 42, 'textmedia', $fieldConfig);
160  self::assertSame($expected, ‪$output);
161  }
162 
163  #[Test]
165  {
166  $fieldConfig = [
167  'type' => 'text',
168  'enableRichtext' => true,
169  ];
170  $pageTsConfig = [
171  'classes.' => [
172  'aClass' => 'aConfig',
173  ],
174  'default.' => [
175  'classes.' => [
176  'aClass' => 'anotherConfig',
177  ],
178  'editor.' => [
179  'config.' => [
180  'contentsCss.' => [
181  '0' => 'my.css',
182  ],
183  ],
184  ],
185  ],
186  ];
187  $expected = [
188  'classes.' => [
189  'aClass' => 'anotherConfig',
190  ],
191  'editor.' => [
192  'config.' => [
193  'contentsCss.' => [
194  '0' => 'my.css',
195  ],
196  ],
197  ],
198  'preset' => 'default',
199  'classes' => [
200  'aClass' => 'anotherConfig',
201  ],
202  'editor' => [
203  'config' => [
204  'alignment' => [
205  'options' => [
206  ['name' => 'left', 'className' => 'text-start'],
207  ['name' => 'center', 'className' => 'text-center'],
208  ['name' => 'right', 'className' => 'text-end'],
209  ['name' => 'justify', 'className' => 'text-justify'],
210  ],
211  ],
212  'contentsCss' => [
213  'my.css',
214  ],
215  'toolbar' => [
216  'items' => [
217  'softhyphen',
218  ],
219  'removeItems' => [],
220  'shouldNotGroupWhenFull' => true,
221  ],
222  'wordCount' => [
223  'displayCharacters' => true,
224  'displayWords' => true,
225  ],
226  ],
227  ],
228  'proc.' => [
229  'overruleMode' => 'default',
230  ],
231  ];
232  // Accessible mock to $subject since getRtePageTsConfigOfPid calls BackendUtility::getPagesTSconfig()
233  // which can't be mocked in a sane way
234  $subject = $this->getAccessibleMock(Richtext::class, ['getRtePageTsConfigOfPid'], [], '', false);
235  $subject->expects(self::once())->method('getRtePageTsConfigOfPid')->with(42)->willReturn($pageTsConfig);
236  ‪$output = $subject->getConfiguration('aTable', 'aField', 42, 'textmedia', $fieldConfig);
237  self::assertSame($expected, ‪$output);
238  }
239 
240  #[Test]
242  {
243  $fieldConfig = [
244  'type' => 'text',
245  'enableRichtext' => true,
246  ];
247  $pageTsConfig = [
248  'classes.' => [
249  'aClass' => 'aConfig',
250  ],
251  'default.' => [
252  'classes.' => [
253  'aClass' => 'anotherConfig',
254  ],
255  ],
256  'config.' => [
257  'aTable.' => [
258  'aField.' => [
259  'classes.' => [
260  'aClass' => 'aThirdConfig',
261  ],
262  'editor.' => [
263  'config.' => [
264  'contentsCss.' => [
265  '0' => 'my.css',
266  ],
267  ],
268  ],
269  ],
270  ],
271  ],
272  ];
273  $expected = [
274  // Config with pagets dots
275  'classes.' => [
276  'aClass' => 'aThirdConfig',
277  ],
278  'editor.' => [
279  'config.' => [
280  'contentsCss.' => [
281  '0' => 'my.css',
282  ],
283  ],
284  ],
285  'preset' => 'default',
286  // Config without pagets dots
287  'classes' => [
288  'aClass' => 'aThirdConfig',
289  ],
290  'editor' => [
291  'config' => [
292  'alignment' => [
293  'options' => [
294  ['name' => 'left', 'className' => 'text-start'],
295  ['name' => 'center', 'className' => 'text-center'],
296  ['name' => 'right', 'className' => 'text-end'],
297  ['name' => 'justify', 'className' => 'text-justify'],
298  ],
299  ],
300  'contentsCss' => [
301  'my.css',
302  ],
303  'toolbar' => [
304  'items' => [
305  'softhyphen',
306  ],
307  'removeItems' => [],
308  'shouldNotGroupWhenFull' => true,
309  ],
310  'wordCount' => [
311  'displayCharacters' => true,
312  'displayWords' => true,
313  ],
314  ],
315  ],
316  'proc.' => [
317  'overruleMode' => 'default',
318  ],
319  ];
320  // Accessible mock to $subject since getRtePageTsConfigOfPid calls BackendUtility::getPagesTSconfig()
321  // which can't be mocked in a sane way
322  $subject = $this->getAccessibleMock(Richtext::class, ['getRtePageTsConfigOfPid'], [], '', false);
323  $subject->expects(self::once())->method('getRtePageTsConfigOfPid')->with(42)->willReturn($pageTsConfig);
324  ‪$output = $subject->getConfiguration('aTable', 'aField', 42, 'textmedia', $fieldConfig);
325  self::assertSame($expected, ‪$output);
326  }
327 
328  #[Test]
330  {
331  $fieldConfig = [
332  'type' => 'text',
333  'enableRichtext' => true,
334  ];
335  $pageTsConfig = [
336  'classes.' => [
337  'aClass' => 'aConfig',
338  ],
339  'default.' => [
340  'classes.' => [
341  'aClass' => 'anotherConfig',
342  ],
343  ],
344  'config.' => [
345  'aTable.' => [
346  'aField.' => [
347  'classes.' => [
348  'aClass' => 'aThirdConfig',
349  ],
350  'editor.' => [
351  'config.' => [
352  'contentsCss.' => [
353  '0' => 'my.css',
354  ],
355  ],
356  ],
357  'types.' => [
358  'textmedia.' => [
359  'classes.' => [
360  'aClass' => 'aTypeSpecificConfig',
361  ],
362  'editor.' => [
363  'config.' => [
364  'contentsCss.' => [
365  '0' => 'your.css',
366  ],
367  ],
368  ],
369  ],
370  ],
371  ],
372  ],
373  ],
374  ];
375  $expected = [
376  // Config with pagets dots
377  'classes.' => [
378  'aClass' => 'aTypeSpecificConfig',
379  ],
380  'editor.' => [
381  'config.' => [
382  'contentsCss.' => [
383  '0' => 'your.css',
384  ],
385  ],
386  ],
387  'preset' => 'default',
388  // Config without pagets dots
389  'classes' => [
390  'aClass' => 'aTypeSpecificConfig',
391  ],
392  'editor' => [
393  'config' => [
394  'alignment' => [
395  'options' => [
396  ['name' => 'left', 'className' => 'text-start'],
397  ['name' => 'center', 'className' => 'text-center'],
398  ['name' => 'right', 'className' => 'text-end'],
399  ['name' => 'justify', 'className' => 'text-justify'],
400  ],
401  ],
402  'contentsCss' => [
403  'your.css',
404  ],
405  'toolbar' => [
406  'items' => [
407  'softhyphen',
408  ],
409  'removeItems' => [],
410  'shouldNotGroupWhenFull' => true,
411  ],
412  'wordCount' => [
413  'displayCharacters' => true,
414  'displayWords' => true,
415  ],
416  ],
417  ],
418  'proc.' => [
419  'overruleMode' => 'default',
420  ],
421  ];
422  // Accessible mock to $subject since getRtePageTsConfigOfPid calls BackendUtility::getPagesTSconfig()
423  // which can't be mocked in a sane way
424  $subject = $this->getAccessibleMock(Richtext::class, ['getRtePageTsConfigOfPid'], [], '', false);
425  $subject->expects(self::once())->method('getRtePageTsConfigOfPid')->with(42)->willReturn($pageTsConfig);
426  ‪$output = $subject->getConfiguration('aTable', 'aField', 42, 'textmedia', $fieldConfig);
427  self::assertSame($expected, ‪$output);
428  }
429 
430  #[Test]
432  {
433  $pageId = 42;
434  $presetKey = 'default';
435 
436  $preset = [
437  'editor' => [
438  'config' => [
439  'width' => 100,
440  ],
441  ],
442  ];
443 
444  $pageTsConfigArray = [
445  'preset' => $presetKey,
446  'editor.' => [
447  'config.' => [
448  'width' => 200,
449  ],
450  ],
451  ];
452 
453  $subject = $this->getAccessibleMock(
454  Richtext::class,
455  ['loadConfigurationFromPreset', 'getRtePageTsConfigOfPid'],
456  [],
457  '',
458  false
459  );
460  $subject->expects(self::once())->method('loadConfigurationFromPreset')->with($presetKey)->willReturn($preset);
461  $subject->expects(self::once())->method('getRtePageTsConfigOfPid')->with($pageId)->willReturn($pageTsConfigArray);
462 
463  ‪$output = $subject->getConfiguration('tt_content', 'bodytext', $pageId, 'textmedia', $pageTsConfigArray);
464 
465  $expected = [
466  'editor' => [
467  'config' => [
468  'alignment' => [
469  'options' => [
470  ['name' => 'left', 'className' => 'text-start'],
471  ['name' => 'center', 'className' => 'text-center'],
472  ['name' => 'right', 'className' => 'text-end'],
473  ['name' => 'justify', 'className' => 'text-justify'],
474  ],
475  ],
476  'toolbar' => [
477  'items' => [
478  'softhyphen',
479  ],
480  'removeItems' => [],
481  'shouldNotGroupWhenFull' => true,
482  ],
483  'width' => 200,
484  'wordCount' => [
485  'displayCharacters' => true,
486  'displayWords' => true,
487  ],
488  ],
489  ],
490  'editor.' => [
491  'config.' => [
492  'width' => 200,
493  ],
494  ],
495  'preset' => 'default',
496  'proc.' => [
497  'overruleMode' => 'default',
498  ],
499  ];
500 
501  self::assertSame($expected, ‪$output);
502  }
503 
505  {
506  return [
507  [
508  'fieldConfig' => [
509  'type' => 'text',
510  'enableRichtext' => true,
511  'richtextConfiguration' => 'testRteConfigTca',
512  ],
513  'pageTsConfig' => [
514  'classes.' => [
515  'aClass' => 'aConfig',
516  ],
517  'default.' => [
518  'preset' => 'testRteConfigTsconfigDefault',
519  ],
520  'config.' => [
521  'aTable.' => [
522  'aField.' => [
523  'preset' => 'testRteConfigTsconfigAField',
524  ],
525  ],
526  ],
527  ],
528  'expected' => [
529  'classes.' => [
530  'aClass' => 'aConfig',
531  ],
532  'preset' => 'testRteConfigTsconfigAField',
533  'classes' => [
534  'aClass' => 'aConfig',
535  ],
536  'proc.' => [
537  'overruleMode' => 'default',
538  ],
539  ],
540  'message' => 'Preset of testRteConfig* in three place TCA',
541  ],
542  [
543  'fieldConfig' => [
544  'type' => 'text',
545  'enableRichtext' => true,
546  ],
547  'pageTsConfig' => [
548  'classes.' => [
549  'aClass' => 'aConfig',
550  ],
551  'default.' => [
552  'preset' => 'testRteConfigTsconfigDefault',
553  ],
554  'config.' => [
555  'aTable.' => [
556  'aField.' => [
557  'preset' => 'testRteConfigTsconfigAField',
558  ],
559  ],
560  ],
561  ],
562  'expected' => [
563  'classes.' => [
564  'aClass' => 'aConfig',
565  ],
566  'preset' => 'testRteConfigTsconfigAField',
567  'classes' => [
568  'aClass' => 'aConfig',
569  ],
570  'proc.' => [
571  'overruleMode' => 'default',
572  ],
573  ],
574  'message' => 'Preset of testRteConfig* in two place TCA, lowest is pagetsconfig definition for field of table',
575 
576  ],
577  [
578  'fieldConfig' => [
579  'type' => 'text',
580  'enableRichtext' => true,
581  'richtextConfiguration' => 'testRteConfigTca',
582  ],
583  'pageTsConfig' => [
584  'classes.' => [
585  'aClass' => 'aConfig',
586  ],
587  'default.' => [
588  'preset' => 'testRteConfigTsconfigDefault',
589  ],
590  ],
591  'expected' => [
592  'classes.' => [
593  'aClass' => 'aConfig',
594  ],
595  'preset' => 'testRteConfigTca',
596  'classes' => [
597  'aClass' => 'aConfig',
598  ],
599  'proc.' => [
600  'overruleMode' => 'default',
601  ],
602  ],
603  'message' => 'Preset of testRteConfig* in two place TCA, lowest is definition in tca',
604 
605  ],
606  [
607  'fieldConfig' => [
608  'type' => 'text',
609  'enableRichtext' => true,
610  'richtextConfiguration' => 'testRteConfigTca',
611  ],
612  'pageTsConfig' => [
613  'classes.' => [
614  'aClass' => 'aConfig',
615  ],
616  ],
617  'expected' => [
618  'classes.' => [
619  'aClass' => 'aConfig',
620  ],
621  'preset' => 'testRteConfigTca',
622  'classes' => [
623  'aClass' => 'aConfig',
624  ],
625  'proc.' => [
626  'overruleMode' => 'default',
627  ],
628  ],
629  'message' => 'single Preset of testRteConfig* defined in TCA',
630 
631  ],
632  [
633  'fieldConfig' => [
634  'type' => 'text',
635  'enableRichtext' => true,
636  ],
637  'pageTsConfig' => [
638  'classes.' => [
639  'aClass' => 'aConfig',
640  ],
641  'default.' => [
642  'preset' => 'testRteConfigTsconfigDefault',
643  ],
644  ],
645  'expected' => [
646  'classes.' => [
647  'aClass' => 'aConfig',
648  ],
649  'preset' => 'testRteConfigTsconfigDefault',
650  'classes' => [
651  'aClass' => 'aConfig',
652  ],
653  'proc.' => [
654  'overruleMode' => 'default',
655  ],
656  ],
657  'message' => 'single Preset of testRteConfig* defined in PageTSconfig for default of RTE',
658  ],
659  [
660  'fieldConfig' => [
661  'type' => 'text',
662  'enableRichtext' => true,
663  'richtextConfiguration' => 'testRteConfigTca',
664  ],
665  'pageTsConfig' => [
666  'classes.' => [
667  'aClass' => 'aConfig',
668  ],
669  'config.' => [
670  'aTable.' => [
671  'aField.' => [
672  'preset' => 'testRteConfigTsconfigAField',
673  ],
674  ],
675  ],
676  ],
677  'expected' => [
678  'classes.' => [
679  'aClass' => 'aConfig',
680  ],
681  'preset' => 'testRteConfigTsconfigAField',
682  'classes' => [
683  'aClass' => 'aConfig',
684  ],
685  'proc.' => [
686  'overruleMode' => 'default',
687  ],
688  ],
689  'message' => 'single Preset of testRteConfig* defined in PageTSconfig for field of table ',
690  ],
691  [
692  'fieldConfig' => [
693  'type' => 'text',
694  'enableRichtext' => true,
695  'richtextConfiguration' => 'testRteConfigTca',
696  ],
697  'pageTsConfig' => [
698  'classes.' => [
699  'aClass' => 'aConfig',
700  ],
701  'default.' => [
702  'preset' => 'testRteConfigTsconfigDefault',
703  ],
704  'config.' => [
705  'aTable.' => [
706  'aField.' => [
707  'preset' => 'testRteConfigTsconfigAField',
708  'types.' => [
709  'textmedia.' => [
710  'preset' => 'testRteConfigTsconfigATypes',
711  ],
712  ],
713  ],
714  ],
715  ],
716  ],
717  'expected' => [
718  'classes.' => [
719  'aClass' => 'aConfig',
720  ],
721  'preset' => 'testRteConfigTsconfigATypes',
722  'classes' => [
723  'aClass' => 'aConfig',
724  ],
725  'proc.' => [
726  'overruleMode' => 'default',
727  ],
728  ],
729  'message' => 'Preset of testRteConfigTsconfigA* in four place TCA',
730  ],
731  [
732  'fieldConfig' => [
733  'type' => 'text',
734  'enableRichtext' => true,
735  ],
736  'pageTsConfig' => [
737  'classes.' => [
738  'aClass' => 'aConfig',
739  ],
740  'config.' => [
741  'aTable.' => [
742  'aField.' => [
743  'preset' => 'testRteConfigTsconfigAField',
744  'types.' => [
745  'textmedia.' => [
746  'preset' => 'testRteConfigTsconfigATypes',
747  ],
748  ],
749  ],
750  ],
751  ],
752  ],
753  'expected' => [
754  'classes.' => [
755  'aClass' => 'aConfig',
756  ],
757  'preset' => 'testRteConfigTsconfigATypes',
758  'classes' => [
759  'aClass' => 'aConfig',
760  ],
761  'proc.' => [
762  'overruleMode' => 'default',
763  ],
764  ],
765  'message' => 'the preset for CType in pagetsconfig is more reliable than preset for field of tables',
766  ],
767 
768  [
769  'fieldConfig' => [
770  'type' => 'text',
771  'enableRichtext' => true,
772  ],
773  'pageTsConfig' => [
774  'classes.' => [
775  'aClass' => 'aConfig',
776  ],
777  'config.' => [
778  'aTable.' => [
779  'aField.' => [
780  'preset' => 'testRteConfigTsconfigAField',
781  'types.' => [
782  'textmedia.' => [
783  'preset' => 'testRteConfigTsconfigATypes',
784  ],
785  ],
786  ],
787  ],
788  ],
789  ],
790  'expected' => [
791  'classes.' => [
792  'aClass' => 'aConfig',
793  ],
794  'preset' => 'testRteConfigTsconfigATypes',
795  'classes' => [
796  'aClass' => 'aConfig',
797  ],
798  'proc.' => [
799  'overruleMode' => 'default',
800  ],
801  ],
802  'message' => 'the recordtype overrules the definition of an table-field',
803  ],
804 
805  ];
806  }
807 
808  #[DataProvider('dataProviderGetConfigurationFindPresetInPageTsOverridesPreset')]
809  #[Test]
810  public function ‪getConfigurationFindPresetInPageTsOverridesPreset($fieldConfig, $pageTsConfig, $expected, $message): void
811  {
812  // Accessible mock to $subject since getRtePageTsConfigOfPid calls BackendUtility::getPagesTSconfig()
813  // which can't be mocked in a sane way
814  $subject = $this->getAccessibleMock(Richtext::class, ['getRtePageTsConfigOfPid'], [], '', false);
815  $subject->expects(self::once())->method('getRtePageTsConfigOfPid')->with(42)->willReturn($pageTsConfig);
816  ‪$output = $subject->getConfiguration('aTable', 'aField', 42, 'textmedia', $fieldConfig);
817  self::assertSame($expected, ‪$output);
818  }
819 }
‪TYPO3\CMS\Core\Tests\Unit\Configuration\RichtextTest
Definition: RichtextTest.php:26
‪TYPO3\CMS\Core\Tests\Unit\Configuration\RichtextTest\getConfigurationOverridesByFieldAndTypeSpecificConfig
‪getConfigurationOverridesByFieldAndTypeSpecificConfig()
Definition: RichtextTest.php:329
‪TYPO3\CMS\Core\Tests\Unit\Configuration\RichtextTest\dataProviderGetConfigurationFindPresetInPageTsOverridesPreset
‪static dataProviderGetConfigurationFindPresetInPageTsOverridesPreset()
Definition: RichtextTest.php:504
‪TYPO3\CMS\Core\Tests\Unit\Configuration\RichtextTest\getConfigurationUsesOverruleModeFromConfig
‪getConfigurationUsesOverruleModeFromConfig()
Definition: RichtextTest.php:80
‪TYPO3\CMS\Core\Tests\Unit\Configuration\RichtextTest\getConfigurationOverridesByFieldSpecificConfig
‪getConfigurationOverridesByFieldSpecificConfig()
Definition: RichtextTest.php:241
‪$output
‪$output
Definition: annotationChecker.php:114
‪TYPO3\CMS\Core\Tests\Unit\Configuration\RichtextTest\getConfigurationSetsOverruleModeIfMissing
‪getConfigurationSetsOverruleModeIfMissing()
Definition: RichtextTest.php:128
‪TYPO3\CMS\Core\Tests\Unit\Configuration\RichtextTest\getConfigurationPageTsOverridesPreset
‪getConfigurationPageTsOverridesPreset()
Definition: RichtextTest.php:431
‪TYPO3\CMS\Core\Tests\Unit\Configuration\RichtextTest\getConfigurationFindPresetInPageTsOverridesPreset
‪getConfigurationFindPresetInPageTsOverridesPreset($fieldConfig, $pageTsConfig, $expected, $message)
Definition: RichtextTest.php:810
‪TYPO3\CMS\Core\Configuration\Richtext
Definition: Richtext.php:34
‪TYPO3\CMS\Core\Tests\Unit\Configuration\RichtextTest\getConfigurationUsesOverruleModeFromType
‪getConfigurationUsesOverruleModeFromType()
Definition: RichtextTest.php:28
‪TYPO3\CMS\Core\Tests\Unit\Configuration\RichtextTest\getConfigurationOverridesByDefault
‪getConfigurationOverridesByDefault()
Definition: RichtextTest.php:164
‪TYPO3\CMS\Core\Tests\Unit\Configuration
Definition: CKEditor5MigratorTest.php:18