diff options
-rw-r--r-- | doc/ChangeLog | 1 | ||||
-rw-r--r-- | tests/www/searchTest.php | 53 | ||||
-rw-r--r-- | www/search.php | 10 |
3 files changed, 60 insertions, 4 deletions
diff --git a/doc/ChangeLog b/doc/ChangeLog index 273e84b..a7374e2 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -6,6 +6,7 @@ ChangeLog for SemantiScuttle - Switch to jQuery and drop dojo - Fix bug #3187177: Wrong URL / Export XML Bookmarks - Fix bug in getTagsForBookmarks() that fetched all tags +- Fix bug #3097187: Using opensearch with two tags does not work in Firefox - Implement request #3054906: Show user's full name instead of nickname - Implement patch #3059829: update FR_CA translation - Show error message on mysqli connection errors diff --git a/tests/www/searchTest.php b/tests/www/searchTest.php new file mode 100644 index 0000000..81eb2cc --- /dev/null +++ b/tests/www/searchTest.php @@ -0,0 +1,53 @@ +<?php + +class www_SearchTest extends TestBaseApi +{ + protected $urlPart = 'search.php'; + + + /** + * Some browsers using opensearch do "urlencode" on the terms, + * for example Firefox. Multiple terms separated with space + * appear as "foo+bar" in the URL. + */ + public function testMultipleTermsUrlEncoded() + { + $this->addBookmark(null, null, 0, null, 'unittest foo bar'); + $res = $this->getRequest('/all/foo+bar')->send(); + $this->assertSelectCount( + '.xfolkentry', true, $res->getBody(), + 'No bookmark found' + ); + + $res = $this->getRequest('/all/baz+bat')->send(); + $this->assertSelectCount( + '.xfolkentry', false, $res->getBody(), + 'Bookmarks found' + ); + } + + + /** + * Some browsers using opensearch do "rawurlencode" on the terms, + * for example Opera. Multiple terms separated with space + * appear as "foo%20bar" in the URL. + */ + public function testMultipleTermsRawUrlEncoded() + { + $this->addBookmark(null, null, 0, null, 'unittest foo bar'); + $res = $this->getRequest('/all/foo bar')->send(); + $this->assertSelectCount( + '.xfolkentry', true, $res->getBody(), + 'No bookmark found' + ); + + $res = $this->getRequest('/all/baz bat')->send(); + $this->assertSelectCount( + '.xfolkentry', false, $res->getBody(), + 'Bookmarks found' + ); + } + +} + +?>
\ No newline at end of file diff --git a/www/search.php b/www/search.php index 3cff550..a5c13e3 100644 --- a/www/search.php +++ b/www/search.php @@ -40,8 +40,8 @@ if (POST_TERMS != '') { } /* Service creation: only useful services are created */ -$bookmarkservice =SemanticScuttle_Service_Factory::get('Bookmark'); -$searchhistoryservice =SemanticScuttle_Service_Factory::get('SearchHistory'); +$bookmarkservice = SemanticScuttle_Service_Factory::get('Bookmark'); +$searchhistoryservice = SemanticScuttle_Service_Factory::get('SearchHistory'); /* Managing current logged user */ $currentUserId = $userservice->getCurrentUserId(); @@ -53,11 +53,13 @@ if(count($exploded) == 4) { list($url, $range, $terms, $page) = $exploded; } else if (count($exploded) == 2) { list($url, $range) = $exploded; - $terms = $page= NULL; + $terms = $page = NULL; } else { list($url, $range, $terms) = $exploded; - $page= NULL; + $page = NULL; } +//some OpenSearch clients need that +$terms = urldecode($terms); $tplVars['loadjs'] = true; |