diff --git a/data/templates/default/bookmarks.tpl.php b/data/templates/default/bookmarks.tpl.php index 0ed9c1d..70fe788 100644 --- a/data/templates/default/bookmarks.tpl.php +++ b/data/templates/default/bookmarks.tpl.php @@ -107,7 +107,7 @@ if($userservice->isLoggedOn()) { } ?> - 0) { ?> + 0) { ?> @@ -358,7 +358,7 @@ if ($currenttag!= '') { $rel = ' rel="nofollow"'; } - $address = filter($row['bAddress']); + $address = $row['bAddress']; $oaddress = $address; // Redirection option if ($GLOBALS['useredir']) { @@ -418,7 +418,7 @@ if ($currenttag!= '') { } echo '
'. nl2br($bkDescription) ."
\n"; - echo '
' . shortenString($oaddress) . "
\n"; + echo '
' . htmlspecialchars(shortenString($oaddress)) . "
\n"; echo '
' . $cats . "\n" diff --git a/doc/ChangeLog b/doc/ChangeLog index 942c65c..1c5f36f 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -3,6 +3,11 @@ ChangeLog for SemantiScuttle .. contents:: +0.98.4 - 2011-XX-XX +------------------- +- Fix bug: URLs were escaped too often in bookmark list + + 0.98.3 - 2011-08-09 ------------------- - Fix bug #3388456: Missing scripts/fix-unfiled-tags.php diff --git a/tests/www/bookmarksTest.php b/tests/www/bookmarksTest.php index ae82118..ac549d8 100755 --- a/tests/www/bookmarksTest.php +++ b/tests/www/bookmarksTest.php @@ -124,5 +124,33 @@ class www_bookmarksTest extends TestBaseApi $this->assertNotContains('privateKey=', (string)$elements[0]['href']); }//end testVerifyPrivateRSSLinkDoesNotExist + + + /** + * We once had the bug that URLs with special characters were escaped too + * often. & -> & + */ + public function testAddressEncoding() + { + $this->addBookmark(null, 'http://example.org?foo&bar=baz'); + + //get rid of bookmarks.php + $this->url = $GLOBALS['unittestUrl']; + + $html = $this->getRequest()->send()->getBody(); + $x = simplexml_load_string($html); + $ns = $x->getDocNamespaces(); + $x->registerXPathNamespace('ns', reset($ns)); + + $elements = $x->xpath('//ns:a[@class="taggedlink"]'); + $this->assertEquals( + 1, count($elements), 'Number of links is not 1' + ); + $this->assertEquals( + 'http://example.org?foo&bar=baz', + (string)$elements[0]['href'] + ); + } + }//end class www_bookmarksTest ?>