1 menu.test | MenuRouterTestCase::testMenuLoadArgumentsInheritance() |
Tests inheritance of 'load arguments'.
File
Class
Code
function testMenuLoadArgumentsInheritance() {
$expected = array(
'menu-test/arguments/%/%' => array(
2 => array('menu_test_argument_load' => array(3)),
3 => NULL,
),
// Arguments are inherited to normal children.
'menu-test/arguments/%/%/default' => array(
2 => array('menu_test_argument_load' => array(3)),
3 => NULL,
),
// Arguments are inherited to tab children.
'menu-test/arguments/%/%/task' => array(
2 => array('menu_test_argument_load' => array(3)),
3 => NULL,
),
// Arguments are only inherited to the same loader functions.
'menu-test/arguments/%/%/common-loader' => array(
2 => array('menu_test_argument_load' => array(3)),
3 => 'menu_test_other_argument_load',
),
// Arguments are not inherited to children not using the same loader
// function.
'menu-test/arguments/%/%/different-loaders-1' => array(
2 => NULL,
3 => 'menu_test_argument_load',
),
'menu-test/arguments/%/%/different-loaders-2' => array(
2 => 'menu_test_other_argument_load',
3 => NULL,
),
'menu-test/arguments/%/%/different-loaders-3' => array(
2 => NULL,
3 => NULL,
),
// Explicit loader arguments should not be overridden by parent.
'menu-test/arguments/%/%/explicit-arguments' => array(
2 => array('menu_test_argument_load' => array()),
3 => NULL,
),
);
foreach ($expected as $router_path => $load_functions) {
$router_item = $this->menuLoadRouter($router_path);
$this->assertIdentical(unserialize($router_item['load_functions']), $load_functions, format_string('Expected load functions for router %router_path', array('%router_path' => $router_path)));
}
}