Commit 28221c91 authored by hidehiko@chromium.org's avatar hidehiko@chromium.org

Escape backslash (\x5C) for string value of search query.

This is not documented yet, but backslash characters should also be escaped.

BUG=232352
TEST=Ran unit_tests

Review URL: https://chromiumcodereview.appspot.com/14352007

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@195298 0039d316-1c4b-4281-b951-d872f2087c98
parent 0346fda8
...@@ -26,7 +26,13 @@ namespace util { ...@@ -26,7 +26,13 @@ namespace util {
std::string EscapeQueryStringValue(const std::string& str) { std::string EscapeQueryStringValue(const std::string& str) {
std::string result; std::string result;
ReplaceChars(str, "'", "\\'", &result); result.reserve(str.size());
for (size_t i = 0; i < str.size(); ++i) {
if (str[i] == '\\' || str[i] == '\'') {
result.push_back('\\');
}
result.push_back(str[i]);
}
return result; return result;
} }
......
...@@ -14,6 +14,8 @@ TEST(DriveApiUtilTest, EscapeQueryStringValue) { ...@@ -14,6 +14,8 @@ TEST(DriveApiUtilTest, EscapeQueryStringValue) {
EXPECT_EQ("abcde", EscapeQueryStringValue("abcde")); EXPECT_EQ("abcde", EscapeQueryStringValue("abcde"));
EXPECT_EQ("\\'", EscapeQueryStringValue("'")); EXPECT_EQ("\\'", EscapeQueryStringValue("'"));
EXPECT_EQ("\\'abcde\\'", EscapeQueryStringValue("'abcde'")); EXPECT_EQ("\\'abcde\\'", EscapeQueryStringValue("'abcde'"));
EXPECT_EQ("\\\\", EscapeQueryStringValue("\\"));
EXPECT_EQ("\\\\\\'", EscapeQueryStringValue("\\'"));
} }
TEST(DriveApiUtilTest, TranslateQuery) { TEST(DriveApiUtilTest, TranslateQuery) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment