diff --git a/core/modules/views/src/Tests/Plugin/MenuLinkTest.php b/core/modules/views/src/Tests/Plugin/MenuLinkTest.php new file mode 100644 index 0000000..b985224 --- /dev/null +++ b/core/modules/views/src/Tests/Plugin/MenuLinkTest.php @@ -0,0 +1,96 @@ +enableViewsTestModule(); + + $this->adminUser = $this->drupalCreateUser(array('administer views', 'administer menu')); + + $this->drupalPlaceBlock('system_menu_block:main'); + + $this->drupalCreateContentType(array('type' => 'page')); + + } + + /** + * Test that secondary level menu links for a page view are not visible. + */ + public function testHierarchicalMenuLinkVisibility() { + + $this->drupalLogin($this->adminUser); + + $node = $this->drupalCreateNode(array('type' => 'page')); + + // Create a primary level menu link to the node. + $options = array( + 'title' => 'Primary level node', + 'menu_name' => 'main', + 'bundle' => 'menu_link_content', + 'parent' => '', + 'link' => [['uri' => 'entity:node/' . $node->id()]], + ); + $link = entity_create('menu_link_content', $options); + $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, + ], t('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'); + + } +} 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 new file mode 100644 index 0000000..d51b920 --- /dev/null +++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_menu_link.yml @@ -0,0 +1,38 @@ +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 +