#298561 by Steven, chx, mcarbone, pwolanin: Fixed slashes don't work in search

merge-requests/26/head
Angie Byron 2010-11-23 06:00:27 +00:00
parent e19a50d23f
commit 6cacff4b4e
3 changed files with 28 additions and 0 deletions

View File

@ -787,10 +787,30 @@ function _menu_link_map_translate(&$map, $to_arg_functions) {
}
}
/**
* Returns path as one string from the argument we are currently at.
*/
function menu_tail_to_arg($arg, $map, $index) {
return implode('/', array_slice($map, $index));
}
/**
* Loads path as one string from the argument we are currently at.
*
* To use this load function, you must specify the load arguments
* in the router item as:
* @code
* $item['load arguments'] = array('%map', '%index');
* @endcode
*
* @see search_menu().
*/
function menu_tail_load($arg, &$map, $index) {
$arg = implode('/', array_slice($map, $index));
$map = array_slice($map, 0, $index);
return $arg;
}
/**
* This function is similar to _menu_translate() but does link-specific
* preparation such as always calling to_arg functions

View File

@ -210,6 +210,7 @@ function search_menu() {
);
$items["$path/%menu_tail"] = array(
'title' => $search_info['title'],
'load arguments' => array('%map', '%index'),
'page callback' => 'search_view',
'page arguments' => array($module, 2),
'access callback' => '_search_menu_access',

View File

@ -279,6 +279,13 @@ class SearchPageText extends DrupalWebTestCase {
$this->drupalPost('search/user', $edit, t('Search'));
$this->assertText(t('Search'));
$this->assertTitle($title, 'Search page title is correct');
// Test that search keywords containing slashes are correctly loaded
// from the path and displayed in the search form.
$arg = $this->randomName() . '/' . $this->randomName();
$this->drupalGet('search/node/' . $arg);
$input = $this->xpath("//input[@id='edit-keys' and @value='{$arg}']");
$this->assertFalse(empty($input), 'Search keys with a / are correctly set as the default value in the search box.');
}
}