Index: modules/simpletest/tests/menu.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/simpletest/tests/menu.test,v
retrieving revision 1.4
diff -u -p -r1.4 menu.test
--- modules/simpletest/tests/menu.test	28 Dec 2008 18:27:14 -0000	1.4
+++ modules/simpletest/tests/menu.test	9 Jan 2009 00:06:53 -0000
@@ -38,6 +38,31 @@ class MenuIncTestCase extends DrupalWebT
     $name = db_result(db_query($sql));
     $this->assertEqual($name, 'changed', t('Menu name was successfully changed after rebuild.'));
   }
+  /**
+   * Tests for menu_get_item() to get the right router items.
+   */
+  function testMenuGetItem() {
+    $admin_user = $this->drupalCreateUser(array('administer site configuration'));
+    $this->drupalLogin($admin_user);
+
+    $router_item_1 = menu_get_item('test');
+    $router_item_2 = menu_get_item('test/1');
+    $router_item_3 = menu_get_item('test/1/test');
+    $router_item_4 = menu_get_item('test/test');
+    $router_item_5 = menu_get_item('test/test/test');
+
+    $this->assertEqual($router_item_1['path'], 'test', t('menu_get_item() returned the right router item for specific path'));
+    $this->assertEqual($router_item_2['path'], 'test/%test', t('menu_get_item() returned the right router item for specific path'));
+    $this->assertEqual($router_item_3['path'], 'test/%test', t('menu_get_item() returned the right router item for specific path'));
+    $this->assertEqual($router_item_4['path'], 'test/test', t('menu_get_item() returned the right router item for specific path'));
+    $this->assertEqual($router_item_5['path'], 'test/test/%', t('menu_get_item() returned the right router item for specific path'));
+
+    //test (matches test),
+    //test/1 (matches test/%test),
+    //test/1/test (matches test/%test again and passes in test as argument to the page callback),
+    //test/test (matches test/test),
+    //test/test/test (matches test/test/%).
+  }
 }
 
 /**
@@ -51,7 +76,7 @@ class MenuRebuildTestCase extends Drupal
       'group' => t('Menu'),
     );
   }
-  
+
   /**
    * Test if the 'menu_rebuild_needed' variable triggers a menu_rebuild() call.
    */
@@ -75,5 +100,5 @@ 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."));
   }
-  
+
 }
Index: modules/simpletest/tests/menu_test.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/simpletest/tests/menu_test.module,v
retrieving revision 1.1
diff -u -p -r1.1 menu_test.module
--- modules/simpletest/tests/menu_test.module	28 Dec 2008 18:27:14 -0000	1.1
+++ modules/simpletest/tests/menu_test.module	9 Jan 2009 00:06:54 -0000
@@ -12,9 +12,26 @@
 function menu_test_menu() {
 
   $items['menu_name_test'] = array(
-    'title' => t('Test menu_name router item'),
+    'title' => 'Test menu_name router item',
     'page callback' => 'node_save',
     'menu_name' => isset($_GET["hook_menu_name"]) ? $_GET["hook_menu_name"] : 'original',
   );
+  // defines menu callbacks to take care that menu_get_item find the right one
+  $items['test'] = array(
+    'title' => 'Teste menu_name router item',
+    'page callbcak' => 'menu_test_menu_get_item_test_callback',
+  );
+  $items['test/test'] = array(
+    'title' => 'Teste menu_name router item',
+    'page callbcak' => 'menu_test_menu_get_item_test_callback',
+  );
+  $items['test/test/%'] = array(
+    'title' => 'Teste menu_name router item',
+    'page callbcak' => 'menu_test_menu_get_item_test_callback',
+  );
+  $items['test/%test'] = array(
+    'title' => 'Teste menu_name router item',
+    'page callbcak' => 'menu_test_menu_get_item_test_callback',
+  );
   return $items;
 }
\ No newline at end of file
