diff --git a/library/HTMLPurifier/AttrDef/URI.php b/library/HTMLPurifier/AttrDef/URI.php
index 9eb39b08..a315ebbd 100644
--- a/library/HTMLPurifier/AttrDef/URI.php
+++ b/library/HTMLPurifier/AttrDef/URI.php
@@ -43,15 +43,15 @@ class HTMLPurifier_AttrDef_URI extends HTMLPurifier_AttrDef
- $registry = HTMLPurifier_URISchemeRegistry::instance();
+ $registry =& HTMLPurifier_URISchemeRegistry::instance();
if ($scheme !== null) {
// no need to validate the scheme's fmt since we do that when we
// retrieve the specific scheme object from the registry
$scheme = ctype_lower($scheme) ? $scheme : strtolower($scheme);
- $scheme_obj = $registry->getScheme($scheme);
+ $scheme_obj =& $registry->getScheme($scheme);
if (!$scheme_obj) return ''; // invalid scheme, clean it out
} else {
- $scheme_obj = $registry->getScheme($config->get('URI', 'DefaultScheme'));
+ $scheme_obj =& $registry->getScheme($config->get('URI', 'DefaultScheme'));
}
@@ -141,4 +141,4 @@ class HTMLPurifier_AttrDef_URI extends HTMLPurifier_AttrDef
}
-?>
\ No newline at end of file
+?>
diff --git a/tests/HTMLPurifier/AttrDef/URITest.php b/tests/HTMLPurifier/AttrDef/URITest.php
index 5f8e8b54..9a1ffad9 100644
--- a/tests/HTMLPurifier/AttrDef/URITest.php
+++ b/tests/HTMLPurifier/AttrDef/URITest.php
@@ -117,7 +117,7 @@ class HTMLPurifier_AttrDef_URITest extends HTMLPurifier_AttrDefHarness
// test overlarge port (max is 65535, although this isn't official)
$uri[13] = 'http://example.com:65536';
$components[13] = array('example.com', '', null, null);
- $uri[13] = 'http://example.com';
+ $expect_uri[13] = 'http://example.com';
// some spec abnf tests
@@ -157,14 +157,14 @@ class HTMLPurifier_AttrDef_URITest extends HTMLPurifier_AttrDefHarness
// I cannot set a default value to function parameters that are passed
// by reference. So we use the value instance() returns.
$fake_registry = new HTMLPurifier_URISchemeRegistryMock($this);
- $registry = HTMLPurifier_URISchemeRegistry::instance($fake_registry);
+ $registry =& HTMLPurifier_URISchemeRegistry::instance($fake_registry);
// now, let's at a pseudo-scheme to the registry
- $scheme = new HTMLPurifier_URISchemeMock($this);
+ $scheme =& new HTMLPurifier_URISchemeMock($this);
// here are the schemes we will support with overloaded mocks
- $registry->setReturnValue('getScheme', $scheme, array('http'));
- $registry->setReturnValue('getScheme', $scheme, array('mailto'));
+ $registry->setReturnReference('getScheme', $scheme, array('http'));
+ $registry->setReturnReference('getScheme', $scheme, array('mailto'));
// default return value is false (meaning no scheme defined: reject)
$registry->setReturnValue('getScheme', false, array('*'));
@@ -184,7 +184,7 @@ class HTMLPurifier_AttrDef_URITest extends HTMLPurifier_AttrDefHarness
}
$result = $def->validate($value);
$scheme->tally();
- $this->assertIdentical($expect_uri[$i], $result);
+ $this->assertIdentical($expect_uri[$i], $result, "Test $i: %s");
}