‪TYPO3CMS  11.5
BackendLayoutViewTest.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\MockObject\MockObject;
22 use TYPO3\TestingFramework\Core\AccessibleObjectInterface;
23 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
24 
25 class ‪BackendLayoutViewTest extends UnitTestCase
26 {
30  protected ‪$backendLayoutView;
31 
35  protected function ‪setUp(): void
36  {
37  parent::setUp();
38  $this->backendLayoutView = $this->getAccessibleMock(
39  BackendLayoutView::class,
40  ['getPage', 'getRootLine'],
41  [],
42  '',
43  false
44  );
45  }
46 
54  public function ‪selectedCombinedIdentifierIsDetermined($expected, array $page, array $rootLine): void
55  {
56  $pageId = $page['uid'];
57 
58  $this->backendLayoutView->expects(self::once())
59  ->method('getPage')->with(self::equalTo($pageId))
60  ->willReturn($page);
61  $this->backendLayoutView
62  ->method('getRootLine')->with(self::equalTo($pageId))
63  ->willReturn($rootLine);
64 
65  $selectedCombinedIdentifier = $this->backendLayoutView->_call('getSelectedCombinedIdentifier', $pageId);
66  self::assertEquals($expected, $selectedCombinedIdentifier);
67  }
68 
73  {
74  return [
75  'first level w/o layout' => [
76  '0',
77  ['uid' => 1, 'pid' => 0, 'backend_layout' => '0', 'backend_layout_next_level' => '0'],
78  [
79  ['uid' => 1, 'pid' => 0, 'backend_layout' => '0', 'backend_layout_next_level' => '0'],
80  ['uid' => 0, 'pid' => null],
81  ],
82  ],
83  'first level with layout' => [
84  '1',
85  ['uid' => 1, 'pid' => 0, 'backend_layout' => '1', 'backend_layout_next_level' => '0'],
86  [
87  ['uid' => 1, 'pid' => 0, 'backend_layout' => '1', 'backend_layout_next_level' => '0'],
88  ['uid' => 0, 'pid' => null],
89  ],
90  ],
91  'first level with provided layout' => [
92  'mine_current',
93  ['uid' => 1, 'pid' => 0, 'backend_layout' => 'mine_current', 'backend_layout_next_level' => '0'],
94  [
95  ['uid' => 1, 'pid' => 0, 'backend_layout' => 'mine_current', 'backend_layout_next_level' => '0'],
96  ['uid' => 0, 'pid' => null],
97  ],
98  ],
99  'first level with next layout' => [
100  '0',
101  ['uid' => 1, 'pid' => 0, 'backend_layout' => '0', 'backend_layout_next_level' => '1'],
102  [
103  ['uid' => 1, 'pid' => 0, 'backend_layout' => '0', 'backend_layout_next_level' => '1'],
104  ['uid' => 0, 'pid' => null],
105  ],
106  ],
107  'first level with provided next layout' => [
108  '0',
109  ['uid' => 1, 'pid' => 0, 'backend_layout' => '0', 'backend_layout_next_level' => 'mine_next'],
110  [
111  ['uid' => 1, 'pid' => 0, 'backend_layout' => '0', 'backend_layout_next_level' => 'mine_next'],
112  ['uid' => 0, 'pid' => null],
113  ],
114  ],
115  'second level w/o layout, first level with layout' => [
116  '0',
117  ['uid' => 2, 'pid' => 1, 'backend_layout' => '0', 'backend_layout_next_level' => '0'],
118  [
119  ['uid' => 2, 'pid' => 1, 'backend_layout' => '0', 'backend_layout_next_level' => '0'],
120  ['uid' => 1, 'pid' => 0, 'backend_layout' => '1', 'backend_layout_next_level' => '0'],
121  ['uid' => 0, 'pid' => null],
122  ],
123  ],
124  'second level w/o layout, first level with next layout' => [
125  '1',
126  ['uid' => 2, 'pid' => 1, 'backend_layout' => '0', 'backend_layout_next_level' => '0'],
127  [
128  ['uid' => 2, 'pid' => 1, 'backend_layout' => '0', 'backend_layout_next_level' => '0'],
129  ['uid' => 1, 'pid' => 0, 'backend_layout' => '0', 'backend_layout_next_level' => '1'],
130  ['uid' => 0, 'pid' => null],
131  ],
132  ],
133  'second level with layout, first level with next layout' => [
134  '2',
135  ['uid' => 2, 'pid' => 1, 'backend_layout' => '2', 'backend_layout_next_level' => '0'],
136  [
137  ['uid' => 2, 'pid' => 1, 'backend_layout' => '2', 'backend_layout_next_level' => '0'],
138  ['uid' => 1, 'pid' => 0, 'backend_layout' => '0', 'backend_layout_next_level' => '1'],
139  ['uid' => 0, 'pid' => null],
140  ],
141  ],
142  'second level with layouts, first level resetting all layouts' => [
143  '1',
144  ['uid' => 2, 'pid' => 1, 'backend_layout' => '1', 'backend_layout_next_level' => '1'],
145  [
146  ['uid' => 2, 'pid' => 1, 'backend_layout' => '1', 'backend_layout_next_level' => '1'],
147  ['uid' => 1, 'pid' => 0, 'backend_layout' => '-1', 'backend_layout_next_level' => '-1'],
148  ['uid' => 0, 'pid' => null],
149  ],
150  ],
151  'second level with provided layouts, first level resetting all layouts' => [
152  'mine_current',
153  ['uid' => 2, 'pid' => 1, 'backend_layout' => 'mine_current', 'backend_layout_next_level' => 'mine_next'],
154  [
155  ['uid' => 2, 'pid' => 1, 'backend_layout' => 'mine_current', 'backend_layout_next_level' => 'mine_next'],
156  ['uid' => 1, 'pid' => 0, 'backend_layout' => '-1', 'backend_layout_next_level' => '-1'],
157  ['uid' => 0, 'pid' => null],
158  ],
159  ],
160  'second level resetting layout, first level with next layout' => [
161  false,
162  ['uid' => 2, 'pid' => 1, 'backend_layout' => '-1', 'backend_layout_next_level' => '0'],
163  [
164  ['uid' => 2, 'pid' => 1, 'backend_layout' => '-1', 'backend_layout_next_level' => '0'],
165  ['uid' => 1, 'pid' => 0, 'backend_layout' => '0', 'backend_layout_next_level' => '1'],
166  ['uid' => 0, 'pid' => null],
167  ],
168  ],
169  'second level resetting next layout, first level with next layout' => [
170  '1',
171  ['uid' => 2, 'pid' => 1, 'backend_layout' => '0', 'backend_layout_next_level' => '-1'],
172  [
173  ['uid' => 2, 'pid' => 1, 'backend_layout' => '0', 'backend_layout_next_level' => '-1'],
174  ['uid' => 1, 'pid' => 0, 'backend_layout' => '0', 'backend_layout_next_level' => '1'],
175  ['uid' => 0, 'pid' => null],
176  ],
177  ],
178  'third level w/o layout, second level resetting layout, first level with next layout' => [
179  '1',
180  ['uid' => 3, 'pid' => 2, 'backend_layout' => '0', 'backend_layout_next_level' => '0'],
181  [
182  ['uid' => 3, 'pid' => 2, 'backend_layout' => '0', 'backend_layout_next_level' => '0'],
183  ['uid' => 2, 'pid' => 1, 'backend_layout' => '-1', 'backend_layout_next_level' => '0'],
184  ['uid' => 1, 'pid' => 0, 'backend_layout' => '0', 'backend_layout_next_level' => '1'],
185  ['uid' => 0, 'pid' => null],
186  ],
187  ],
188  'third level w/o layout, second level resetting next layout, first level with next layout' => [
189  false,
190  ['uid' => 3, 'pid' => 2, 'backend_layout' => '0', 'backend_layout_next_level' => '0'],
191  [
192  ['uid' => 3, 'pid' => 2, 'backend_layout' => '0', 'backend_layout_next_level' => '0'],
193  ['uid' => 2, 'pid' => 1, 'backend_layout' => '0', 'backend_layout_next_level' => '-1'],
194  ['uid' => 1, 'pid' => 0, 'backend_layout' => '0', 'backend_layout_next_level' => '1'],
195  ['uid' => 0, 'pid' => null],
196  ],
197  ],
198  'third level with provided layouts, second level w/o layout, first level resetting layouts' => [
199  'mine_current',
200  ['uid' => 3, 'pid' => 2, 'backend_layout' => 'mine_current', 'backend_layout_next_level' => 'mine_next'],
201  [
202  ['uid' => 3, 'pid' => 2, 'backend_layout' => 'mine_current', 'backend_layout_next_level' => 'mine_next'],
203  ['uid' => 2, 'pid' => 1, 'backend_layout' => '0', 'backend_layout_next_level' => '0'],
204  ['uid' => 1, 'pid' => 0, 'backend_layout' => '-1', 'backend_layout_next_level' => '-1'],
205  ['uid' => 0, 'pid' => null],
206  ],
207  ],
208  ];
209  }
210 }
‪TYPO3\CMS\Backend\Tests\Unit\View\BackendLayoutViewTest\selectedCombinedIdentifierIsDeterminedDataProvider
‪array selectedCombinedIdentifierIsDeterminedDataProvider()
Definition: BackendLayoutViewTest.php:71
‪TYPO3\CMS\Backend\Tests\Unit\View\BackendLayoutViewTest\$backendLayoutView
‪BackendLayoutView MockObject AccessibleObjectInterface $backendLayoutView
Definition: BackendLayoutViewTest.php:29
‪TYPO3\CMS\Backend\Tests\Unit\View\BackendLayoutViewTest
Definition: BackendLayoutViewTest.php:26
‪TYPO3\CMS\Backend\Tests\Unit\View\BackendLayoutViewTest\selectedCombinedIdentifierIsDetermined
‪selectedCombinedIdentifierIsDetermined($expected, array $page, array $rootLine)
Definition: BackendLayoutViewTest.php:53
‪TYPO3\CMS\Backend\Tests\Unit\View\BackendLayoutViewTest\setUp
‪setUp()
Definition: BackendLayoutViewTest.php:34
‪TYPO3\CMS\Backend\Tests\Unit\View
Definition: ArrayBrowserTest.php:18
‪TYPO3\CMS\Backend\View\BackendLayoutView
Definition: BackendLayoutView.php:37