function NavigationMenuLinkTreeTest::testNavigationMenuLinkTreeAlter

Tests the hook_navigation_menu_link_tree_alter logic.

File

core/modules/navigation/tests/src/Kernel/NavigationMenuLinkTreeTest.php, line 57

Class

NavigationMenuLinkTreeTest
Tests \Drupal\navigation\Menu\NavigationMenuLinkTree.

Namespace

Drupal\Tests\navigation\Kernel

Code

public function testNavigationMenuLinkTreeAlter() : void {
    
    /** @var \Drupal\system\MenuStorage $storage */
    $storage = \Drupal::entityTypeManager()->getStorage('menu');
    $storage->create([
        'id' => 'menu1',
        'label' => 'Menu 1',
    ])
        ->save();
    $storage->create([
        'id' => 'menu2',
        'label' => 'Menu 2',
    ])
        ->save();
    \Drupal::entityTypeManager()->getStorage('menu_link_content')
        ->create([
        'link' => [
            'uri' => 'internal:/menu_name_test',
        ],
        'menu_name' => 'menu1',
        'bundle' => 'menu_link_content',
        'title' => 'Link test',
    ])
        ->save();
    \Drupal::entityTypeManager()->getStorage('menu_link_content')
        ->create([
        'link' => [
            'uri' => 'internal:/menu_name_test',
        ],
        'menu_name' => 'menu1',
        'bundle' => 'menu_link_content',
        'title' => 'Link test',
    ])
        ->save();
    \Drupal::entityTypeManager()->getStorage('menu_link_content')
        ->create([
        'link' => [
            'uri' => 'internal:/menu_name_test',
        ],
        'menu_name' => 'menu2',
        'bundle' => 'menu_link_content',
        'title' => 'Link test',
    ])
        ->save();
    $output = $this->linkTree
        ->load('menu1', new MenuTreeParameters());
    $this->assertCount(2, $output);
    $output = $this->linkTree
        ->transform($output, []);
    $this->assertCount(0, $output);
    $output = $this->linkTree
        ->load('menu2', new MenuTreeParameters());
    $this->assertCount(1, $output);
    $output = $this->linkTree
        ->transform($output, []);
    $this->assertCount(1, $output);
    $item = reset($output);
    $this->assertSame('New Link Title', $item->link
        ->getTitle());
}

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