Issue #1464244 by dawehner, tim.plunkett: Fixed Rewrite as URL adding equals sign to end of url.

8.0.x
catch 2012-06-05 17:16:23 +09:00
parent 8c4df67ab7
commit e6986e5a48
2 changed files with 28 additions and 2 deletions

View File

@ -451,7 +451,7 @@ function drupal_get_query_array($query) {
if (!empty($query)) {
foreach (explode('&', $query) as $param) {
$param = explode('=', $param);
$result[$param[0]] = isset($param[1]) ? rawurldecode($param[1]) : '';
$result[$param[0]] = isset($param[1]) ? rawurldecode($param[1]) : NULL;
}
}
return $result;

View File

@ -76,7 +76,7 @@ class CommonDrupalAlterTestCase extends WebTestBase {
* url() calls module_implements(), which may issue a db query, which requires
* inheriting from a web test case rather than a unit test case.
*/
class CommonURLUnitTestCase extends WebTestBase {
class CommonURLWebTestCase extends WebTestBase {
public static function getInfo() {
return array(
'name' => 'URL generation tests',
@ -280,6 +280,32 @@ class CommonURLUnitTestCase extends WebTestBase {
}
}
/**
* Tests for non-DB based URL generation functions.
*/
class CommonUrlUnitTestCase extends UnitTestBase {
public static function getInfo() {
return array(
'name' => 'URL generation tests',
'description' => 'Confirm that drupal_get_query_array() works correctly with various input.',
'group' => 'Common',
);
}
/**
* Tests drupal_get_query_array().
*/
function testDrupalGetQueryArray() {
$this->assertEqual(drupal_get_query_array('foo=bar'), array('foo' => 'bar'), 'Simple value works as expected.');
$this->assertEqual(drupal_get_query_array('foo=1'), array('foo' => '1'), 'Numeric value works as expected.');
$this->assertEqual(drupal_get_query_array('foo=1&bar=baz'), array('foo' => '1', 'bar' => 'baz'), 'Multiple values are parsed as well.');
$this->assertEqual(drupal_get_query_array('foo='), array('foo' => ''), 'An empty value is set as an empty string.');
$this->assertEqual(drupal_get_query_array('foo'), array('foo' => NULL), 'No value is set as a null value.');
}
}
/**
* Tests for check_plain(), filter_xss(), format_string(), and check_url().
*/