1 menu.test | MenuTrailTestCase::testMenuTreeSetPath() |
Tests active trails are properly affected by menu_tree_set_path().
File
Class
- MenuTrailTestCase
- Tests active menu trails.
Code
function testMenuTreeSetPath() {
$home = array('<front>' => 'Home');
$config_tree = array(
'admin' => t('Administration'),
'admin/config' => t('Configuration'),
);
$config = $home + $config_tree;
// The menu_test_menu_tree_set_path system variable controls whether or not
// the menu_test_menu_trail_callback() callback (used by all paths in these
// tests) issues an overriding call to menu_trail_set_path().
$test_menu_path = array(
'menu_name' => 'management',
'path' => 'admin/config/system/site-information',
);
$breadcrumb = $home + array(
'menu-test' => t('Menu test root'),
);
$tree = array(
'menu-test' => t('Menu test root'),
'menu-test/menu-trail' => t('Menu trail - Case 1'),
);
// Test the tree generation for the Main menu.
state_del('menu_test_menu_tree_set_path');
$this->assertBreadcrumb('menu-test/menu-trail', $breadcrumb, t('Menu trail - Case 1'), $tree);
// Override the active trail for the Administration tree; it should not
// affect the Main tree.
state_set('menu_test_menu_tree_set_path', $test_menu_path);
$this->assertBreadcrumb('menu-test/menu-trail', $breadcrumb, t('Menu trail - Case 1'), $tree);
$breadcrumb = $config + array(
'admin/config/development' => t('Development'),
);
$tree = $config_tree + array(
'admin/config/development' => t('Development'),
'admin/config/development/menu-trail' => t('Menu trail - Case 2'),
);
$override_breadcrumb = $config + array(
'admin/config/system' => t('System'),
'admin/config/system/site-information' => t('Site information'),
);
$override_tree = $config_tree + array(
'admin/config/system' => t('System'),
'admin/config/system/site-information' => t('Site information'),
);
// Test the tree generation for the Administration menu.
state_del('menu_test_menu_tree_set_path');
$this->assertBreadcrumb('admin/config/development/menu-trail', $breadcrumb, t('Menu trail - Case 2'), $tree);
// Override the active trail for the Administration tree; it should affect
// the breadcrumbs and Management tree.
state_set('menu_test_menu_tree_set_path', $test_menu_path);
$this->assertBreadcrumb('admin/config/development/menu-trail', $override_breadcrumb, t('Menu trail - Case 2'), $override_tree);
}