MenuLinkDefaultIntegrationTest.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. namespace Drupal\KernelTests\Core\Menu;
  3. use Drupal\Core\Menu\MenuTreeParameters;
  4. use Drupal\KernelTests\KernelTestBase;
  5. /**
  6. * Tests integration of static menu links.
  7. *
  8. * @group Menu
  9. */
  10. class MenuLinkDefaultIntegrationTest extends KernelTestBase {
  11. /**
  12. * Modules to enable.
  13. *
  14. * @var array
  15. */
  16. public static $modules = [
  17. 'menu_test',
  18. ];
  19. /**
  20. * Tests moving a static menu link without a specified menu to the root.
  21. */
  22. public function testMoveToRoot() {
  23. /** @var \Drupal\Core\Menu\MenuLinkManagerInterface $menu_link_manager */
  24. $menu_link_manager = \Drupal::service('plugin.manager.menu.link');
  25. $menu_link_manager->rebuild();
  26. $menu_link = $menu_link_manager->getDefinition('menu_test.child');
  27. $this->assertEqual($menu_link['parent'], 'menu_test.parent');
  28. $this->assertEqual($menu_link['menu_name'], 'test');
  29. $tree = \Drupal::menuTree()->load('test', new MenuTreeParameters());
  30. $this->assertCount(1, $tree);
  31. $this->assertEqual($tree['menu_test.parent']->link->getPluginId(), 'menu_test.parent');
  32. $this->assertEqual($tree['menu_test.parent']->subtree['menu_test.child']->link->getPluginId(), 'menu_test.child');
  33. // Ensure that the menu name is not forgotten.
  34. $menu_link_manager->updateDefinition('menu_test.child', ['parent' => '']);
  35. $menu_link = $menu_link_manager->getDefinition('menu_test.child');
  36. $this->assertEqual($menu_link['parent'], '');
  37. $this->assertEqual($menu_link['menu_name'], 'test');
  38. $tree = \Drupal::menuTree()->load('test', new MenuTreeParameters());
  39. $this->assertCount(2, $tree);
  40. $this->assertEqual($tree['menu_test.parent']->link->getPluginId(), 'menu_test.parent');
  41. $this->assertEqual($tree['menu_test.child']->link->getPluginId(), 'menu_test.child');
  42. $this->assertTrue(TRUE);
  43. }
  44. }