TYPO3 CMS  TYPO3_8-7
BackendLayoutViewTest.php
Go to the documentation of this file.
1 <?php
3 
4 /*
5  * This file is part of the TYPO3 CMS project.
6  *
7  * It is free software; you can redistribute it and/or modify it under
8  * the terms of the GNU General Public License, either version 2
9  * of the License, or any later version.
10  *
11  * For the full copyright and license information, please read the
12  * LICENSE.txt file that was distributed with this source code.
13  *
14  * The TYPO3 project - inspiring people to share!
15  */
16 
20 class BackendLayoutViewTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase
21 {
25  protected $backendLayoutView;
26 
30  protected function setUp()
31  {
32  $this->backendLayoutView = $this->getAccessibleMock(
33  \TYPO3\CMS\Backend\View\BackendLayoutView::class,
34  ['getPage', 'getRootLine'],
35  [],
36  '',
37  false
38  );
39  }
40 
48  public function selectedCombinedIdentifierIsDetermined($expected, array $page, array $rootLine)
49  {
50  $pageId = $page['uid'];
51 
52  $this->backendLayoutView->expects($this->once())
53  ->method('getPage')->with($this->equalTo($pageId))
54  ->will($this->returnValue($page));
55  $this->backendLayoutView->expects($this->any())
56  ->method('getRootLine')->with($this->equalTo($pageId))
57  ->will($this->returnValue($rootLine));
58 
59  $selectedCombinedIdentifier = $this->backendLayoutView->_call('getSelectedCombinedIdentifier', $pageId);
60  $this->assertEquals($expected, $selectedCombinedIdentifier);
61  }
62 
67  {
68  return [
69  'first level w/o layout' => [
70  '0',
71  ['uid' => 1, 'pid' => 0, 'backend_layout' => '0', 'backend_layout_next_level' => '0'],
72  [
73  ['uid' => 1, 'pid' => 0, 'backend_layout' => '0', 'backend_layout_next_level' => '0'],
74  ['uid' => 0, 'pid' => null],
75  ]
76  ],
77  'first level with layout' => [
78  '1',
79  ['uid' => 1, 'pid' => 0, 'backend_layout' => '1', 'backend_layout_next_level' => '0'],
80  [
81  ['uid' => 1, 'pid' => 0, 'backend_layout' => '1', 'backend_layout_next_level' => '0'],
82  ['uid' => 0, 'pid' => null],
83  ]
84  ],
85  'first level with provided layout' => [
86  'mine_current',
87  ['uid' => 1, 'pid' => 0, 'backend_layout' => 'mine_current', 'backend_layout_next_level' => '0'],
88  [
89  ['uid' => 1, 'pid' => 0, 'backend_layout' => 'mine_current', 'backend_layout_next_level' => '0'],
90  ['uid' => 0, 'pid' => null],
91  ]
92  ],
93  'first level with next layout' => [
94  '0',
95  ['uid' => 1, 'pid' => 0, 'backend_layout' => '0', 'backend_layout_next_level' => '1'],
96  [
97  ['uid' => 1, 'pid' => 0, 'backend_layout' => '0', 'backend_layout_next_level' => '1'],
98  ['uid' => 0, 'pid' => null],
99  ]
100  ],
101  'first level with provided next layout' => [
102  '0',
103  ['uid' => 1, 'pid' => 0, 'backend_layout' => '0', 'backend_layout_next_level' => 'mine_next'],
104  [
105  ['uid' => 1, 'pid' => 0, 'backend_layout' => '0', 'backend_layout_next_level' => 'mine_next'],
106  ['uid' => 0, 'pid' => null],
107  ]
108  ],
109  'second level w/o layout, first level with layout' => [
110  '0',
111  ['uid' => 2, 'pid' => 1, 'backend_layout' => '0', 'backend_layout_next_level' => '0'],
112  [
113  ['uid' => 2, 'pid' => 1, 'backend_layout' => '0', 'backend_layout_next_level' => '0'],
114  ['uid' => 1, 'pid' => 0, 'backend_layout' => '1', 'backend_layout_next_level' => '0'],
115  ['uid' => 0, 'pid' => null],
116  ]
117  ],
118  'second level w/o layout, first level with next layout' => [
119  '1',
120  ['uid' => 2, 'pid' => 1, 'backend_layout' => '0', 'backend_layout_next_level' => '0'],
121  [
122  ['uid' => 2, 'pid' => 1, 'backend_layout' => '0', 'backend_layout_next_level' => '0'],
123  ['uid' => 1, 'pid' => 0, 'backend_layout' => '0', 'backend_layout_next_level' => '1'],
124  ['uid' => 0, 'pid' => null],
125  ]
126  ],
127  'second level with layout, first level with next layout' => [
128  '2',
129  ['uid' => 2, 'pid' => 1, 'backend_layout' => '2', 'backend_layout_next_level' => '0'],
130  [
131  ['uid' => 2, 'pid' => 1, 'backend_layout' => '2', 'backend_layout_next_level' => '0'],
132  ['uid' => 1, 'pid' => 0, 'backend_layout' => '0', 'backend_layout_next_level' => '1'],
133  ['uid' => 0, 'pid' => null],
134  ]
135  ],
136  'second level with layouts, first level resetting all layouts' => [
137  '1',
138  ['uid' => 2, 'pid' => 1, 'backend_layout' => '1', 'backend_layout_next_level' => '1'],
139  [
140  ['uid' => 2, 'pid' => 1, 'backend_layout' => '1', 'backend_layout_next_level' => '1'],
141  ['uid' => 1, 'pid' => 0, 'backend_layout' => '-1', 'backend_layout_next_level' => '-1'],
142  ['uid' => 0, 'pid' => null],
143  ]
144  ],
145  'second level with provided layouts, first level resetting all layouts' => [
146  'mine_current',
147  ['uid' => 2, 'pid' => 1, 'backend_layout' => 'mine_current', 'backend_layout_next_level' => 'mine_next'],
148  [
149  ['uid' => 2, 'pid' => 1, 'backend_layout' => 'mine_current', 'backend_layout_next_level' => 'mine_next'],
150  ['uid' => 1, 'pid' => 0, 'backend_layout' => '-1', 'backend_layout_next_level' => '-1'],
151  ['uid' => 0, 'pid' => null],
152  ]
153  ],
154  'second level resetting layout, first level with next layout' => [
155  false,
156  ['uid' => 2, 'pid' => 1, 'backend_layout' => '-1', 'backend_layout_next_level' => '0'],
157  [
158  ['uid' => 2, 'pid' => 1, 'backend_layout' => '-1', 'backend_layout_next_level' => '0'],
159  ['uid' => 1, 'pid' => 0, 'backend_layout' => '0', 'backend_layout_next_level' => '1'],
160  ['uid' => 0, 'pid' => null],
161  ]
162  ],
163  'second level resetting next layout, first level with next layout' => [
164  '1',
165  ['uid' => 2, 'pid' => 1, 'backend_layout' => '0', 'backend_layout_next_level' => '-1'],
166  [
167  ['uid' => 2, 'pid' => 1, 'backend_layout' => '0', 'backend_layout_next_level' => '-1'],
168  ['uid' => 1, 'pid' => 0, 'backend_layout' => '0', 'backend_layout_next_level' => '1'],
169  ['uid' => 0, 'pid' => null],
170  ]
171  ],
172  'third level w/o layout, second level resetting layout, first level with next layout' => [
173  '1',
174  ['uid' => 3, 'pid' => 2, 'backend_layout' => '0', 'backend_layout_next_level' => '0'],
175  [
176  ['uid' => 3, 'pid' => 2, 'backend_layout' => '0', 'backend_layout_next_level' => '0'],
177  ['uid' => 2, 'pid' => 1, 'backend_layout' => '-1', 'backend_layout_next_level' => '0'],
178  ['uid' => 1, 'pid' => 0, 'backend_layout' => '0', 'backend_layout_next_level' => '1'],
179  ['uid' => 0, 'pid' => null],
180  ]
181  ],
182  'third level w/o layout, second level resetting next layout, first level with next layout' => [
183  false,
184  ['uid' => 3, 'pid' => 2, 'backend_layout' => '0', 'backend_layout_next_level' => '0'],
185  [
186  ['uid' => 3, 'pid' => 2, 'backend_layout' => '0', 'backend_layout_next_level' => '0'],
187  ['uid' => 2, 'pid' => 1, 'backend_layout' => '0', 'backend_layout_next_level' => '-1'],
188  ['uid' => 1, 'pid' => 0, 'backend_layout' => '0', 'backend_layout_next_level' => '1'],
189  ['uid' => 0, 'pid' => null],
190  ]
191  ],
192  'third level with provided layouts, second level w/o layout, first level resetting layouts' => [
193  'mine_current',
194  ['uid' => 3, 'pid' => 2, 'backend_layout' => 'mine_current', 'backend_layout_next_level' => 'mine_next'],
195  [
196  ['uid' => 3, 'pid' => 2, 'backend_layout' => 'mine_current', 'backend_layout_next_level' => 'mine_next'],
197  ['uid' => 2, 'pid' => 1, 'backend_layout' => '0', 'backend_layout_next_level' => '0'],
198  ['uid' => 1, 'pid' => 0, 'backend_layout' => '-1', 'backend_layout_next_level' => '-1'],
199  ['uid' => 0, 'pid' => null],
200  ]
201  ],
202  ];
203  }
204 }
selectedCombinedIdentifierIsDetermined($expected, array $page, array $rootLine)