TYPO3  7.6
BackendLayoutViewTest.php
Go to the documentation of this file.
1 <?php
2 namespace TYPO3\CMS\Backend\Tests\Unit\View;
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\CMS\Core\Tests\UnitTestCase
21 {
25  protected $backendLayoutView;
26 
30  protected function setUp()
31  {
32  $this->backendLayoutView = $this->getAccessibleMock(
33  \TYPO3\CMS\Backend\View\BackendLayoutView::class,
34  array('getPage', 'getRootLine'),
35  array(), '', false
36  );
37  }
38 
46  public function selectedCombinedIdentifierIsDetermined($expected, array $page, array $rootLine)
47  {
48  $pageId = $page['uid'];
49 
50  $this->backendLayoutView->expects($this->once())
51  ->method('getPage')->with($this->equalTo($pageId))
52  ->will($this->returnValue($page));
53  $this->backendLayoutView->expects($this->any())
54  ->method('getRootLine')->with($this->equalTo($pageId))
55  ->will($this->returnValue($rootLine));
56 
57  $selectedCombinedIdentifier = $this->backendLayoutView->_call('getSelectedCombinedIdentifier', $pageId);
58  $this->assertEquals($expected, $selectedCombinedIdentifier);
59  }
60 
65  {
66  return array(
67  'first level w/o layout' => array(
68  '0',
69  array('uid' => 1, 'pid' => 0, 'backend_layout' => '0', 'backend_layout_next_level' => '0'),
70  array(
71  array('uid' => 1, 'pid' => 0, 'backend_layout' => '0', 'backend_layout_next_level' => '0'),
72  array('uid' => 0, 'pid' => null),
73  )
74  ),
75  'first level with layout' => array(
76  '1',
77  array('uid' => 1, 'pid' => 0, 'backend_layout' => '1', 'backend_layout_next_level' => '0'),
78  array(
79  array('uid' => 1, 'pid' => 0, 'backend_layout' => '1', 'backend_layout_next_level' => '0'),
80  array('uid' => 0, 'pid' => null),
81  )
82  ),
83  'first level with provided layout' => array(
84  'mine_current',
85  array('uid' => 1, 'pid' => 0, 'backend_layout' => 'mine_current', 'backend_layout_next_level' => '0'),
86  array(
87  array('uid' => 1, 'pid' => 0, 'backend_layout' => 'mine_current', 'backend_layout_next_level' => '0'),
88  array('uid' => 0, 'pid' => null),
89  )
90  ),
91  'first level with next layout' => array(
92  '0',
93  array('uid' => 1, 'pid' => 0, 'backend_layout' => '0', 'backend_layout_next_level' => '1'),
94  array(
95  array('uid' => 1, 'pid' => 0, 'backend_layout' => '0', 'backend_layout_next_level' => '1'),
96  array('uid' => 0, 'pid' => null),
97  )
98  ),
99  'first level with provided next layout' => array(
100  '0',
101  array('uid' => 1, 'pid' => 0, 'backend_layout' => '0', 'backend_layout_next_level' => 'mine_next'),
102  array(
103  array('uid' => 1, 'pid' => 0, 'backend_layout' => '0', 'backend_layout_next_level' => 'mine_next'),
104  array('uid' => 0, 'pid' => null),
105  )
106  ),
107  'second level w/o layout, first level with layout' => array(
108  '0',
109  array('uid' => 2, 'pid' => 1, 'backend_layout' => '0', 'backend_layout_next_level' => '0'),
110  array(
111  array('uid' => 2, 'pid' => 1, 'backend_layout' => '0', 'backend_layout_next_level' => '0'),
112  array('uid' => 1, 'pid' => 0, 'backend_layout' => '1', 'backend_layout_next_level' => '0'),
113  array('uid' => 0, 'pid' => null),
114  )
115  ),
116  'second level w/o layout, first level with next layout' => array(
117  '1',
118  array('uid' => 2, 'pid' => 1, 'backend_layout' => '0', 'backend_layout_next_level' => '0'),
119  array(
120  array('uid' => 2, 'pid' => 1, 'backend_layout' => '0', 'backend_layout_next_level' => '0'),
121  array('uid' => 1, 'pid' => 0, 'backend_layout' => '0', 'backend_layout_next_level' => '1'),
122  array('uid' => 0, 'pid' => null),
123  )
124  ),
125  'second level with layout, first level with next layout' => array(
126  '2',
127  array('uid' => 2, 'pid' => 1, 'backend_layout' => '2', 'backend_layout_next_level' => '0'),
128  array(
129  array('uid' => 2, 'pid' => 1, 'backend_layout' => '2', 'backend_layout_next_level' => '0'),
130  array('uid' => 1, 'pid' => 0, 'backend_layout' => '0', 'backend_layout_next_level' => '1'),
131  array('uid' => 0, 'pid' => null),
132  )
133  ),
134  'second level with layouts, first level resetting all layouts' => array(
135  '1',
136  array('uid' => 2, 'pid' => 1, 'backend_layout' => '1', 'backend_layout_next_level' => '1'),
137  array(
138  array('uid' => 2, 'pid' => 1, 'backend_layout' => '1', 'backend_layout_next_level' => '1'),
139  array('uid' => 1, 'pid' => 0, 'backend_layout' => '-1', 'backend_layout_next_level' => '-1'),
140  array('uid' => 0, 'pid' => null),
141  )
142  ),
143  'second level with provided layouts, first level resetting all layouts' => array(
144  'mine_current',
145  array('uid' => 2, 'pid' => 1, 'backend_layout' => 'mine_current', 'backend_layout_next_level' => 'mine_next'),
146  array(
147  array('uid' => 2, 'pid' => 1, 'backend_layout' => 'mine_current', 'backend_layout_next_level' => 'mine_next'),
148  array('uid' => 1, 'pid' => 0, 'backend_layout' => '-1', 'backend_layout_next_level' => '-1'),
149  array('uid' => 0, 'pid' => null),
150  )
151  ),
152  'second level resetting layout, first level with next layout' => array(
153  false,
154  array('uid' => 2, 'pid' => 1, 'backend_layout' => '-1', 'backend_layout_next_level' => '0'),
155  array(
156  array('uid' => 2, 'pid' => 1, 'backend_layout' => '-1', 'backend_layout_next_level' => '0'),
157  array('uid' => 1, 'pid' => 0, 'backend_layout' => '0', 'backend_layout_next_level' => '1'),
158  array('uid' => 0, 'pid' => null),
159  )
160  ),
161  'second level resetting next layout, first level with next layout' => array(
162  '1',
163  array('uid' => 2, 'pid' => 1, 'backend_layout' => '0', 'backend_layout_next_level' => '-1'),
164  array(
165  array('uid' => 2, 'pid' => 1, 'backend_layout' => '0', 'backend_layout_next_level' => '-1'),
166  array('uid' => 1, 'pid' => 0, 'backend_layout' => '0', 'backend_layout_next_level' => '1'),
167  array('uid' => 0, 'pid' => null),
168  )
169  ),
170  'third level w/o layout, second level resetting layout, first level with next layout' => array(
171  '1',
172  array('uid' => 3, 'pid' => 2, 'backend_layout' => '0', 'backend_layout_next_level' => '0'),
173  array(
174  array('uid' => 3, 'pid' => 2, 'backend_layout' => '0', 'backend_layout_next_level' => '0'),
175  array('uid' => 2, 'pid' => 1, 'backend_layout' => '-1', 'backend_layout_next_level' => '0'),
176  array('uid' => 1, 'pid' => 0, 'backend_layout' => '0', 'backend_layout_next_level' => '1'),
177  array('uid' => 0, 'pid' => null),
178  )
179  ),
180  'third level w/o layout, second level resetting next layout, first level with next layout' => array(
181  false,
182  array('uid' => 3, 'pid' => 2, 'backend_layout' => '0', 'backend_layout_next_level' => '0'),
183  array(
184  array('uid' => 3, 'pid' => 2, 'backend_layout' => '0', 'backend_layout_next_level' => '0'),
185  array('uid' => 2, 'pid' => 1, 'backend_layout' => '0', 'backend_layout_next_level' => '-1'),
186  array('uid' => 1, 'pid' => 0, 'backend_layout' => '0', 'backend_layout_next_level' => '1'),
187  array('uid' => 0, 'pid' => null),
188  )
189  ),
190  'third level with provided layouts, second level w/o layout, first level resetting layouts' => array(
191  'mine_current',
192  array('uid' => 3, 'pid' => 2, 'backend_layout' => 'mine_current', 'backend_layout_next_level' => 'mine_next'),
193  array(
194  array('uid' => 3, 'pid' => 2, 'backend_layout' => 'mine_current', 'backend_layout_next_level' => 'mine_next'),
195  array('uid' => 2, 'pid' => 1, 'backend_layout' => '0', 'backend_layout_next_level' => '0'),
196  array('uid' => 1, 'pid' => 0, 'backend_layout' => '-1', 'backend_layout_next_level' => '-1'),
197  array('uid' => 0, 'pid' => null),
198  )
199  ),
200  );
201  }
202 }