2 declare(strict_types = 1);
19 use TYPO3\TestingFramework\Core\Functional\Framework\Frontend\InternalRequest;
20 use TYPO3\TestingFramework\Core\Functional\Framework\Frontend\ResponseContent;
94 'pageNotFound_handling' =>
'READFILE:typo3/sysext/frontend/Tests/Functional/Rendering/DataSet/404Template.html'
102 'typo3/sysext/core/Tests/Functional/Fixtures/Frontend/AdditionalConfiguration.php' =>
'typo3conf/AdditionalConfiguration.php',
103 'typo3/sysext/frontend/Tests/Functional/Fixtures/Images' =>
'fileadmin/user_upload'
106 protected function setUp()
109 $this->importDataSet(
'PACKAGE:typo3/testing-framework/Resources/Core/Functional/Fixtures/sys_file_storage.xml');
112 $this->setUpFrontendRootPage(1, [
113 'typo3/sysext/core/Tests/Functional/Fixtures/Frontend/JsonRenderer.typoscript',
121 'typoScript' =>
'config.sys_language_overlay = 0
122 config.sys_language_mode =',
123 'sys_language_mode' =>
'',
124 'sys_language_contentOL' => 0
127 'typoScript' =>
'config.sys_language_overlay = 0
128 config.sys_language_mode = content_fallback',
129 'sys_language_mode' =>
'content_fallback',
130 'sys_language_contentOL' => 0
133 'typoScript' =>
'config.sys_language_overlay = 0
134 config.sys_language_mode = content_fallback;1,0',
135 'sys_language_mode' =>
'content_fallback',
136 'sys_language_contentOL' => 0
139 'typoScript' =>
'config.sys_language_overlay = 0
140 config.sys_language_mode = strict',
141 'sys_language_mode' =>
'strict',
142 'sys_language_contentOL' => 0
145 'typoScript' =>
'config.sys_language_overlay = 0
146 config.sys_language_mode = ignore',
147 'sys_language_mode' =>
'ignore',
148 'sys_language_contentOL' => 0
151 'typoScript' =>
'config.sys_language_overlay = 1
152 config.sys_language_mode =',
153 'sys_language_mode' =>
'',
154 'sys_language_contentOL' => 1
157 'typoScript' =>
'config.sys_language_overlay = 1
158 config.sys_language_mode = content_fallback',
159 'sys_language_mode' =>
'content_fallback',
160 'sys_language_contentOL' => 1
163 'typoScript' =>
'config.sys_language_overlay = 1
164 config.sys_language_mode = content_fallback;1,0',
165 'sys_language_mode' =>
'content_fallback',
166 'sys_language_contentOL' => 1
169 'typoScript' =>
'config.sys_language_overlay = 1
170 config.sys_language_mode = strict',
171 'sys_language_mode' =>
'strict',
172 'sys_language_contentOL' => 1
175 'typoScript' =>
'config.sys_language_overlay = 1
176 config.sys_language_mode = ignore',
177 'sys_language_mode' =>
'ignore',
178 'sys_language_contentOL' => 1
181 'typoScript' =>
'config.sys_language_overlay = hideNonTranslated
182 config.sys_language_mode =',
183 'sys_language_mode' =>
'',
184 'sys_language_contentOL' =>
'hideNonTranslated'
187 'typoScript' =>
'config.sys_language_overlay = hideNonTranslated
188 config.sys_language_mode = content_fallback',
189 'sys_language_mode' =>
'content_fallback',
190 'sys_language_contentOL' =>
'hideNonTranslated'
193 'typoScript' =>
'config.sys_language_overlay = hideNonTranslated
194 config.sys_language_mode = content_fallback;1,0',
195 'sys_language_mode' =>
'content_fallback',
196 'sys_language_contentOL' =>
'hideNonTranslated'
199 'typoScript' =>
'config.sys_language_overlay = hideNonTranslated
200 config.sys_language_mode = strict',
201 'sys_language_mode' =>
'strict',
202 'sys_language_contentOL' =>
'hideNonTranslated'
205 'typoScript' =>
'config.sys_language_overlay = hideNonTranslated
206 config.sys_language_mode = ignore',
207 'sys_language_mode' =>
'ignore',
208 'sys_language_contentOL' =>
'hideNonTranslated'
226 $this->addTypoScriptToTemplateRecord(1, $typoScript);
228 $frontendResponse = $this->getFrontendResponse(self::VALUE_PageId, 0);
229 $responseSections = $frontendResponse->getResponseSections();
230 $visibleHeaders = [
'Regular Element #1',
'Regular Element #2',
'Regular Element #3'];
234 ->setTable(self::TABLE_Content)
236 ->setValues(...$visibleHeaders)
241 ->setTable(self::TABLE_Content)
247 $visibleFiles = [
'T3BOARD'];
249 ->setRecordIdentifier(self::TABLE_Content .
':297')->setRecordField(
'image')
250 ->setTable(
'sys_file_reference')->setField(
'title')->setValues(...$visibleFiles));
253 ->setRecordIdentifier(self::TABLE_Content .
':297')->setRecordField(
'image')
256 $visibleFiles = [
'Kasper2'];
258 ->setRecordIdentifier(self::TABLE_Content .
':298')->setRecordField(
'image')
259 ->setTable(
'sys_file_reference')->setField(
'title')->setValues(...$visibleFiles));
262 ->setRecordIdentifier(self::TABLE_Content .
':298')->setRecordField(
'image')
266 $content = json_decode($frontendResponse->getContent());
267 $this->assertEquals(
'Default language Page', $content->Scope->page->title);
268 $this->assertEquals(0, $content->Scope->tsfe->sys_language_uid,
'sys_language_uid doesn\'t match');
269 $this->assertEquals(0, $content->Scope->tsfe->sys_language_content,
'sys_language_content doesn\'t match');
270 $this->assertEquals($sysLanguageMode, $content->Scope->tsfe->sys_language_mode,
'sys_language_mode doesn\t match');
271 $this->assertEquals($sysLanguageContentOL, $content->Scope->tsfe->sys_language_contentOL,
'sys_language_contentOL doesn\t match');
286 'typoScript' =>
'config.sys_language_overlay = 0
287 config.sys_language_mode =',
288 'visibleRecords' => [
290 'header' =>
'[Translate to Dansk:] Regular Element #3',
291 'image' => [
'[Kasper] Image translated to Dansk',
'[T3BOARD] Image added in Dansk (without parent)'],
294 'header' =>
'[Translate to Dansk:] Regular Element #1',
298 'header' =>
'[DK] Without default language',
299 'image' => [
'[T3BOARD] Image added to DK element without default language']
302 'header' =>
'[DK] UnHidden Element #4',
306 'sys_language_mode' =>
'',
307 'sys_language_contentOL' => 0
310 'typoScript' =>
'config.sys_language_overlay = 0
311 config.sys_language_mode = content_fallback',
312 'visibleRecords' => [
314 'header' =>
'[Translate to Dansk:] Regular Element #3',
315 'image' => [
'[Kasper] Image translated to Dansk',
'[T3BOARD] Image added in Dansk (without parent)'],
318 'header' =>
'[Translate to Dansk:] Regular Element #1',
322 'header' =>
'[DK] Without default language',
323 'image' => [
'[T3BOARD] Image added to DK element without default language']
326 'header' =>
'[DK] UnHidden Element #4',
330 'sys_language_mode' =>
'content_fallback',
331 'sys_language_contentOL' => 0
334 'typoScript' =>
'config.sys_language_overlay = 0
335 config.sys_language_mode = content_fallback;1,0',
336 'visibleRecords' => [
338 'header' =>
'[Translate to Dansk:] Regular Element #3',
339 'image' => [
'[Kasper] Image translated to Dansk',
'[T3BOARD] Image added in Dansk (without parent)'],
342 'header' =>
'[Translate to Dansk:] Regular Element #1',
346 'header' =>
'[DK] Without default language',
347 'image' => [
'[T3BOARD] Image added to DK element without default language']
350 'header' =>
'[DK] UnHidden Element #4',
354 'sys_language_mode' =>
'content_fallback',
355 'sys_language_contentOL' => 0
358 'typoScript' =>
'config.sys_language_overlay = 0
359 config.sys_language_mode = strict',
360 'visibleRecords' => [
362 'header' =>
'[Translate to Dansk:] Regular Element #3',
363 'image' => [
'[Kasper] Image translated to Dansk',
'[T3BOARD] Image added in Dansk (without parent)'],
366 'header' =>
'[Translate to Dansk:] Regular Element #1',
370 'header' =>
'[DK] Without default language',
371 'image' => [
'[T3BOARD] Image added to DK element without default language']
374 'header' =>
'[DK] UnHidden Element #4',
378 'sys_language_mode' =>
'strict',
379 'sys_language_contentOL' => 0
382 'typoScript' =>
'config.sys_language_overlay = 0
383 config.sys_language_mode = ignore',
384 'visibleRecords' => [
386 'header' =>
'[Translate to Dansk:] Regular Element #3',
387 'image' => [
'[Kasper] Image translated to Dansk',
'[T3BOARD] Image added in Dansk (without parent)'],
390 'header' =>
'[Translate to Dansk:] Regular Element #1',
394 'header' =>
'[DK] Without default language',
395 'image' => [
'[T3BOARD] Image added to DK element without default language']
398 'header' =>
'[DK] UnHidden Element #4',
402 'sys_language_mode' =>
'ignore',
403 'sys_language_contentOL' => 0
406 'typoScript' =>
'config.sys_language_overlay = 1
407 config.sys_language_mode =',
408 'visibleRecords' => [
410 'header' =>
'[Translate to Dansk:] Regular Element #1',
414 'header' =>
'Regular Element #2',
415 'image' => [
'Kasper2'],
418 'header' =>
'[Translate to Dansk:] Regular Element #3',
419 'image' => [
'[Kasper] Image translated to Dansk',
'[T3BOARD] Image added in Dansk (without parent)'],
422 'sys_language_mode' =>
'',
423 'sys_language_contentOL' => 1
428 'typoScript' =>
'config.sys_language_overlay = 1
429 config.sys_language_mode = content_fallback',
430 'visibleRecords' => [
432 'header' =>
'[Translate to Dansk:] Regular Element #1',
436 'header' =>
'Regular Element #2',
437 'image' => [
'Kasper2'],
440 'header' =>
'[Translate to Dansk:] Regular Element #3',
441 'image' => [
'[Kasper] Image translated to Dansk',
'[T3BOARD] Image added in Dansk (without parent)'],
444 'sys_language_mode' =>
'content_fallback',
445 'sys_language_contentOL' => 1
451 'typoScript' =>
'config.sys_language_overlay = 1
452 config.sys_language_mode = content_fallback;1,0',
453 'visibleRecords' => [
455 'header' =>
'[Translate to Dansk:] Regular Element #1',
459 'header' =>
'Regular Element #2',
460 'image' => [
'Kasper2'],
463 'header' =>
'[Translate to Dansk:] Regular Element #3',
464 'image' => [
'[Kasper] Image translated to Dansk',
'[T3BOARD] Image added in Dansk (without parent)'],
467 'sys_language_mode' =>
'content_fallback',
468 'sys_language_contentOL' => 1
471 'typoScript' =>
'config.sys_language_overlay = 1
472 config.sys_language_mode = strict',
473 'visibleRecords' => [
475 'header' =>
'[Translate to Dansk:] Regular Element #1',
479 'header' =>
'Regular Element #2',
480 'image' => [
'Kasper2'],
483 'header' =>
'[Translate to Dansk:] Regular Element #3',
484 'image' => [
'[Kasper] Image translated to Dansk',
'[T3BOARD] Image added in Dansk (without parent)'],
487 'sys_language_mode' =>
'strict',
488 'sys_language_contentOL' => 1
491 'typoScript' =>
'config.sys_language_overlay = 1
492 config.sys_language_mode = ignore',
493 'visibleRecords' => [
495 'header' =>
'[Translate to Dansk:] Regular Element #1',
499 'header' =>
'Regular Element #2',
500 'image' => [
'Kasper2'],
503 'header' =>
'[Translate to Dansk:] Regular Element #3',
504 'image' => [
'[Kasper] Image translated to Dansk',
'[T3BOARD] Image added in Dansk (without parent)'],
507 'sys_language_mode' =>
'ignore',
508 'sys_language_contentOL' => 1
513 'typoScript' =>
'config.sys_language_overlay = hideNonTranslated
514 config.sys_language_mode =',
515 'visibleRecords' => [
517 'header' =>
'[Translate to Dansk:] Regular Element #1',
521 'header' =>
'[Translate to Dansk:] Regular Element #3',
522 'image' => [
'[Kasper] Image translated to Dansk',
'[T3BOARD] Image added in Dansk (without parent)'],
525 'sys_language_mode' =>
'',
526 'sys_language_contentOL' =>
'hideNonTranslated'
529 'typoScript' =>
'config.sys_language_overlay = hideNonTranslated
530 config.sys_language_mode = content_fallback',
531 'visibleRecords' => [
533 'header' =>
'[Translate to Dansk:] Regular Element #1',
537 'header' =>
'[Translate to Dansk:] Regular Element #3',
538 'image' => [
'[Kasper] Image translated to Dansk',
'[T3BOARD] Image added in Dansk (without parent)'],
541 'sys_language_mode' =>
'content_fallback',
542 'sys_language_contentOL' =>
'hideNonTranslated'
545 'typoScript' =>
'config.sys_language_overlay = hideNonTranslated
546 config.sys_language_mode = content_fallback;1,0',
547 'visibleRecords' => [
549 'header' =>
'[Translate to Dansk:] Regular Element #1',
553 'header' =>
'[Translate to Dansk:] Regular Element #3',
554 'image' => [
'[Kasper] Image translated to Dansk',
'[T3BOARD] Image added in Dansk (without parent)'],
557 'sys_language_mode' =>
'content_fallback',
558 'sys_language_contentOL' =>
'hideNonTranslated'
562 'typoScript' =>
'config.sys_language_overlay = hideNonTranslated
563 config.sys_language_mode = strict',
564 'visibleRecords' => [
566 'header' =>
'[Translate to Dansk:] Regular Element #1',
570 'header' =>
'[Translate to Dansk:] Regular Element #3',
571 'image' => [
'[Kasper] Image translated to Dansk',
'[T3BOARD] Image added in Dansk (without parent)'],
574 'sys_language_mode' =>
'strict',
575 'sys_language_contentOL' =>
'hideNonTranslated'
578 'typoScript' =>
'config.sys_language_overlay = hideNonTranslated
579 config.sys_language_mode = ignore',
580 'visibleRecords' => [
582 'header' =>
'[Translate to Dansk:] Regular Element #1',
586 'header' =>
'[Translate to Dansk:] Regular Element #3',
587 'image' => [
'[Kasper] Image translated to Dansk',
'[T3BOARD] Image added in Dansk (without parent)'],
590 'sys_language_mode' =>
'ignore',
591 'sys_language_contentOL' =>
'hideNonTranslated'
605 public function renderingOfDutchLanguage(
string $typoScript, array $visibleRecords,
string $sysLanguageMode,
string $sysLanguageContentOL)
607 $this->addTypoScriptToTemplateRecord(1, $typoScript);
608 $frontendResponse = $this->getFrontendResponse(self::VALUE_PageId, 1);
609 $responseSections = $frontendResponse->getResponseSections();
610 $visibleHeaders = array_map(
function ($element) {
611 return $element[
'header'];
617 ->setTable(self::TABLE_Content)
619 ->setValues(...$visibleHeaders)
624 ->setTable(self::TABLE_Content)
629 foreach ($visibleRecords as $ttContentUid => $properties) {
630 $visibleFileTitles = $properties[
'image'];
631 if (!empty($visibleFileTitles)) {
633 ->setRecordIdentifier(self::TABLE_Content .
':' . $ttContentUid)->setRecordField(
'image')
634 ->setTable(
'sys_file_reference')->setField(
'title')->setValues(...$visibleFileTitles));
637 ->setRecordIdentifier(self::TABLE_Content .
':' . $ttContentUid)->setRecordField(
'image')
638 ->setTable(
'sys_file_reference')->setField(
'title')->setValues(...$this->
getNonVisibleFileTitles($visibleFileTitles)));
641 $content = json_decode($frontendResponse->getContent());
642 $this->assertEquals(
'[DK]Page', $content->Scope->page->title);
643 $this->assertEquals(1, $content->Scope->tsfe->sys_language_uid,
'sys_language_uid doesn\'t match');
644 $this->assertEquals(1, $content->Scope->tsfe->sys_language_content,
'sys_language_content doesn\'t match');
645 $this->assertEquals($sysLanguageMode, $content->Scope->tsfe->sys_language_mode,
'sys_language_mode doesn\t match');
646 $this->assertEquals($sysLanguageContentOL, $content->Scope->tsfe->sys_language_contentOL,
'sys_language_contentOL doesn\t match');
658 'typoScript' =>
'config.sys_language_overlay = 0
659 config.sys_language_mode =',
660 'visibleRecords' => [
662 'header' =>
'Regular Element #1',
663 'image' => [
'T3BOARD'],
666 'header' =>
'Regular Element #2',
667 'image' => [
'Kasper2'],
670 'header' =>
'Regular Element #3',
671 'image' => [
'Kasper'],
674 'pageTitle' =>
'Default language Page',
675 'sys_language_uid' => 0,
676 'sys_language_content' => 0,
677 'sys_language_mode' =>
'',
678 'sys_language_contentOL' => 0,
681 'typoScript' =>
'config.sys_language_overlay = 0
682 config.sys_language_mode = content_fallback',
683 'visibleRecords' => [
685 'header' =>
'Regular Element #1',
686 'image' => [
'T3BOARD'],
689 'header' =>
'Regular Element #2',
690 'image' => [
'Kasper2'],
693 'header' =>
'Regular Element #3',
694 'image' => [
'Kasper'],
697 'pageTitle' =>
'Default language Page',
698 'sys_language_uid' => 2,
699 'sys_language_content' => 0,
700 'sys_language_mode' =>
'content_fallback',
701 'sys_language_contentOL' => 0,
704 'typoScript' =>
'config.sys_language_overlay = 0
705 config.sys_language_mode = content_fallback;1,0',
706 'visibleRecords' => [
708 'header' =>
'[Translate to Dansk:] Regular Element #3',
709 'image' => [
'[Kasper] Image translated to Dansk',
'[T3BOARD] Image added in Dansk (without parent)'],
712 'header' =>
'[Translate to Dansk:] Regular Element #1',
716 'header' =>
'[DK] Without default language',
717 'image' => [
'[T3BOARD] Image added to DK element without default language'],
720 'header' =>
'[DK] UnHidden Element #4',
724 'pageTitle' =>
'[DK]Page',
725 'sys_language_uid' => 2,
726 'sys_language_content' => 1,
727 'sys_language_mode' =>
'content_fallback',
728 'sys_language_contentOL' => 0,
731 'typoScript' =>
'config.sys_language_overlay = 0
732 config.sys_language_mode = strict',
733 'visibleRecords' => [],
735 'sys_language_uid' => 2,
736 'sys_language_content' => 2,
737 'sys_language_mode' =>
'strict',
738 'sys_language_contentOL' => 0,
742 'typoScript' =>
'config.sys_language_overlay = 0
743 config.sys_language_mode = ignore',
744 'visibleRecords' => [
746 'header' =>
'[Translate to Deutsch:] [Translate to Dansk:] Regular Element #1',
747 'image' => [
'[T3BOARD] image translated to DE from DK'],
750 'header' =>
'[DE] Without default language',
754 'pageTitle' =>
'Default language Page',
755 'sys_language_uid' => 2,
756 'sys_language_content' => 2,
757 'sys_language_mode' =>
'ignore',
758 'sys_language_contentOL' => 0,
761 'typoScript' =>
'config.sys_language_overlay = 1
762 config.sys_language_mode =',
763 'visibleRecords' => [
765 'header' =>
'Regular Element #1',
766 'image' => [
'T3BOARD'],
769 'header' =>
'Regular Element #2',
770 'image' => [
'Kasper2'],
773 'header' =>
'Regular Element #3',
774 'image' => [
'Kasper'],
777 'pageTitle' =>
'Default language Page',
778 'sys_language_uid' => 0,
779 'sys_language_content' => 0,
780 'sys_language_mode' =>
'',
781 'sys_language_contentOL' => 1,
785 'typoScript' =>
'config.sys_language_overlay = 1
786 config.sys_language_mode = content_fallback',
787 'visibleRecords' => [
789 'header' =>
'Regular Element #1',
790 'image' => [
'T3BOARD'],
793 'header' =>
'Regular Element #2',
794 'image' => [
'Kasper2'],
797 'header' =>
'Regular Element #3',
798 'image' => [
'Kasper'],
801 'pageTitle' =>
'Default language Page',
802 'sys_language_uid' => 2,
803 'sys_language_content' => 0,
804 'sys_language_mode' =>
'content_fallback',
805 'sys_language_contentOL' => 1,
810 'typoScript' =>
'config.sys_language_overlay = 1
811 config.sys_language_mode = content_fallback;1,0',
812 'visibleRecords' => [
814 'header' =>
'[Translate to Dansk:] Regular Element #1',
818 'header' =>
'Regular Element #2',
819 'image' => [
'Kasper2'],
822 'header' =>
'[Translate to Dansk:] Regular Element #3',
823 'image' => [
'[Kasper] Image translated to Dansk',
'[T3BOARD] Image added in Dansk (without parent)'],
826 'pageTitle' =>
'[DK]Page',
827 'sys_language_uid' => 2,
828 'sys_language_content' => 1,
829 'sys_language_mode' =>
'content_fallback',
830 'sys_language_contentOL' => 1,
833 'typoScript' =>
'config.sys_language_overlay = 1
834 config.sys_language_mode = strict',
835 'visibleRecords' => [],
837 'sys_language_uid' => 2,
838 'sys_language_content' => 2,
839 'sys_language_mode' =>
'strict',
840 'sys_language_contentOL' => 1,
844 'typoScript' =>
'config.sys_language_overlay = 1
845 config.sys_language_mode = ignore',
846 'visibleRecords' => [
848 'header' =>
'[Translate to Deutsch:] [Translate to Dansk:] Regular Element #1',
849 'image' => [
'[T3BOARD] image translated to DE from DK'],
852 'header' =>
'Regular Element #2',
853 'image' => [
'Kasper2'],
856 'header' =>
'Regular Element #3',
857 'image' => [
'Kasper'],
860 'pageTitle' =>
'Default language Page',
861 'sys_language_uid' => 2,
862 'sys_language_content' => 2,
863 'sys_language_mode' =>
'ignore',
864 'sys_language_contentOL' => 1,
867 'typoScript' =>
'config.sys_language_overlay = hideNonTranslated
868 config.sys_language_mode =',
869 'visibleRecords' => [
871 'header' =>
'Regular Element #1',
872 'image' => [
'T3BOARD'],
875 'header' =>
'Regular Element #2',
876 'image' => [
'Kasper2'],
879 'header' =>
'Regular Element #3',
880 'image' => [
'Kasper'],
883 'pageTitle' =>
'Default language Page',
884 'sys_language_uid' => 0,
885 'sys_language_content' => 0,
886 'sys_language_mode' =>
'',
887 'sys_language_contentOL' =>
'hideNonTranslated',
890 'typoScript' =>
'config.sys_language_overlay = hideNonTranslated
891 config.sys_language_mode = content_fallback',
892 'visibleRecords' => [
894 'header' =>
'Regular Element #1',
895 'image' => [
'T3BOARD'],
898 'header' =>
'Regular Element #2',
899 'image' => [
'Kasper2'],
902 'header' =>
'Regular Element #3',
903 'image' => [
'Kasper'],
906 'pageTitle' =>
'Default language Page',
907 'sys_language_uid' => 2,
908 'sys_language_content' => 0,
909 'sys_language_mode' =>
'content_fallback',
910 'sys_language_contentOL' =>
'hideNonTranslated',
913 'typoScript' =>
'config.sys_language_overlay = hideNonTranslated
914 config.sys_language_mode = content_fallback;1,0',
915 'visibleRecords' => [
917 'header' =>
'[Translate to Dansk:] Regular Element #1',
921 'header' =>
'[Translate to Dansk:] Regular Element #3',
922 'image' => [
'[Kasper] Image translated to Dansk',
'[T3BOARD] Image added in Dansk (without parent)'],
925 'pageTitle' =>
'[DK]Page',
926 'sys_language_uid' => 2,
927 'sys_language_content' => 1,
928 'sys_language_mode' =>
'content_fallback',
929 'sys_language_contentOL' =>
'hideNonTranslated',
932 'typoScript' =>
'config.sys_language_overlay = hideNonTranslated
933 config.sys_language_mode = strict',
934 'visibleRecords' => [],
936 'sys_language_uid' => 2,
937 'sys_language_content' => 2,
938 'sys_language_mode' =>
'strict',
939 'sys_language_contentOL' =>
'hideNonTranslated',
943 'typoScript' =>
'config.sys_language_overlay = hideNonTranslated
944 config.sys_language_mode = ignore',
945 'visibleRecords' => [
947 'header' =>
'[Translate to Deutsch:] [Translate to Dansk:] Regular Element #1',
948 'image' => [
'[T3BOARD] image translated to DE from DK'],
951 'pageTitle' =>
'Default language Page',
952 'sys_language_uid' => 2,
953 'sys_language_content' => 2,
954 'sys_language_mode' =>
'ignore',
955 'sys_language_contentOL' =>
'hideNonTranslated',
975 public function contentOnNonTranslatedPageGerman(
string $typoScript, array $visibleRecords,
string $pageTitle,
int $sysLanguageUid,
int $sysLanguageContent,
string $sysLanguageMode,
string $sysLanguageContentOL,
int $statusCode = 200)
977 $this->addTypoScriptToTemplateRecord(1, $typoScript);
978 $visibleHeaders = array_column($visibleRecords,
'header');
980 $response = $this->executeFrontendRequest(
981 (
new InternalRequest())
982 ->withPageId(self::VALUE_PageId)
986 if ($statusCode === 200) {
987 $responseStructure = ResponseContent::fromString((
string)$response->getBody());
988 $responseSections = $responseStructure->getSections();
993 ->setTable(self::TABLE_Content)
995 ->setValues(...$visibleHeaders)
1000 ->setTable(self::TABLE_Content)
1001 ->setField(
'header')
1005 foreach ($visibleRecords as $ttContentUid => $properties) {
1006 $visibleFileTitles = $properties[
'image'];
1007 if (!empty($visibleFileTitles)) {
1009 ->setRecordIdentifier(self::TABLE_Content .
':' . $ttContentUid)->setRecordField(
'image')
1010 ->setTable(
'sys_file_reference')->setField(
'title')->setValues(...$visibleFileTitles));
1013 ->setRecordIdentifier(self::TABLE_Content .
':' . $ttContentUid)->setRecordField(
'image')
1014 ->setTable(
'sys_file_reference')->setField(
'title')->setValues(...$this->
getNonVisibleFileTitles($visibleFileTitles)));
1017 $this->assertEquals($pageTitle, $responseStructure->getScopePath(
'page/title'));
1018 $this->assertEquals($sysLanguageUid, $responseStructure->getScopePath(
'tsfe/sys_language_uid'),
'sys_language_uid doesn\'t match');
1019 $this->assertEquals($sysLanguageContent, $responseStructure->getScopePath(
'tsfe/sys_language_content'),
'sys_language_content doesn\'t match');
1020 $this->assertEquals($sysLanguageMode, $responseStructure->getScopePath(
'tsfe/sys_language_mode'),
'sys_language_mode doesn\t match');
1021 $this->assertEquals($sysLanguageContentOL, $responseStructure->getScopePath(
'tsfe/sys_language_contentOL'),
'sys_language_contentOL doesn\t match');
1024 $this->assertEquals($statusCode, $response->getStatusCode());
1035 'typoScript' =>
'config.sys_language_overlay = 0
1036 config.sys_language_mode =',
1037 'visibleRecordHeaders' => [
'[Translate to Polski:] Regular Element #1',
'[PL] Without default language'],
1038 'sys_language_mode' =>
'',
1039 'sys_language_contentOL' => 0
1042 'typoScript' =>
'config.sys_language_overlay = 0
1043 config.sys_language_mode = content_fallback',
1044 'visibleRecordHeaders' => [
'[Translate to Polski:] Regular Element #1',
'[PL] Without default language'],
1045 'sys_language_mode' =>
'content_fallback',
1046 'sys_language_contentOL' => 0
1049 'typoScript' =>
'config.sys_language_overlay = 0
1050 config.sys_language_mode = content_fallback;1,0',
1051 'visibleRecordHeaders' => [
'[Translate to Polski:] Regular Element #1',
'[PL] Without default language'],
1052 'sys_language_mode' =>
'content_fallback',
1053 'sys_language_contentOL' => 0
1056 'typoScript' =>
'config.sys_language_overlay = 0
1057 config.sys_language_mode = strict',
1058 'visibleRecordHeaders' => [
'[Translate to Polski:] Regular Element #1',
'[PL] Without default language'],
1059 'sys_language_mode' =>
'strict',
1060 'sys_language_contentOL' => 0
1063 'typoScript' =>
'config.sys_language_overlay = 0
1064 config.sys_language_mode = ignore',
1065 'visibleRecordHeaders' => [
'[Translate to Polski:] Regular Element #1',
'[PL] Without default language'],
1066 'sys_language_mode' =>
'ignore',
1067 'sys_language_contentOL' => 0
1070 'typoScript' =>
'config.sys_language_overlay = 1
1071 config.sys_language_mode =',
1072 'visibleRecordHeaders' => [
'[Translate to Polski:] Regular Element #1',
'Regular Element #2',
'Regular Element #3'],
1073 'sys_language_mode' =>
'',
1074 'sys_language_contentOL' => 1
1079 'typoScript' =>
'config.sys_language_overlay = 1
1080 config.sys_language_mode = content_fallback',
1081 'visibleRecordHeaders' => [
'[Translate to Polski:] Regular Element #1',
'Regular Element #2',
'Regular Element #3'],
1082 'sys_language_mode' =>
'content_fallback',
1083 'sys_language_contentOL' => 1
1089 'typoScript' =>
'config.sys_language_overlay = 1
1090 config.sys_language_mode = content_fallback;1,0',
1091 'visibleRecordHeaders' => [
'[Translate to Polski:] Regular Element #1',
'Regular Element #2',
'Regular Element #3'],
1092 'sys_language_mode' =>
'content_fallback',
1093 'sys_language_contentOL' => 1
1096 'typoScript' =>
'config.sys_language_overlay = 1
1097 config.sys_language_mode = strict',
1098 'visibleRecordHeaders' => [
'[Translate to Polski:] Regular Element #1',
'Regular Element #2',
'Regular Element #3'],
1099 'sys_language_mode' =>
'strict',
1100 'sys_language_contentOL' => 1
1103 'typoScript' =>
'config.sys_language_overlay = 1
1104 config.sys_language_mode = ignore',
1105 'visibleRecordHeaders' => [
'[Translate to Polski:] Regular Element #1',
'Regular Element #2',
'Regular Element #3'],
1106 'sys_language_mode' =>
'ignore',
1107 'sys_language_contentOL' => 1
1112 'typoScript' =>
'config.sys_language_overlay = hideNonTranslated
1113 config.sys_language_mode =',
1114 'visibleRecordHeaders' => [
'[Translate to Polski:] Regular Element #1'],
1115 'sys_language_mode' =>
'',
1116 'sys_language_contentOL' =>
'hideNonTranslated'
1119 'typoScript' =>
'config.sys_language_overlay = hideNonTranslated
1120 config.sys_language_mode = content_fallback',
1121 'visibleRecordHeaders' => [
'[Translate to Polski:] Regular Element #1'],
1122 'sys_language_mode' =>
'content_fallback',
1123 'sys_language_contentOL' =>
'hideNonTranslated'
1126 'typoScript' =>
'config.sys_language_overlay = hideNonTranslated
1127 config.sys_language_mode = content_fallback;1,0',
1128 'visibleRecordHeaders' => [
'[Translate to Polski:] Regular Element #1'],
1129 'sys_language_mode' =>
'content_fallback',
1130 'sys_language_contentOL' =>
'hideNonTranslated'
1133 'typoScript' =>
'config.sys_language_overlay = hideNonTranslated
1134 config.sys_language_mode = strict',
1135 'visibleRecordHeaders' => [
'[Translate to Polski:] Regular Element #1'],
1136 'sys_language_mode' =>
'strict',
1137 'sys_language_contentOL' =>
'hideNonTranslated'
1140 'typoScript' =>
'config.sys_language_overlay = hideNonTranslated
1141 config.sys_language_mode = ignore',
1142 'visibleRecordHeaders' => [
'[Translate to Polski:] Regular Element #1'],
1143 'sys_language_mode' =>
'ignore',
1144 'sys_language_contentOL' =>
'hideNonTranslated'
1162 $this->addTypoScriptToTemplateRecord(1, $typoScript);
1164 $frontendResponse = $this->getFrontendResponse(self::VALUE_PageId, 3);
1165 $this->assertEquals(
'success', $frontendResponse->getStatus());
1166 $responseSections = $frontendResponse->getResponseSections();
1171 ->setTable(self::TABLE_Content)
1172 ->setField(
'header')
1173 ->setValues(...$visibleHeaders)
1178 ->setTable(self::TABLE_Content)
1179 ->setField(
'header')
1183 $content = json_decode($frontendResponse->getContent());
1184 $this->assertEquals(
'[PL]Page', $content->Scope->page->title);
1185 $this->assertEquals(3, $content->Scope->tsfe->sys_language_uid,
'sys_language_uid doesn\'t match');
1186 $this->assertEquals(3, $content->Scope->tsfe->sys_language_content,
'sys_language_content doesn\'t match');
1187 $this->assertEquals($sysLanguageMode, $content->Scope->tsfe->sys_language_mode,
'sys_language_mode doesn\t match');
1188 $this->assertEquals($sysLanguageContentOL, $content->Scope->tsfe->sys_language_contentOL,
'sys_language_contentOL doesn\t match');
1200 'Regular Element #1',
1201 'Regular Element #2',
1202 'Regular Element #3',
1203 'Hidden Element #4',
1204 '[Translate to Dansk:] Regular Element #1',
1205 '[Translate to Dansk:] Regular Element #3',
1206 '[DK] Without default language',
1207 '[DK] UnHidden Element #4',
1208 '[DE] Without default language',
1209 '[Translate to Deutsch:] [Translate to Dansk:] Regular Element #1',
1210 '[Translate to Polski:] Regular Element #1',
1211 '[PL] Without default language',
1212 '[PL] Hidden Regular Element #2'
1214 return array_diff($allElements, $visibleHeaders);
1228 '[Kasper] Image translated to Dansk',
1229 '[T3BOARD] Image added in Dansk (without parent)',
1230 '[T3BOARD] Image added to DK element without default language',
1231 '[T3BOARD] image translated to DE from DK',
1234 return array_diff($allElements, $visibleTitles);