‪TYPO3CMS  ‪main
PageTsConfigFactoryTest.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\Test;
26 use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
27 
31 final class ‪PageTsConfigFactoryTest extends FunctionalTestCase
32 {
33  protected array ‪$testExtensionsToLoad = [
34  'typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_typoscript_pagetsconfigfactory',
35  ];
36 
37  #[Test]
39  {
40  $subject = $this->get(PageTsConfigFactory::class);
41  $pageTsConfig = $subject->create([], new ‪NullSite());
42  self::assertSame('loadedFromTestExtensionConfigurationPageTsConfig', $pageTsConfig->getPageTsConfigArray()['loadedFromTestExtensionConfigurationPageTsConfig']);
43  }
44 
45  #[Test]
47  {
48  $rootLine = [
49  [
50  'uid' => 1,
51  'TSconfig' => 'loadedFromTsConfigField = loadedFromTsConfigField',
52  ],
53  ];
54  $subject = $this->get(PageTsConfigFactory::class);
55  $pageTsConfig = $subject->create($rootLine, new ‪NullSite());
56  self::assertSame('loadedFromTsConfigField', $pageTsConfig->getPageTsConfigArray()['loadedFromTsConfigField']);
57  }
58 
59  #[Test]
61  {
62  $rootLine = [
63  [
64  'uid' => 1,
65  'TSconfig' => '@import \'EXT:test_typoscript_pagetsconfigfactory/Configuration/TsConfig/*.tsconfig\'',
66  ],
67  ];
68  $subject = $this->get(PageTsConfigFactory::class);
69  $pageTsConfig = $subject->create($rootLine, new ‪NullSite());
70  self::assertSame('loadedFromTsconfigIncludesWithTsconfigSuffix', $pageTsConfig->getPageTsConfigArray()['loadedFromTsconfigIncludesWithTsconfigSuffix']);
71  }
72 
73  #[Test]
75  {
76  $rootLine = [
77  [
78  'uid' => 1,
79  'TSconfig' => '@import \'EXT:test_typoscript_pagetsconfigfactory/Configuration/TsConfig/*.typoscript\'',
80  ],
81  ];
82  $subject = $this->get(PageTsConfigFactory::class);
83  $pageTsConfig = $subject->create($rootLine, new ‪NullSite());
84  self::assertSame('loadedFromTsconfigIncludesWithTyposcriptSuffix', $pageTsConfig->getPageTsConfigArray()['loadedFromTsconfigIncludesWithTyposcriptSuffix']);
85  }
86 
87  #[Test]
89  {
90  $rootLine = [
91  [
92  'uid' => 1,
93  'TSconfig' => '<INCLUDE_TYPOSCRIPT: source="FILE:EXT:test_typoscript_pagetsconfigfactory/Configuration/TsConfig/tsconfig-includes.tsconfig">',
94  ],
95  ];
97  $subject = $this->get(PageTsConfigFactory::class);
98  $pageTsConfig = $subject->create($rootLine, new ‪NullSite());
99  self::assertSame('loadedFromTsconfigIncludesWithTsconfigSuffix', $pageTsConfig->getPageTsConfigArray()['loadedFromTsconfigIncludesWithTsconfigSuffix']);
100  }
101 
102  #[Test]
104  {
105  $rootLine = [
106  [
107  'uid' => 1,
108  'TSconfig' => 'loadedFromTsConfigField1 = loadedFromTsConfigField1'
109  . chr(10) . 'loadedFromTsConfigField2 = loadedFromTsConfigField2',
110  ],
111  [
112  'uid' => 2,
113  'TSconfig' => 'loadedFromTsConfigField1 = loadedFromTsConfigField1'
114  . chr(10) . 'loadedFromTsConfigField2 = loadedFromTsConfigField2Override',
115  ],
116  ];
117  $subject = $this->get(PageTsConfigFactory::class);
118  $pageTsConfig = $subject->create($rootLine, new ‪NullSite());
119  self::assertSame('loadedFromTsConfigField1', $pageTsConfig->getPageTsConfigArray()['loadedFromTsConfigField1']);
120  self::assertSame('loadedFromTsConfigField2Override', $pageTsConfig->getPageTsConfigArray()['loadedFromTsConfigField2']);
121  }
122 
123  #[Test]
125  {
126  $rootLine = [
127  [
128  'uid' => 1,
129  'TSconfig' => 'siteSetting = {$aSiteSetting}',
130  ],
131  ];
132  $subject = $this->get(PageTsConfigFactory::class);
133  $siteSettings = new ‪SiteSettings(['aSiteSetting' => 'aSiteSettingValue']);
134  $site = new ‪Site('siteIdentifier', 1, [], $siteSettings);
135  $pageTsConfig = $subject->create($rootLine, $site);
136  self::assertSame('aSiteSettingValue', $pageTsConfig->getPageTsConfigArray()['siteSetting']);
137  }
138 
139  #[Test]
140  public function ‪pageTsConfigLoadsFromEvent(): void
141  {
142  $subject = $this->get(PageTsConfigFactory::class);
143  $pageTsConfig = $subject->create([], new ‪NullSite());
144  self::assertSame('loadedFromEvent', $pageTsConfig->getPageTsConfigArray()['loadedFromEvent']);
145  }
146 
147  #[Test]
149  {
150  $this->importCSVDataSet(__DIR__ . '/Fixtures/pageTsConfigTestFixture.csv');
151  $backendUser = $this->setUpBackendUser(1);
152  $userTsConfigFactory = $this->get(UserTsConfigFactory::class);
153  $userTsConfig = $userTsConfigFactory->create($backendUser);
154  $rootLine = [
155  [
156  'uid' => 1,
157  'TSconfig' => 'valueOverriddenByUserTsConfig = base',
158  ],
159  ];
160  $subject = $this->get(PageTsConfigFactory::class);
161  $pageTsConfig = $subject->create($rootLine, new ‪NullSite(), $userTsConfig);
162  self::assertSame('overridden', $pageTsConfig->getPageTsConfigArray()['valueOverriddenByUserTsConfig']);
163  }
164 }
‪TYPO3\CMS\Core\Tests\Functional\TypoScript\PageTsConfigFactoryTest
Definition: PageTsConfigFactoryTest.php:32
‪TYPO3\CMS\Core\Tests\Functional\TypoScript\PageTsConfigFactoryTest\pageTsConfigLoadsFromPageRecordTsconfigField
‪pageTsConfigLoadsFromPageRecordTsconfigField()
Definition: PageTsConfigFactoryTest.php:46
‪TYPO3\CMS\Core\Tests\Functional\TypoScript\PageTsConfigFactoryTest\pageTsConfigLoadsSingleFileWithOldImportSyntax
‪pageTsConfigLoadsSingleFileWithOldImportSyntax()
Definition: PageTsConfigFactoryTest.php:88
‪TYPO3\CMS\Core\Site\Entity\NullSite
Definition: NullSite.php:32
‪TYPO3\CMS\Core\Tests\Functional\TypoScript\PageTsConfigFactoryTest\pageTsConfigLoadsFromWildcardAtImportWithTsconfigSuffix
‪pageTsConfigLoadsFromWildcardAtImportWithTsconfigSuffix()
Definition: PageTsConfigFactoryTest.php:60
‪TYPO3\CMS\Core\Site\Entity\Site
Definition: Site.php:42
‪TYPO3\CMS\Core\Tests\Functional\TypoScript\PageTsConfigFactoryTest\pageTsConfigLoadsFromPagesTsconfigTestExtensionConfigurationFile
‪pageTsConfigLoadsFromPagesTsconfigTestExtensionConfigurationFile()
Definition: PageTsConfigFactoryTest.php:38
‪TYPO3\CMS\Core\Tests\Functional\TypoScript\PageTsConfigFactoryTest\pageTsConfigLoadsFromEvent
‪pageTsConfigLoadsFromEvent()
Definition: PageTsConfigFactoryTest.php:140
‪TYPO3\CMS\Core\Tests\Functional\TypoScript\PageTsConfigFactoryTest\pageTsConfigSubstitutesSettingsFromSite
‪pageTsConfigSubstitutesSettingsFromSite()
Definition: PageTsConfigFactoryTest.php:124
‪TYPO3\CMS\Core\TypoScript\PageTsConfigFactory
Definition: PageTsConfigFactory.php:44
‪TYPO3\CMS\Core\TypoScript\UserTsConfigFactory
Definition: UserTsConfigFactory.php:38
‪TYPO3\CMS\Core\Tests\Functional\TypoScript
‪TYPO3\CMS\Core\Tests\Functional\TypoScript\PageTsConfigFactoryTest\pageTsConfigLoadsFromPageRecordTsconfigFieldOverridesByLowerLevel
‪pageTsConfigLoadsFromPageRecordTsconfigFieldOverridesByLowerLevel()
Definition: PageTsConfigFactoryTest.php:103
‪TYPO3\CMS\Core\Tests\Functional\TypoScript\PageTsConfigFactoryTest\$testExtensionsToLoad
‪array $testExtensionsToLoad
Definition: PageTsConfigFactoryTest.php:33
‪TYPO3\CMS\Core\Site\Entity\SiteSettings
Definition: SiteSettings.php:29
‪TYPO3\CMS\Core\Tests\Functional\TypoScript\PageTsConfigFactoryTest\pageTsConfigCanBeOverloadedWithUserTsConfig
‪pageTsConfigCanBeOverloadedWithUserTsConfig()
Definition: PageTsConfigFactoryTest.php:148
‪TYPO3\CMS\Core\Tests\Functional\TypoScript\PageTsConfigFactoryTest\pageTsConfigLoadsFromWildcardAtImportWithTypoScriptSuffix
‪pageTsConfigLoadsFromWildcardAtImportWithTypoScriptSuffix()
Definition: PageTsConfigFactoryTest.php:74