summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--includes/common.inc2
-rw-r--r--modules/simpletest/tests/common.test8
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");