public function MenuTreeStorageTest::testMenuRebuild in Drupal 8
Same name and namespace in other branches
- 9 core/tests/Drupal/KernelTests/Core/Menu/MenuTreeStorageTest.php \Drupal\KernelTests\Core\Menu\MenuTreeStorageTest::testMenuRebuild()
Ensure hierarchy persists after a menu rebuild.
File
- core/
tests/ Drupal/ KernelTests/ Core/ Menu/ MenuTreeStorageTest.php, line 313
Class
- MenuTreeStorageTest
- Tests the menu tree storage.
Namespace
Drupal\KernelTests\Core\MenuCode
public function testMenuRebuild() {
// root
// - child1
// -- child2
// --- child3
// ---- child4
$this
->addMenuLink('root');
$this
->addMenuLink('child1', 'root');
$this
->addMenuLink('child2', 'child1');
$this
->addMenuLink('child3', 'child2');
$this
->addMenuLink('child4', 'child3');
$this
->assertEqual($this->treeStorage
->getSubtreeHeight('root'), 5);
$this
->assertEqual($this->treeStorage
->getSubtreeHeight('child1'), 4);
$this
->assertEqual($this->treeStorage
->getSubtreeHeight('child2'), 3);
$this
->assertEqual($this->treeStorage
->getSubtreeHeight('child3'), 2);
$this
->assertEqual($this->treeStorage
->getSubtreeHeight('child4'), 1);
// Intentionally leave child3 out to mimic static or external links.
$definitions = $this->treeStorage
->loadMultiple([
'root',
'child1',
'child2',
'child4',
]);
$this->treeStorage
->rebuild($definitions);
$this
->assertEqual($this->treeStorage
->getSubtreeHeight('root'), 5);
$this
->assertEqual($this->treeStorage
->getSubtreeHeight('child1'), 4);
$this
->assertEqual($this->treeStorage
->getSubtreeHeight('child2'), 3);
$this
->assertEqual($this->treeStorage
->getSubtreeHeight('child3'), 2);
$this
->assertEqual($this->treeStorage
->getSubtreeHeight('child4'), 1);
}