diff options
-rw-r--r-- | includes/common.inc | 2 | ||||
-rw-r--r-- | modules/simpletest/tests/common.test | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/includes/common.inc b/includes/common.inc index be7c72234..2a14c2c26 100644 --- a/includes/common.inc +++ b/includes/common.inc @@ -2049,7 +2049,7 @@ function url($path = NULL, array $options = array()) { // Allow other modules to alter the outbound URL and options. drupal_alter('url_outbound', $path, $options, $original_path); - if ($options['fragment']) { + if (isset($options['fragment']) && $options['fragment'] !== '') { $options['fragment'] = '#' . $options['fragment']; } diff --git a/modules/simpletest/tests/common.test b/modules/simpletest/tests/common.test index d81602463..61e6f8d26 100644 --- a/modules/simpletest/tests/common.test +++ b/modules/simpletest/tests/common.test @@ -268,6 +268,14 @@ class CommonURLUnitTest extends DrupalWebTestCase { $result = url('node/123', array('query' => array('foo' => NULL), 'fragment' => 'bar', 'absolute' => $absolute)); $this->assertEqual($url, $result, "$url == $result"); + $url = $base . '?q=node/123&foo#0'; + $result = url('node/123', array('query' => array('foo' => NULL), 'fragment' => '0', 'absolute' => $absolute)); + $this->assertEqual($url, $result, "$url == $result"); + + $url = $base . '?q=node/123&foo'; + $result = url('node/123', array('query' => array('foo' => NULL), 'fragment' => '', 'absolute' => $absolute)); + $this->assertEqual($url, $result, "$url == $result"); + $url = $base; $result = url('<front>', array('absolute' => $absolute)); $this->assertEqual($url, $result, "$url == $result"); |