Tests menu link depth and parents of local tasks and menu callbacks.
function testMenuHidden() {
// Verify links for one dynamic argument.
$query = \Drupal::entityQuery('menu_link')
->condition('router_path', 'menu-test/hidden/menu', 'STARTS_WITH')
->sort('router_path');
$result = $query
->execute();
$menu_links = menu_link_load_multiple($result);
$links = array();
foreach ($menu_links as $menu_link) {
$links[$menu_link->router_path] = $menu_link;
}
$parent = $links['menu-test/hidden/menu'];
$depth = $parent['depth'] + 1;
$plid = $parent['mlid'];
$link = $links['menu-test/hidden/menu/list'];
$this
->assertEqual($link['depth'], $depth, format_string('%path depth @link_depth is equal to @depth.', array(
'%path' => $link['router_path'],
'@link_depth' => $link['depth'],
'@depth' => $depth,
)));
$this
->assertEqual($link['plid'], $plid, format_string('%path plid @link_plid is equal to @plid.', array(
'%path' => $link['router_path'],
'@link_plid' => $link['plid'],
'@plid' => $plid,
)));
$link = $links['menu-test/hidden/menu/add'];
$this
->assertEqual($link['depth'], $depth, format_string('%path depth @link_depth is equal to @depth.', array(
'%path' => $link['router_path'],
'@link_depth' => $link['depth'],
'@depth' => $depth,
)));
$this
->assertEqual($link['plid'], $plid, format_string('%path plid @link_plid is equal to @plid.', array(
'%path' => $link['router_path'],
'@link_plid' => $link['plid'],
'@plid' => $plid,
)));
$link = $links['menu-test/hidden/menu/settings'];
$this
->assertEqual($link['depth'], $depth, format_string('%path depth @link_depth is equal to @depth.', array(
'%path' => $link['router_path'],
'@link_depth' => $link['depth'],
'@depth' => $depth,
)));
$this
->assertEqual($link['plid'], $plid, format_string('%path plid @link_plid is equal to @plid.', array(
'%path' => $link['router_path'],
'@link_plid' => $link['plid'],
'@plid' => $plid,
)));
$link = $links['menu-test/hidden/menu/manage/%'];
$this
->assertEqual($link['depth'], $depth, format_string('%path depth @link_depth is equal to @depth.', array(
'%path' => $link['router_path'],
'@link_depth' => $link['depth'],
'@depth' => $depth,
)));
$this
->assertEqual($link['plid'], $plid, format_string('%path plid @link_plid is equal to @plid.', array(
'%path' => $link['router_path'],
'@link_plid' => $link['plid'],
'@plid' => $plid,
)));
$parent = $links['menu-test/hidden/menu/manage/%'];
$depth = $parent['depth'] + 1;
$plid = $parent['mlid'];
$link = $links['menu-test/hidden/menu/manage/%/list'];
$this
->assertEqual($link['depth'], $depth, format_string('%path depth @link_depth is equal to @depth.', array(
'%path' => $link['router_path'],
'@link_depth' => $link['depth'],
'@depth' => $depth,
)));
$this
->assertEqual($link['plid'], $plid, format_string('%path plid @link_plid is equal to @plid.', array(
'%path' => $link['router_path'],
'@link_plid' => $link['plid'],
'@plid' => $plid,
)));
$link = $links['menu-test/hidden/menu/manage/%/add'];
$this
->assertEqual($link['depth'], $depth, format_string('%path depth @link_depth is equal to @depth.', array(
'%path' => $link['router_path'],
'@link_depth' => $link['depth'],
'@depth' => $depth,
)));
$this
->assertEqual($link['plid'], $plid, format_string('%path plid @link_plid is equal to @plid.', array(
'%path' => $link['router_path'],
'@link_plid' => $link['plid'],
'@plid' => $plid,
)));
$link = $links['menu-test/hidden/menu/manage/%/edit'];
$this
->assertEqual($link['depth'], $depth, format_string('%path depth @link_depth is equal to @depth.', array(
'%path' => $link['router_path'],
'@link_depth' => $link['depth'],
'@depth' => $depth,
)));
$this
->assertEqual($link['plid'], $plid, format_string('%path plid @link_plid is equal to @plid.', array(
'%path' => $link['router_path'],
'@link_plid' => $link['plid'],
'@plid' => $plid,
)));
$link = $links['menu-test/hidden/menu/manage/%/delete'];
$this
->assertEqual($link['depth'], $depth, format_string('%path depth @link_depth is equal to @depth.', array(
'%path' => $link['router_path'],
'@link_depth' => $link['depth'],
'@depth' => $depth,
)));
$this
->assertEqual($link['plid'], $plid, format_string('%path plid @link_plid is equal to @plid.', array(
'%path' => $link['router_path'],
'@link_plid' => $link['plid'],
'@plid' => $plid,
)));
// Verify links for two dynamic arguments.
$query = \Drupal::entityQuery('menu_link')
->condition('router_path', 'menu-test/hidden/block', 'STARTS_WITH')
->sort('router_path');
$result = $query
->execute();
$menu_links = menu_link_load_multiple($result);
$links = array();
foreach ($menu_links as $menu_link) {
$links[$menu_link->router_path] = $menu_link;
}
$parent = $links['menu-test/hidden/block'];
$depth = $parent['depth'] + 1;
$plid = $parent['mlid'];
$link = $links['menu-test/hidden/block/list'];
$this
->assertEqual($link['depth'], $depth, format_string('%path depth @link_depth is equal to @depth.', array(
'%path' => $link['router_path'],
'@link_depth' => $link['depth'],
'@depth' => $depth,
)));
$this
->assertEqual($link['plid'], $plid, format_string('%path plid @link_plid is equal to @plid.', array(
'%path' => $link['router_path'],
'@link_plid' => $link['plid'],
'@plid' => $plid,
)));
$link = $links['menu-test/hidden/block/add'];
$this
->assertEqual($link['depth'], $depth, format_string('%path depth @link_depth is equal to @depth.', array(
'%path' => $link['router_path'],
'@link_depth' => $link['depth'],
'@depth' => $depth,
)));
$this
->assertEqual($link['plid'], $plid, format_string('%path plid @link_plid is equal to @plid.', array(
'%path' => $link['router_path'],
'@link_plid' => $link['plid'],
'@plid' => $plid,
)));
$link = $links['menu-test/hidden/block/manage/%/%'];
$this
->assertEqual($link['depth'], $depth, format_string('%path depth @link_depth is equal to @depth.', array(
'%path' => $link['router_path'],
'@link_depth' => $link['depth'],
'@depth' => $depth,
)));
$this
->assertEqual($link['plid'], $plid, format_string('%path plid @link_plid is equal to @plid.', array(
'%path' => $link['router_path'],
'@link_plid' => $link['plid'],
'@plid' => $plid,
)));
$parent = $links['menu-test/hidden/block/manage/%/%'];
$depth = $parent['depth'] + 1;
$plid = $parent['mlid'];
$link = $links['menu-test/hidden/block/manage/%/%/configure'];
$this
->assertEqual($link['depth'], $depth, format_string('%path depth @link_depth is equal to @depth.', array(
'%path' => $link['router_path'],
'@link_depth' => $link['depth'],
'@depth' => $depth,
)));
$this
->assertEqual($link['plid'], $plid, format_string('%path plid @link_plid is equal to @plid.', array(
'%path' => $link['router_path'],
'@link_plid' => $link['plid'],
'@plid' => $plid,
)));
$link = $links['menu-test/hidden/block/manage/%/%/delete'];
$this
->assertEqual($link['depth'], $depth, format_string('%path depth @link_depth is equal to @depth.', array(
'%path' => $link['router_path'],
'@link_depth' => $link['depth'],
'@depth' => $depth,
)));
$this
->assertEqual($link['plid'], $plid, format_string('%path plid @link_plid is equal to @plid.', array(
'%path' => $link['router_path'],
'@link_plid' => $link['plid'],
'@plid' => $plid,
)));
}