diff options
author | Dries Buytaert <dries@buytaert.net> | 2011-05-17 17:46:31 -0700 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2011-05-17 17:46:31 -0700 |
commit | a73fabfacda8cf00afa7831d2e30629f4537b36d (patch) | |
tree | 0b8f34a8bf13a463fe43bb1eaffc1e2a6c236339 | |
parent | 258fc5ff7b527e443becf7ecb7f9888d7c9101a4 (diff) | |
download | brdo-a73fabfacda8cf00afa7831d2e30629f4537b36d.tar.gz brdo-a73fabfacda8cf00afa7831d2e30629f4537b36d.tar.bz2 |
- Rolled back.
-rw-r--r-- | includes/menu.inc | 16 | ||||
-rw-r--r-- | modules/simpletest/tests/menu.test | 25 |
2 files changed, 41 insertions, 0 deletions
diff --git a/includes/menu.inc b/includes/menu.inc index d11d3ea1f..2a8c80c41 100644 --- a/includes/menu.inc +++ b/includes/menu.inc @@ -1692,6 +1692,22 @@ function menu_set_custom_theme() { } /** + * Build a list of named menus. + */ +function menu_get_names() { + $names = &drupal_static(__FUNCTION__); + + if (empty($names)) { + $names = db_select('menu_links') + ->distinct() + ->fields('menu_links', array('menu_name')) + ->orderBy('menu_name') + ->execute()->fetchCol(); + } + return $names; +} + +/** * Return an array containing the names of system-defined (default) menus. */ function menu_list_system_menus() { diff --git a/modules/simpletest/tests/menu.test b/modules/simpletest/tests/menu.test index 3709876b1..2578bebc0 100644 --- a/modules/simpletest/tests/menu.test +++ b/modules/simpletest/tests/menu.test @@ -248,6 +248,31 @@ class MenuRouterTestCase extends DrupalWebTestCase { } /** + * Test menu_get_names(). + */ + function testMenuGetNames() { + // Create three menu items. + for ($i = 0; $i < 3; $i++) { + $menu_link = array( + 'link_title' => 'Menu link #' . $i, + 'link_path' => 'menu_test/' . $i, + 'module' => 'menu_test', + 'menu_name' => 'menu_test_' . $i, + ); + menu_link_save($menu_link); + } + + drupal_static_reset('menu_get_names'); + + // Verify that the menu names are correctly reported by menu_get_names(). + $menu_names = menu_get_names(); + $this->pass(implode(' | ', $menu_names)); + for ($i = 0; $i < 3; $i++) { + $this->assertTrue(in_array('menu_test_' . $i, $menu_names), t('Expected menu name %expected is returned.', array('%expected' => 'menu_test_' . $i))); + } + } + + /** * Tests for menu_name parameter for hook_menu(). */ function testMenuName() { |