diff --git a/core/modules/menu_ui/menu_ui.module b/core/modules/menu_ui/menu_ui.module index 7d4145a978b93b5dbb09e1c56322e363b1accfba..5dda4ce2b98637397c7427344ada22099234cb94 100644 --- a/core/modules/menu_ui/menu_ui.module +++ b/core/modules/menu_ui/menu_ui.module @@ -117,10 +117,8 @@ function menu_ui_menu_delete(Menu $menu) { * Implements hook_block_view_BASE_BLOCK_ID_alter() for 'system_menu_block'. */ function menu_ui_block_view_system_menu_block_alter(array &$build, BlockPluginInterface $block) { - // Add contextual links for system menu blocks. - $menus = menu_list_system_menus(); - $menu_name = $block->getDerivativeId(); - if (isset($menus[$menu_name])) { + if ($block->getBaseId() == 'system_menu_block') { + $menu_name = $block->getDerivativeId(); $build['#contextual_links']['menu'] = array( 'route_parameters' => array('menu' => $menu_name), ); diff --git a/core/modules/menu_ui/src/Tests/MenuTest.php b/core/modules/menu_ui/src/Tests/MenuTest.php index 84c14408e9e0b469086afa6179ba7395bcaed1c9..e33e53aebbce7e4a30ec50d7058697a0bfa8a48c 100644 --- a/core/modules/menu_ui/src/Tests/MenuTest.php +++ b/core/modules/menu_ui/src/Tests/MenuTest.php @@ -540,11 +540,12 @@ function testUnpublishedNodeMenuItem() { */ public function testBlockContextualLinks() { $this->drupalLogin($this->drupalCreateUser(array('administer menu', 'access contextual links', 'administer blocks'))); - $this->addMenuLink(); - $block = $this->drupalPlaceBlock('system_menu_block:tools', array('label' => 'Tools', 'provider' => 'system')); + $custom_menu = $this->addCustomMenu(); + $this->addMenuLink('', '<front>', $custom_menu->id()); + $block = $this->drupalPlaceBlock('system_menu_block:' . $custom_menu->id(), array('label' => 'Custom menu', 'provider' => 'system')); $this->drupalGet('test-page'); - $id = 'block:block=' . $block->id() . ':|menu:menu=tools:'; + $id = 'block:block=' . $block->id() . ':|menu:menu=' . $custom_menu->id() . ':'; // @see \Drupal\contextual\Tests\ContextualDynamicContextTest:assertContextualLinkPlaceHolder() $this->assertRaw('<div data-contextual-id="'. $id . '"></div>', format_string('Contextual link placeholder with id @id exists.', array('@id' => $id))); @@ -554,12 +555,12 @@ public function testBlockContextualLinks() { $response = $this->drupalPost('contextual/render', 'application/json', $post, array('query' => array('destination' => 'test-page'))); $this->assertResponse(200); $json = Json::decode($response); - $this->assertIdentical($json[$id], '<ul class="contextual-links"><li class="block-configure"><a href="' . base_path() . 'admin/structure/block/manage/' . $block->id() . '">Configure block</a></li><li class="entitymenuedit-form"><a href="' . base_path() . 'admin/structure/menu/manage/tools">Edit menu</a></li></ul>'); + $this->assertIdentical($json[$id], '<ul class="contextual-links"><li class="block-configure"><a href="' . base_path() . 'admin/structure/block/manage/' . $block->id() . '">Configure block</a></li><li class="entitymenuedit-form"><a href="' . base_path() . 'admin/structure/menu/manage/' . $custom_menu->id() . '">Edit menu</a></li></ul>'); // Test the contextual links are available when block caching is enabled. $this->drupalPostForm('admin/structure/block/manage/' . $block->id(), ['settings[cache][max_age]' => Cache::PERMANENT], t('Save block')); $this->drupalGet('test-page'); - $id = 'block:block=' . $block->id() . ':|menu:menu=tools:'; + $id = 'block:block=' . $block->id() . ':|menu:menu=' . $custom_menu->id() . ':'; $this->assertRaw('<div data-contextual-id="'. $id . '"></div>', format_string('Contextual link placeholder with id @id exists.', array('@id' => $id))); }