function MenuTreeStorageTest::testMenuRebuild

Same name and namespace in other branches
  1. 9 core/tests/Drupal/KernelTests/Core/Menu/MenuTreeStorageTest.php \Drupal\KernelTests\Core\Menu\MenuTreeStorageTest::testMenuRebuild()
  2. 10 core/tests/Drupal/KernelTests/Core/Menu/MenuTreeStorageTest.php \Drupal\KernelTests\Core\Menu\MenuTreeStorageTest::testMenuRebuild()
  3. 11.x 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\Menu

Code

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);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.