Error message

You are browsing documentation for drupal 7.x, which is not supported anymore. Read the updated version of this page for drupal 11.x (the latest version).

function MenuTestCase::addCustomMenu

Add custom menu.

1 call to MenuTestCase::addCustomMenu()
MenuTestCase::doCustomMenuTests in modules/menu/menu.test
Test custom menu functionality using navigation menu.

File

modules/menu/menu.test, line 138

Class

MenuTestCase
@file Tests for menu.module.

Code

function addCustomMenu() {
 // Add custom menu.
 // Try adding a menu using a menu_name that is too long.
 $this->drupalGet ('admin/structure/menu/add');
 $menu_name = substr (hash ('sha256', $this->randomName (16)), 0, MENU_MAX_MENU_NAME_LENGTH_UI  + 1);
 $title = $this->randomName (16);
 $edit = array(
 'menu_name' => $menu_name,
 'description' => '',
 'title' => $title,
 );
 $this->drupalPost ('admin/structure/menu/add', $edit, t ('Save'));
 // Verify that using a menu_name that is too long results in a validation message.
 $this->assertRaw (t ('!name cannot be longer than %max characters but is currently %length characters long.', array(
 '!name' => t ('Menu name'),
 '%max' => MENU_MAX_MENU_NAME_LENGTH_UI ,
 '%length' => drupal_strlen ($menu_name),
 )));
 // Change the menu_name so it no longer exceeds the maximum length.
 $menu_name = substr (hash ('sha256', $this->randomName (16)), 0, MENU_MAX_MENU_NAME_LENGTH_UI );
 $edit['menu_name'] = $menu_name;
 $this->drupalPost ('admin/structure/menu/add', $edit, t ('Save'));
 // Verify that no validation error is given for menu_name length.
 $this->assertNoRaw (t ('!name cannot be longer than %max characters but is currently %length characters long.', array(
 '!name' => t ('Menu name'),
 '%max' => MENU_MAX_MENU_NAME_LENGTH_UI ,
 '%length' => drupal_strlen ($menu_name),
 )));
 // Unlike most other modules, there is no confirmation message displayed.
 $this->drupalGet ('admin/structure/menu');
 $this->assertText ($title, 'Menu created');
 // Enable the custom menu block.
 $menu_name = 'menu-' . $menu_name;
 // Drupal prepends the name with 'menu-'.
 $edit = array();
 $edit['blocks[menu_' . $menu_name . '][region]'] = 'sidebar_first';
 $this->drupalPost ('admin/structure/block', $edit, t ('Save blocks'));
 $this->assertResponse (200);
 $this->assertText (t ('The block settings have been updated.'), 'Custom menu block was enabled');
 return menu_load ($menu_name);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.