summaryrefslogtreecommitdiff
path: root/modules/simpletest/tests
diff options
context:
space:
mode:
Diffstat (limited to 'modules/simpletest/tests')
-rw-r--r--modules/simpletest/tests/menu.test15
-rw-r--r--modules/simpletest/tests/menu_test.module46
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;
+}