2 declare(strict_types = 1);
25 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
31 $pseudoSiteFinderMock = $this->getMockBuilder(PseudoSiteFinder::class)
32 ->setMethods([
'findAll'])
33 ->disableOriginalConstructor()
35 GeneralUtility::addInstance(PseudoSiteFinder::class, $pseudoSiteFinderMock);
44 $site =
new Site(
'main', 1, [
50 'base' =>
'http://9-5.typo3.test/',
51 'locale' =>
'en_US-UTF-8'
56 'base' =>
'http://de.9-5.typo3.test/',
57 'locale' =>
'en_US-UTF-8'
62 'base' =>
'http://9-5.typo3.test/da/',
63 'locale' =>
'da_DK.UTF-8'
67 $secondSite =
new Site(
'second', 13, [
74 'locale' =>
'en_US-UTF-8'
80 'locale' =>
'da_DK.UTF-8'
86 ->getMockBuilder(SiteFinder::class)
87 ->setMethods([
'getAllSites'])
88 ->disableOriginalConstructor()
90 $finderMock->method(
'getAllSites')->willReturn([
'main' => $site,
'second' => $secondSite]);
93 $request =
new ServerRequest(
'http://9-5.typo3.test/da/my-page/');
95 $result = $subject->matchRequest($request);
96 self::assertEquals(1, $result->getLanguage()->getLanguageId());
100 $result = $subject->matchRequest($request);
102 self::assertEquals(1, $result->getLanguage()->getLanguageId());
106 $result = $subject->matchRequest($request);
108 self::assertEquals(
'second', $result->getSite()->getIdentifier());
109 self::assertEquals(1, $result->getLanguage()->getLanguageId());
113 $result = $subject->matchRequest($request);
115 self::assertEquals(2, $result->getLanguage()->getLanguageId());
119 $result = $subject->matchRequest($request);
121 self::assertEquals(0, $result->getLanguage()->getLanguageId());
125 $result = $subject->matchRequest($request);
127 self::assertNull($result->getLanguage());
128 self::assertEquals(
'second', $result->getSite()->getIdentifier());
137 $site =
new Site(
'main', 1, [
138 'base' =>
'https://www.example.com/',
141 'title' =>
'English',
143 'base' =>
'http://example.us/',
144 'locale' =>
'en_US-UTF-8'
147 'title' =>
'Deutsch',
149 'base' =>
'http://www.example.de/',
150 'locale' =>
'en_US-UTF-8'
155 'base' =>
'http://www.example.com/da/',
156 'locale' =>
'da_DK.UTF-8'
162 'locale' =>
'fr_FR.UTF-8'
166 $secondSite =
new Site(
'second', 13, [
170 'title' =>
'English',
173 'locale' =>
'en_US-UTF-8'
179 'locale' =>
'da_DK.UTF-8'
185 ->getMockBuilder(SiteFinder::class)
186 ->setMethods([
'getAllSites'])
187 ->disableOriginalConstructor()
189 $finderMock->method(
'getAllSites')->willReturn([
'main' => $site,
'second' => $secondSite]);
194 $result = $subject->matchRequest($request);
196 self::assertEquals($site, $result->getSite());
197 self::assertNull($result->getLanguage());
201 $result = $subject->matchRequest($request);
202 self::assertEquals($secondSite, $result->getSite());
203 self::assertEquals(1, $result->getLanguage()->getLanguageId());
207 $result = $subject->matchRequest($request);
209 self::assertEquals($secondSite, $result->getSite());
210 self::assertNull($result->getLanguage());