Index: modules/simpletest/tests/menu.test =================================================================== RCS file: /cvs/drupal/drupal/modules/simpletest/tests/menu.test,v retrieving revision 1.3 diff -u -p -r1.3 menu.test --- modules/simpletest/tests/menu.test 20 Nov 2008 07:18:59 -0000 1.3 +++ modules/simpletest/tests/menu.test 11 Dec 2008 13:44:45 -0000 @@ -51,7 +51,7 @@ class MenuRebuildTestCase extends Drupal 'group' => t('Menu'), ); } - + /** * Test if the 'menu_rebuild_needed' variable triggers a menu_rebuild() call. */ @@ -75,5 +75,37 @@ class MenuRebuildTestCase extends Drupal $admin_exists = db_result(db_query("SELECT path from {menu_router} WHERE path = 'admin'")); $this->assertEqual($admin_exists, 'admin', t("The menu has been rebuilt, the path 'admin' now exists again.")); } - + +} + +/** + * Testcase for the menu_set_item() function. + */ +class MenuSetItemTestCase extends DrupalWebTestCase { + function getInfo() { + return array( + 'name' => t('Function menu_set_item test.'), + 'description' => t('Tests if the menu_set_item function has the desired effects by comparing it to menu_get_item output'), + 'group' => t('Menu'), + ); + } + + /** + * This function gets a menu item, changes it and sets it, then the two results are compared. + */ + function testMenuSetItem() { + $original_item = menu_get_item('node'); + + $this->assertEqual($original_item['path'], 'node', t("Path from menu_get_item('node') is equal to 'node'"), 'menu'); + + // Say we want our original path modified for testing purposes,we have our existing path 'node' and want to change it to 'node_test'. + $original_item['path'] = 'node_test'; + $original_item['href'] = 'node_test'; + + // To make clear this is a testnode, we prefix the title. + $original_item['title'] = 'Test: '. $original_item['title']; + $test_item = menu_set_item('node', $original_item); + $compare_item = menu_get_item('node'); + $this->assertEqual($original_item, $compare_item, t("Modified item is equal to newly retrieved item."), 'menu'); + } }