diff --git a/core/lib/Drupal/Core/Menu/MenuTreeStorage.php b/core/lib/Drupal/Core/Menu/MenuTreeStorage.php index 277ab4df58c..7a79fc1aa75 100644 --- a/core/lib/Drupal/Core/Menu/MenuTreeStorage.php +++ b/core/lib/Drupal/Core/Menu/MenuTreeStorage.php @@ -157,9 +157,6 @@ class MenuTreeStorage implements MenuTreeStorageInterface { foreach ($definitions as $id => $link) { // Flag this link as discovered, i.e. saved via rebuild(). $link['discovered'] = 1; - // Note: The parent we set here might be just stored in the {menu_tree} - // table, so it will not end up in $top_links. Therefore the later loop - // on the orphan links, will handle those cases. if (!empty($link['parent'])) { $children[$link['parent']][$id] = $id; } @@ -177,18 +174,8 @@ class MenuTreeStorage implements MenuTreeStorageInterface { // Handle any children we didn't find starting from top-level links. foreach ($children as $orphan_links) { foreach ($orphan_links as $id) { - // Check for a parent that is not loaded above since only internal links - // are loaded above. - $parent = $this->loadFull($links[$id]['parent']); - // If there is a parent add it to the links to be used in - // ::saveRecursive(). - if ($parent) { - $links[$links[$id]['parent']] = $parent; - } - else { - // Force it to the top level. - $links[$id]['parent'] = ''; - } + // Force it to the top level. + $links[$id]['parent'] = ''; $this->saveRecursive($id, $children, $links); } } diff --git a/core/modules/system/src/Tests/Menu/MenuTreeStorageTest.php b/core/modules/system/src/Tests/Menu/MenuTreeStorageTest.php index 482eea94a22..57f1f2a0ff5 100644 --- a/core/modules/system/src/Tests/Menu/MenuTreeStorageTest.php +++ b/core/modules/system/src/Tests/Menu/MenuTreeStorageTest.php @@ -319,37 +319,6 @@ class MenuTreeStorageTest extends KernelTestBase { $this->assertEqual($this->treeStorage->getSubtreeHeight('child4'), 1); } - /** - * 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 MenuTreeStorage::loadByProperties(). */ diff --git a/core/modules/views/src/Tests/Plugin/MenuLinkTest.php b/core/modules/views/src/Tests/Plugin/MenuLinkTest.php deleted file mode 100644 index 4503dea8b04..00000000000 --- a/core/modules/views/src/Tests/Plugin/MenuLinkTest.php +++ /dev/null @@ -1,102 +0,0 @@ -enableViewsTestModule(); - - $this->adminUser = $this->drupalCreateUser(['administer views', 'administer menu']); - $this->drupalPlaceBlock('system_menu_block:main'); - $this->drupalCreateContentType(['type' => 'page']); - } - - /** - * Test that menu links using menu_link_content as parent are visible. - */ - public function testHierarchicalMenuLinkVisibility() { - $this->drupalLogin($this->adminUser); - - $node = $this->drupalCreateNode(['type' => 'page']); - - // Create a primary level menu link to the node. - $link = MenuLinkContent::create([ - 'title' => 'Primary level node', - 'menu_name' => 'main', - 'bundle' => 'menu_link_content', - 'parent' => '', - 'link' => [['uri' => 'entity:node/' . $node->id()]], - ]); - $link->save(); - - $parent_menu_value = 'main:menu_link_content:' . $link->uuid(); - - // Alter the view's menu link in view page to use the menu link from the - // node as parent. - $this->drupalPostForm("admin/structure/views/nojs/display/test_menu_link/page_1/menu", [ - 'menu[type]' => 'normal', - 'menu[title]' => 'Secondary level view page', - 'menu[parent]' => $parent_menu_value, - ], 'Apply'); - - // Save view which has pending changes. - $this->drupalPostForm(NULL, [], 'Save'); - - // Test if the node as parent menu item is selected in our views settings. - $this->drupalGet('admin/structure/views/nojs/display/test_menu_link/page_1/menu'); - $this->assertOptionSelected('edit-menu-parent', $parent_menu_value); - - $this->drupalGet(''); - - // Test if the primary menu item (node) is visible, and the secondary menu - // item (view) is hidden. - $this->assertText('Primary level node'); - $this->assertNoText('Secondary level view page'); - - // Go to the node page and ensure that both the first and second level items - // are visible. - $this->drupalGet($node->urlInfo()); - $this->assertText('Primary level node'); - $this->assertText('Secondary level view page'); - } -} diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_menu_link.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_menu_link.yml deleted file mode 100644 index d51b92035f8..00000000000 --- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_menu_link.yml +++ /dev/null @@ -1,38 +0,0 @@ -langcode: en -status: true -dependencies: { } -id: test_menu_link -label: '' -module: views -description: '' -tag: '' -base_table: views_test_data -base_field: nid -core: '8' -display: - default: - display_options: - defaults: - fields: false - pager: false - sorts: false - fields: - age: - field: age - id: age - relationship: none - table: views_test_data - plugin_id: numeric - display_plugin: default - display_title: Master - id: default - position: 0 - page_1: - display_plugin: page - display_title: 'Test page view' - id: page_1 - position: 1 - display_options: - display_extenders: { } - path: test-menu-link -