8 use \Magento\Framework\View\Layout\ScheduledStructure;
30 $this->scheduledData = [
31 'scheduledStructure' => [
32 'element1' => [
'data',
'of',
'element',
'1'],
33 'element2' => [
'data',
'of',
'element',
'2'],
34 'element3' => [
'data',
'of',
'element',
'3'],
35 'element4' => [
'data',
'of',
'element',
'4'],
36 'element5' => [
'data',
'of',
'element',
'5'],
38 'scheduledElements' => [
39 'element1' => [
'data',
'of',
'element',
'1'],
40 'element2' => [
'data',
'of',
'element',
'2'],
41 'element3' => [
'data',
'of',
'element',
'3'],
42 'element4' => [
'data',
'of',
'element',
'4'],
43 'element5' => [
'data',
'of',
'element',
'5'],
44 'element9' => [
'data',
'of',
'element',
'9'],
47 'element1' => [
'data',
'of',
'element',
'to',
'move',
'1'],
48 'element4' => [
'data',
'of',
'element',
'to',
'move',
'4'],
49 'element6' => [
'data',
'of',
'element',
'to',
'move',
'6'],
51 'scheduledRemoves' => [
52 'element2' => [
'data',
'of',
'element',
'to',
'remove',
'2'],
53 'element3' => [
'data',
'of',
'element',
'to',
'remove',
'3'],
54 'element6' => [
'data',
'of',
'element',
'to',
'remove',
'6'],
55 'element7' => [
'data',
'of',
'element',
'to',
'remove',
'7'],
65 $helperObjectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
66 $this->model = $helperObjectManager->getObject(
68 [
'data' => $this->scheduledData]
80 $expected = [
'element1',
'element4'];
81 $this->assertEquals($expected, $this->model->getListToMove());
92 $expected = [
'element2',
'element3'];
93 $this->assertEquals($expected, $this->model->getListToRemove());
101 $this->assertEquals($this->scheduledData[
'scheduledElements'], $this->model->getElements());
109 $expected = $this->scheduledData[
'scheduledElements'][
'element2'];
110 $this->assertEquals($expected, $this->model->getElement(
'element2'));
112 $default = [
'some',
'default',
'value'];
113 $this->assertEquals($default, $this->model->getElement(
'not_existing_element', $default));
121 $this->assertFalse($this->model->isElementsEmpty());
122 $this->model->flushScheduledStructure();
123 $this->assertTrue($this->model->isElementsEmpty());
131 $data = [
'some',
'new',
'data'];
134 $this->assertFalse($this->model->hasElement(
'new_element'));
135 $this->model->setElement(
'new_element',
$data);
136 $this->assertEquals(
$data, $this->model->getElement(
'new_element'));
139 $this->assertTrue($this->model->hasElement(
'element1'));
140 $this->model->setElement(
'element1',
$data);
141 $this->assertEquals(
$data, $this->model->getElement(
'element1'));
149 $this->assertFalse($this->model->hasElement(
'not_existing_element'));
150 $this->assertTrue($this->model->hasElement(
'element1'));
158 $this->assertTrue($this->model->hasElement(
'element1'));
159 $this->model->unsetElement(
'element1');
160 $this->assertFalse($this->model->hasElement(
'element1'));
169 $this->scheduledData[
'scheduledMoves'][
'element1'],
170 $this->model->getElementToMove(
'element1')
172 $default = [
'some',
'data'];
173 $this->assertEquals($default, $this->model->getElementToMove(
'not_existing_element', $default));
182 $this->scheduledData[
'scheduledIfconfig'][
'element1'],
183 $this->model->getIfconfigElement(
'element1')
185 $default = [
'some',
'data'];
186 $this->assertEquals($default, $this->model->getIfconfigElement(
'not_existing_element', $default));
194 $data = [
'some',
'new',
'data',
'element',
'to',
'move'];
197 $this->assertFalse($this->model->hasElement(
'new_element'));
198 $this->model->setElementToMove(
'new_element',
$data);
199 $this->assertEquals(
$data, $this->model->getElementToMove(
'new_element'));
202 $this->assertNotEquals(
$data, $this->model->getElementToMove(
'element1'));
203 $this->model->setElementToMove(
'element1',
$data);
204 $this->assertEquals(
$data, $this->model->getElementToMove(
'element1'));
212 $this->assertContains(
'element2', $this->model->getListToRemove());
213 $this->model->unsetElementFromListToRemove(
'element2');
214 $this->assertNotContains(
'element2', $this->model->getListToRemove());
222 $this->assertNotContains(
'element1', $this->model->getListToRemove());
223 $this->model->setElementToRemoveList(
'element1');
224 $this->assertContains(
'element1', $this->model->getListToRemove());
232 $this->assertEquals($this->scheduledData[
'scheduledStructure'], $this->model->getStructure());
240 $expected = $this->scheduledData[
'scheduledStructure'][
'element2'];
241 $this->assertEquals($expected, $this->model->getStructureElement(
'element2'));
243 $default = [
'some',
'default',
'value'];
244 $this->assertEquals($default, $this->model->getStructureElement(
'not_existing_element', $default));
252 $this->assertFalse($this->model->isStructureEmpty());
253 $this->model->flushScheduledStructure();
254 $this->assertTrue($this->model->isStructureEmpty());
262 $this->assertTrue($this->model->hasStructureElement(
'element1'));
263 $this->assertFalse($this->model->hasStructureElement(
'not_existing_element'));
271 $data = [
'some',
'new',
'data',
'structure',
'element'];
274 $this->assertFalse($this->model->hasStructureElement(
'new_element'));
275 $this->model->setStructureElement(
'new_element',
$data);
276 $this->assertEquals(
$data, $this->model->getStructureElement(
'new_element'));
279 $this->assertTrue($this->model->hasStructureElement(
'element1'));
280 $this->model->setStructureElement(
'element1',
$data);
281 $this->assertEquals(
$data, $this->model->getStructureElement(
'element1'));
289 $this->assertTrue($this->model->hasStructureElement(
'element1'));
290 $this->model->unsetStructureElement(
'element1');
291 $this->assertFalse($this->model->hasStructureElement(
'element1'));
299 $this->assertEquals($this->scheduledData[
'scheduledPaths'], $this->model->getPaths());
307 $this->assertEquals($this->scheduledData[
'scheduledPaths'][
'path1'], $this->model->getPath(
'path1'));
308 $default = [
'some',
'data'];
309 $this->assertEquals($default, $this->model->getPath(
'not_existing_element', $default));
317 $this->assertTrue($this->model->hasPath(
'path1'));
318 $this->assertFalse($this->model->hasPath(
'not_existing_element'));
326 $data = [
'some',
'new',
'data',
'path'];
329 $this->assertFalse($this->model->hasPath(
'new_element'));
330 $this->model->setPathElement(
'new_element',
$data);
331 $this->assertEquals(
$data, $this->model->getPath(
'new_element'));
334 $this->assertTrue($this->model->hasPath(
'path1'));
335 $this->model->setPathElement(
'path1',
$data);
336 $this->assertEquals(
$data, $this->model->getPath(
'path1'));
344 $this->assertTrue($this->model->hasPath(
'path1'));
345 $this->model->unsetPathElement(
'path1');
346 $this->assertFalse($this->model->hasPath(
'path1'));
354 $this->assertNotEmpty($this->model->getPaths());
355 $this->model->flushPaths();
356 $this->assertEmpty($this->model->getPaths());
364 $this->assertNotEmpty($this->model->getPaths());
365 $this->assertNotEmpty($this->model->getElements());
366 $this->assertNotEmpty($this->model->getStructure());
368 $this->model->flushScheduledStructure();
370 $this->assertEmpty($this->model->getPaths());
371 $this->assertEmpty($this->model->getElements());
372 $this->assertEmpty($this->model->getStructure());
381 $expectedToRemove = [
'element2',
'element3'];
382 $expectedToRemoveWithBroken = [
'element2',
'element3',
'element9'];
383 $this->assertEquals($expectedToRemove, $this->model->getListToRemove());
385 $this->model->setElementToBrokenParentList(
$element);
386 $this->assertEquals($expectedToRemoveWithBroken, $this->model->getListToRemove());
388 $this->model->unsetElementFromBrokenParentList(
$element);
389 $this->assertEquals($expectedToRemove, $this->model->getListToRemove());
399 $this->assertArrayNotHasKey(
$name, $this->model->getListToSort());
400 $this->model->setElementToSortList($parentName,
$name, $sibling, $isAfter);
401 $this->assertEquals($elementsList, $this->model->getListToSort());
409 $this->assertEmpty($this->model->getElementToSort(
'test'));
418 $this->model->setElementToSortList($parentName,
$name, $sibling, $isAfter);
419 $this->assertEquals(
$element, $this->model->getElementToSort(
$name));
428 $this->model->setElementToSortList($parentName,
$name, $sibling, $isAfter);
429 $this->assertArrayHasKey(
$name, $this->model->getListToSort());
430 $this->model->unsetElementToSort(
$name);
431 $this->assertArrayNotHasKey(
$name, $this->model->getListToSort());
440 $this->assertTrue($this->model->isListToSortEmpty());
441 $this->model->setElementToSortList($parentName,
$name, $sibling, $isAfter);
442 $this->assertFalse($this->model->isListToSortEmpty());
testHasStructureElement()
testFlushScheduledStructure()
testUnsetStructureElement()
testUnsetElementFromListToRemove()
testSetElementToSortList()
testSetStructureElement()
const ELEMENT_OFFSET_OR_SIBLING
testSetElementToRemoveList()
testSetElementToBrokenParentList()
testGetStructureElement()
const ELEMENT_PARENT_NAME
testGetElementToSortEmpty()
if(!isset($_GET['name'])) $name