2 declare(strict_types = 1);
25 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
39 $this->expectException(RouteNotFoundException::class);
40 $this->expectExceptionCode(1555303496);
41 $incomingUrl =
'https://king.com/lotus-flower/en/mr-magpie/bloom';
44 $subject->matchRequest($request,
null);
52 $incomingUrl =
'https://king.com/lotus-flower/en/mr-magpie/bloom';
53 $slugCandidates = [
'/mr-magpie/bloom/',
'/mr-magpie/bloom'];
54 $pageRecord = [
'uid' => 13,
'l10n_parent' => 0,
'slug' =>
'/mr-magpie/bloom'];
55 $site =
new Site(
'lotus-flower', 13, [
56 'base' =>
'/lotus-flower/',
60 'locale' =>
'en_US.UTF-8',
65 $language = $site->getDefaultLanguage();
68 $previousResult =
new SiteRouteResult($request->getUri(), $site, $language,
'/mr-magpie/bloom');
69 $subject = $this->getAccessibleMock(PageRouter::class, [
'getCandidateSlugsFromRoutePath',
'getPagesFromDatabaseForCandidates'], [$site]);
70 $subject->expects($this->once())->method(
'getCandidateSlugsFromRoutePath')->willReturn($slugCandidates);
71 $subject->expects($this->once())->method(
'getPagesFromDatabaseForCandidates')->willReturn([$pageRecord]);
72 $routeResult = $subject->matchRequest($request, $previousResult);
75 $this->assertEquals($expectedRouteResult, $routeResult);
85 $this->markTestSkipped(
'Should check for empty result, since tail is not considered anymore');
87 $incomingUrl =
'https://king.com/lotus-flower/en/mr-magpie/bloom/unknown-code/';
88 $slugCandidates = [
'/mr-magpie/bloom/unknown-code/',
'/mr-magpie/bloom/unknown-code'];
89 $pageRecord = [
'uid' => 13,
'l10n_parent' => 0,
'slug' =>
'/mr-magpie/bloom'];
90 $site =
new Site(
'lotus-flower', 13, [
91 'base' =>
'/lotus-flower/',
95 'locale' =>
'en_US.UTF-8',
100 $language = $site->getDefaultLanguage();
102 $previousResult =
new SiteRouteResult($request->getUri(), $site, $language,
'/mr-magpie/bloom/unknown-code/');
103 $subject = $this->getAccessibleMock(PageRouter::class, [
'getCandidateSlugsFromRoutePath',
'getPagesFromDatabaseForCandidates'], [$site, []]);
104 $subject->expects($this->once())->method(
'getCandidateSlugsFromRoutePath')->willReturn($slugCandidates);
105 $subject->expects($this->once())->method(
'getPagesFromDatabaseForCandidates')->willReturn([$pageRecord]);
106 $routeResult = $subject->matchRequest($request, $previousResult);
108 $expectedRouteResult =
new SiteRouteResult($request->getUri(), $site, $language,
'unknown-code/', [
'page' => $pageRecord]);
109 $this->assertEquals($expectedRouteResult, $routeResult);