‪TYPO3CMS  ‪main
SiteConfigurationTest.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;
21 use Symfony\Component\DependencyInjection\ServiceLocator;
22 use Symfony\Component\Yaml\Yaml;
34 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
35 
36 final class ‪SiteConfigurationTest extends UnitTestCase
37 {
38  protected bool ‪$resetSingletonInstances = true;
39 
41 
46  protected ?string ‪$fixturePath;
47 
48  protected function ‪setUp(): void
49  {
50  parent::setUp();
51  $basePath = ‪Environment::getVarPath() . '/tests/unit';
52  $this->fixturePath = $basePath . '/fixture/config/sites';
53  if (!file_exists($this->fixturePath)) {
54  ‪GeneralUtility::mkdir_deep($this->fixturePath);
55  }
56  $this->testFilesToDelete[] = $basePath;
57  $setRegistry = $this->createMock(SetRegistry::class);
58  $packageDependentCacheIdentifier = $this->createMock(PackageDependentCacheIdentifier::class);
59  $settingsTypeRegistry = new ‪SettingsTypeRegistry($this->createMock(ServiceLocator::class));
60  $this->siteConfiguration = new ‪SiteConfiguration(
61  $this->fixturePath,
62  new ‪SiteSettingsFactory($this->fixturePath, $setRegistry, $settingsTypeRegistry, new ‪YamlFileLoader(), new ‪NullFrontend('test'), $packageDependentCacheIdentifier),
64  new ‪NullFrontend('test')
65  );
66  }
67 
68  #[Test]
70  {
71  self::assertEmpty($this->siteConfiguration->resolveAllExistingSites());
72  }
73 
74  #[Test]
76  {
77  $configuration = [
78  'rootPageId' => 42,
79  'base' => 'https://example.com',
80  ];
81  $yamlFileContents = Yaml::dump($configuration, 99, 2);
82  ‪GeneralUtility::mkdir($this->fixturePath . '/home');
83  ‪GeneralUtility::writeFile($this->fixturePath . '/home/config.yaml', $yamlFileContents);
84  $sites = $this->siteConfiguration->resolveAllExistingSites();
85  self::assertCount(1, $sites);
86  $currentSite = current($sites);
87  self::assertSame(42, $currentSite->getRootPageId());
88  self::assertEquals(new ‪Uri('https://example.com'), $currentSite->getBase());
89  }
90 }
‪TYPO3\CMS\Core\Utility\GeneralUtility\mkdir
‪static bool mkdir(string $newFolder)
Definition: GeneralUtility.php:1638
‪TYPO3\CMS\Core\Tests\Unit\Configuration\SiteConfigurationTest\setUp
‪setUp()
Definition: SiteConfigurationTest.php:48
‪TYPO3\CMS\Core\Tests\Unit\Configuration\SiteConfigurationTest\$fixturePath
‪string $fixturePath
Definition: SiteConfigurationTest.php:46
‪TYPO3\CMS\Core\Package\Cache\PackageDependentCacheIdentifier
Definition: PackageDependentCacheIdentifier.php:30
‪TYPO3\CMS\Core\Tests\Unit\Configuration\SiteConfigurationTest\$resetSingletonInstances
‪bool $resetSingletonInstances
Definition: SiteConfigurationTest.php:38
‪TYPO3\CMS\Core\Cache\Frontend\NullFrontend
Definition: NullFrontend.php:30
‪TYPO3\CMS\Core\Utility\GeneralUtility\mkdir_deep
‪static mkdir_deep(string $directory)
Definition: GeneralUtility.php:1654
‪TYPO3\CMS\Core\Core\Environment\getVarPath
‪static getVarPath()
Definition: Environment.php:197
‪TYPO3\CMS\Core\Settings\SettingsTypeRegistry
Definition: SettingsTypeRegistry.php:27
‪TYPO3\CMS\Core\Configuration\SiteConfiguration
Definition: SiteConfiguration.php:47
‪TYPO3\CMS\Core\Http\Uri
Definition: Uri.php:30
‪TYPO3\CMS\Core\Tests\Unit\Configuration\SiteConfigurationTest
Definition: SiteConfigurationTest.php:37
‪TYPO3\CMS\Core\Site\Set\SetRegistry
Definition: SetRegistry.php:30
‪TYPO3\CMS\Core\Utility\GeneralUtility\writeFile
‪static bool writeFile(string $file, string $content, bool $changePermissions=false)
Definition: GeneralUtility.php:1469
‪TYPO3\CMS\Core\Tests\Unit\Configuration\SiteConfigurationTest\$siteConfiguration
‪SiteConfiguration $siteConfiguration
Definition: SiteConfigurationTest.php:40
‪TYPO3\CMS\Core\Tests\Unit\Configuration\SiteConfigurationTest\resolveAllExistingSitesReturnsEmptyArrayForNoSiteConfigsFound
‪resolveAllExistingSitesReturnsEmptyArrayForNoSiteConfigsFound()
Definition: SiteConfigurationTest.php:69
‪TYPO3\CMS\Core\Tests\Unit\Configuration\SiteConfigurationTest\resolveAllExistingSitesReadsConfiguration
‪resolveAllExistingSitesReadsConfiguration()
Definition: SiteConfigurationTest.php:75
‪TYPO3\CMS\Core\Configuration\Loader\YamlFileLoader
Definition: YamlFileLoader.php:47
‪TYPO3\CMS\Core\EventDispatcher\NoopEventDispatcher
Definition: NoopEventDispatcher.php:29
‪TYPO3\CMS\Core\Core\Environment
Definition: Environment.php:41
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:52
‪TYPO3\CMS\Core\Tests\Unit\Configuration
Definition: CKEditor5MigratorTest.php:18
‪TYPO3\CMS\Core\Site\SiteSettingsFactory
Definition: SiteSettingsFactory.php:34