diff options
Diffstat (limited to 'modules/simpletest/tests')
-rw-r--r-- | modules/simpletest/tests/menu.test | 15 | ||||
-rw-r--r-- | modules/simpletest/tests/menu_test.module | 46 |
2 files changed, 61 insertions, 0 deletions
diff --git a/modules/simpletest/tests/menu.test b/modules/simpletest/tests/menu.test index 889d877d3..26443f74e 100644 --- a/modules/simpletest/tests/menu.test +++ b/modules/simpletest/tests/menu.test @@ -132,6 +132,21 @@ class MenuIncTestCase extends DrupalWebTestCase { $this->assertEqual($compare_item, $item, t('Modified menu item is equal to newly retrieved menu item.'), 'menu'); } + /** + * Test menu maintainance hooks. + */ + function testMenuItemHooks() { + // Create an item. + menu_link_maintain('menu_test', 'insert', 'menu_test_maintain/4', 'Menu link #4'); + $this->assertEqual(menu_test_static_variable(), 'insert', t('hook_menu_link_insert() fired correctly')); + // Update the item. + menu_link_maintain('menu_test', 'update', 'menu_test_maintain/4', 'Menu link updated'); + $this->assertEqual(menu_test_static_variable(), 'update', t('hook_menu_link_update() fired correctly')); + // Delete the item. + menu_link_maintain('menu_test', 'delete', 'menu_test_maintain/4', ''); + $this->assertEqual(menu_test_static_variable(), 'delete', t('hook_menu_link_delete() fired correctly')); + } + } /** diff --git a/modules/simpletest/tests/menu_test.module b/modules/simpletest/tests/menu_test.module index 0428fd763..15ecea71a 100644 --- a/modules/simpletest/tests/menu_test.module +++ b/modules/simpletest/tests/menu_test.module @@ -73,3 +73,49 @@ function menu_test_menu_name($new_name = '') { } return $name; } + +/** + * Implement hook_menu_link_insert(). + * + * @return + * A random string. + */ +function menu_test_menu_link_insert($item) { + menu_test_static_variable('insert'); +} + +/** + * Implement hook_menu_link_update(). + * + * @return + * A random string. + */ +function menu_test_menu_link_update($item) { + menu_test_static_variable('update'); +} + +/** + * Implement hook_menu_link_delete(). + * + * @return + * A random string. + */ +function menu_test_menu_link_delete($item) { + menu_test_static_variable('delete'); +} + +/** + * Static function for testing hook results. + * + * @param $value + * The value to set or NULL to return the current value. + * @return + * A text string for comparison to test assertions. + */ +function menu_test_static_variable($value = NULL) { + static $variable; + if (!empty($value)) { + $variable = $value; + } + return $variable; +} |