From 504c9f9b7f83abb6eae110841d8159a929ec57b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20B=C3=BCrk?= <stefan@buerk.tech> Date: Fri, 22 Mar 2024 16:37:59 +0100 Subject: [PATCH] [TASK] Use `SiteConfiguration` from DI in `SiteBasedTestTrait` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `SiteBasedTestTrait` created a instance of the `SiteConfiguration` using the PHP `new` keyword for writing functional test instance site configurations. It is possible, that the `SiteConfiguration` is retrieved from the `Dependency Injection container` by code executed before the test releated site configuration is written, which does not reset the instance based `SiteConfiguration->$firstLevelCache` property and later retrieving site configurations using the `SiteFinder`, for example in rootline and other operations, cannot find the test instance configurations. This change now uses the `SiteConfiguration` from the test instance `Dependency Injection container` which ensures that the internal first level cache is properly reset on `write()` actions. Resolves: #103470 Releases: main, 12.4 Change-Id: I70368e56abd10e55f06d3813371c4538ad704136 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/83572 Reviewed-by: Benjamin Franzke <ben@bnf.dev> Tested-by: core-ci <typo3@b13.com> Tested-by: Stefan Bürk <stefan@buerk.tech> Reviewed-by: Benni Mack <benni@typo3.org> Tested-by: Benjamin Franzke <ben@bnf.dev> Reviewed-by: Stefan Bürk <stefan@buerk.tech> Tested-by: Benni Mack <benni@typo3.org> --- .../Functional/SiteHandling/SiteBasedTestTrait.php | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/typo3/sysext/core/Tests/Functional/SiteHandling/SiteBasedTestTrait.php b/typo3/sysext/core/Tests/Functional/SiteHandling/SiteBasedTestTrait.php index dd35f17e03d6..0b8c55a1fb0f 100644 --- a/typo3/sysext/core/Tests/Functional/SiteHandling/SiteBasedTestTrait.php +++ b/typo3/sysext/core/Tests/Functional/SiteHandling/SiteBasedTestTrait.php @@ -17,7 +17,6 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Functional\SiteHandling; -use Psr\EventDispatcher\EventDispatcherInterface; use TYPO3\CMS\Core\Configuration\SiteConfiguration; use TYPO3\CMS\Core\Tests\Functional\Fixtures\Frontend\PhpError; use TYPO3\CMS\Core\Utility\GeneralUtility; @@ -60,12 +59,7 @@ trait SiteBasedTestTrait if (!empty($errorHandling)) { $configuration['errorHandling'] = $errorHandling; } - $siteConfiguration = new SiteConfiguration( - $this->instancePath . '/typo3conf/sites/', - $this->get(EventDispatcherInterface::class), - $this->get('cache.core') - ); - + $siteConfiguration = $this->get(SiteConfiguration::class); try { // ensure no previous site configuration influences the test GeneralUtility::rmdir($this->instancePath . '/typo3conf/sites/' . $identifier, true); @@ -79,11 +73,7 @@ trait SiteBasedTestTrait string $identifier, array $overrides ): void { - $siteConfiguration = new SiteConfiguration( - $this->instancePath . '/typo3conf/sites/', - $this->get(EventDispatcherInterface::class), - $this->get('cache.core') - ); + $siteConfiguration = $this->get(SiteConfiguration::class); $configuration = $siteConfiguration->load($identifier); $configuration = array_merge($configuration, $overrides); try { -- GitLab