mirror of https://github.com/kiwix/libkiwix.git
Proper URI-encoding in kiwix::getSearchUrl()
This commit is contained in:
parent
82dcba542a
commit
ec81d5904d
|
@ -42,19 +42,19 @@ std::string buildSearchString(const Filter& f)
|
|||
{
|
||||
std::ostringstream oss;
|
||||
if ( f.hasQuery() )
|
||||
oss << AMP << "q=" << urlEncode(f.getQuery());
|
||||
oss << AMP << "q=" << urlEncode(f.getQuery(), true);
|
||||
|
||||
if ( f.hasCategory() )
|
||||
oss << AMP << "category=" << urlEncode(f.getCategory());
|
||||
oss << AMP << "category=" << urlEncode(f.getCategory(), true);
|
||||
|
||||
if ( f.hasLang() )
|
||||
oss << AMP << "lang=" << urlEncode(f.getLang());
|
||||
oss << AMP << "lang=" << urlEncode(f.getLang(), true);
|
||||
|
||||
if ( f.hasName() )
|
||||
oss << AMP << "name=" << urlEncode(f.getName());
|
||||
oss << AMP << "name=" << urlEncode(f.getName(), true);
|
||||
|
||||
if ( !f.getAcceptTags().empty() )
|
||||
oss << AMP << "tag=" << urlEncode(join(f.getAcceptTags(), ";"));
|
||||
oss << AMP << "tag=" << urlEncode(join(f.getAcceptTags(), ";"), true);
|
||||
|
||||
return oss.str();
|
||||
}
|
||||
|
|
|
@ -38,33 +38,33 @@ TEST(OpdsCatalog, getSearchUrl)
|
|||
{
|
||||
Filter f;
|
||||
f.query("abc def#xyz");
|
||||
EXPECT_SEARCH_URL("/catalog/v2/entries?q=abc%20def#xyz");
|
||||
EXPECT_SEARCH_URL("/catalog/v2/entries?q=abc%20def%23xyz");
|
||||
}
|
||||
{
|
||||
Filter f;
|
||||
f.category("ted&bob");
|
||||
EXPECT_SEARCH_URL("/catalog/v2/entries?category=ted&bob");
|
||||
EXPECT_SEARCH_URL("/catalog/v2/entries?category=ted%26bob");
|
||||
}
|
||||
{
|
||||
Filter f;
|
||||
f.lang("eng,fra");
|
||||
EXPECT_SEARCH_URL("/catalog/v2/entries?lang=eng,fra");
|
||||
EXPECT_SEARCH_URL("/catalog/v2/entries?lang=eng%2Cfra");
|
||||
}
|
||||
{
|
||||
Filter f;
|
||||
f.name("second?");
|
||||
EXPECT_SEARCH_URL("/catalog/v2/entries?name=second?");
|
||||
EXPECT_SEARCH_URL("/catalog/v2/entries?name=second%3F");
|
||||
}
|
||||
{
|
||||
Filter f;
|
||||
f.acceptTags({"#paper", "#plastic"});
|
||||
EXPECT_SEARCH_URL("/catalog/v2/entries?tag=#paper;#plastic");
|
||||
EXPECT_SEARCH_URL("/catalog/v2/entries?tag=%23paper%3B%23plastic");
|
||||
}
|
||||
{
|
||||
Filter f;
|
||||
f.query("abc=123");
|
||||
f.category("@ted");
|
||||
EXPECT_SEARCH_URL("/catalog/v2/entries?q=abc=123&category=@ted");
|
||||
EXPECT_SEARCH_URL("/catalog/v2/entries?q=abc%3D123&category=%40ted");
|
||||
}
|
||||
{
|
||||
Filter f;
|
||||
|
@ -79,7 +79,7 @@ TEST(OpdsCatalog, getSearchUrl)
|
|||
f.lang("html");
|
||||
f.name("edsonarantesdonascimento");
|
||||
f.acceptTags({"body", "script"});
|
||||
EXPECT_SEARCH_URL("/catalog/v2/entries?q=peru&category=scifi&lang=html&name=edsonarantesdonascimento&tag=body;script");
|
||||
EXPECT_SEARCH_URL("/catalog/v2/entries?q=peru&category=scifi&lang=html&name=edsonarantesdonascimento&tag=body%3Bscript");
|
||||
}
|
||||
#undef EXPECT_SEARCH_URL
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue