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"); }