/** * Ensure hierarchy persists after a menu rebuild. */ 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); }
/** * Tests finding the subtree height with content menu links. */ public function testSubtreeHeight() { // 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); }
/** * Tests finding the subtree height with content menu links. */ public function testSubtreeHeight() { $storage = \Drupal::entityManager()->getStorage('menu_link_content'); // root // - child1 // -- child2 // --- child3 // ---- child4 $root = $storage->create(array('route_name' => 'menu_test.menu_name_test', 'menu_name' => 'menu1', 'bundle' => 'menu_link_content')); $root->save(); $child1 = $storage->create(array('route_name' => 'menu_test.menu_name_test', 'menu_name' => 'menu1', 'bundle' => 'menu_link_content', 'parent' => $root->getPluginId())); $child1->save(); $child2 = $storage->create(array('route_name' => 'menu_test.menu_name_test', 'menu_name' => 'menu1', 'bundle' => 'menu_link_content', 'parent' => $child1->getPluginId())); $child2->save(); $child3 = $storage->create(array('route_name' => 'menu_test.menu_name_test', 'menu_name' => 'menu1', 'bundle' => 'menu_link_content', 'parent' => $child2->getPluginId())); $child3->save(); $child4 = $storage->create(array('route_name' => 'menu_test.menu_name_test', 'menu_name' => 'menu1', 'bundle' => 'menu_link_content', 'parent' => $child3->getPluginId())); $child4->save(); $this->assertEqual($this->treeStorage->getSubtreeHeight($root->getPluginId()), 5); $this->assertEqual($this->treeStorage->getSubtreeHeight($child1->getPluginId()), 4); $this->assertEqual($this->treeStorage->getSubtreeHeight($child2->getPluginId()), 3); $this->assertEqual($this->treeStorage->getSubtreeHeight($child3->getPluginId()), 2); $this->assertEqual($this->treeStorage->getSubtreeHeight($child4->getPluginId()), 1); }