‪TYPO3CMS  ‪main
PageLayoutResolverTest.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;
22 use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
23 
24 final class ‪PageLayoutResolverTest extends FunctionalTestCase
25 {
26  #[Test]
28  {
29  $subject = $this->get(PageLayoutResolver::class);
30  $result = $subject->getLayoutIdentifierForPage(['backend_layout' => '1'], ['does-not-matter']);
31  self::assertEquals('1', $result);
32  }
33 
34  #[Test]
36  {
37  $subject = $this->get(PageLayoutResolver::class);
38  $result = $subject->getLayoutIdentifierForPage(['backend_layout' => '-1'], ['does-not-matter']);
39  self::assertEquals('none', $result);
40  }
41 
42  #[Test]
44  {
45  $subject = $this->get(PageLayoutResolver::class);
46  $parentPages = [['backend_layout' => '']];
47  $page = ['backend_layout' => '0', 'uid' => 123];
48  $result = $subject->getLayoutIdentifierForPage($page, array_merge([$page], $parentPages));
49  self::assertEquals('default', $result);
50  $page = ['backend_layout' => '', 'uid' => 123];
51  $result = $subject->getLayoutIdentifierForPage($page, array_merge([$page], $parentPages));
52  self::assertEquals('default', $result);
53  }
54 
55  #[Test]
57  {
58  $subject = $this->get(PageLayoutResolver::class);
59  // No layout specified for current page
60  $page = ['backend_layout' => '', 'uid' => 123];
61  $parentPages = [['uid' => 13, 'backend_layout' => 'does-not-matter'], ['uid' => 1, 'backend_layout_next_level' => '0']];
62  $result = $subject->getLayoutIdentifierForPage($page, array_merge([$page], $parentPages));
63  self::assertEquals('default', $result);
64  }
65 
66  #[Test]
68  {
69  $subject = $this->get(PageLayoutResolver::class);
70  // No layout specified for current page
71  $page = ['backend_layout' => '', 'uid' => 123];
72  $parentPages = [['uid' => 13, 'backend_layout' => 'does-not-matter', 'backend_layout_next_level' => ''], ['uid' => 1, 'backend_layout_next_level' => 'regular']];
73  $result = $subject->getLayoutIdentifierForPage($page, array_merge([$page], $parentPages));
74  self::assertEquals('regular', $result);
75  }
76 
77  #[Test]
79  {
80  $subject = $this->get(PageLayoutResolver::class);
81  // No layout specified for current page
82  $page = ['backend_layout' => '', 'uid' => 123];
83  $parentPages = [['uid' => 13, 'backend_layout' => 'does-not-matter'], ['uid' => 15, 'backend_layout_next_level' => '-1'], ['uid' => 1, 'backend_layout_next_level' => 'regular']];
84  $result = $subject->getLayoutIdentifierForPage($page, array_merge([$page], $parentPages));
85  self::assertEquals('none', $result);
86  }
87 }
‪TYPO3\CMS\Core\Tests\Functional\Page\PageLayoutResolverTest\getLayoutIdentifierForPageFetchesRootLinePagesUpUntilSomethingWasFound
‪getLayoutIdentifierForPageFetchesRootLinePagesUpUntilSomethingWasFound()
Definition: PageLayoutResolverTest.php:67
‪TYPO3\CMS\Core\Tests\Functional\Page\PageLayoutResolverTest
Definition: PageLayoutResolverTest.php:25
‪TYPO3\CMS\Core\Page\PageLayoutResolver
Definition: PageLayoutResolver.php:42
‪TYPO3\CMS\Core\Tests\Functional\Page\PageLayoutResolverTest\getLayoutIdentifierForPageFetchesSelectedPageDirectly
‪getLayoutIdentifierForPageFetchesSelectedPageDirectly()
Definition: PageLayoutResolverTest.php:27
‪TYPO3\CMS\Core\Tests\Functional\Page\PageLayoutResolverTest\getLayoutIdentifierForPageFetchesRootLinePagesUpWhenNoneWasSelectedExplicitly
‪getLayoutIdentifierForPageFetchesRootLinePagesUpWhenNoneWasSelectedExplicitly()
Definition: PageLayoutResolverTest.php:78
‪TYPO3\CMS\Core\Tests\Functional\Page\PageLayoutResolverTest\getLayoutIdentifierForPageTreatsSpecialValueZeroOrEmptyAsDefaultWhenNothingGivenInRootLine
‪getLayoutIdentifierForPageTreatsSpecialValueZeroOrEmptyAsDefaultWhenNothingGivenInRootLine()
Definition: PageLayoutResolverTest.php:56
‪TYPO3\CMS\Core\Tests\Functional\Page\PageLayoutResolverTest\getLayoutIdentifierForPageTreatsSpecialMinusOneValueAsNone
‪getLayoutIdentifierForPageTreatsSpecialMinusOneValueAsNone()
Definition: PageLayoutResolverTest.php:35
‪TYPO3\CMS\Core\Tests\Functional\Page
Definition: JavaScriptRendererTest.php:18
‪TYPO3\CMS\Core\Tests\Functional\Page\PageLayoutResolverTest\getLayoutIdentifierForPageTreatsSpecialValueZeroOrEmptyAsDefaultWithEmptyRootLine
‪getLayoutIdentifierForPageTreatsSpecialValueZeroOrEmptyAsDefaultWithEmptyRootLine()
Definition: PageLayoutResolverTest.php:43