summaryrefslogtreecommitdiffstats
path: root/net/base/escape_unittest.cc
diff options
context:
space:
mode:
authoravayvod@google.com <avayvod@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-15 20:09:19 +0000
committeravayvod@google.com <avayvod@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-15 20:09:19 +0000
commit0d2e6a6da72279fe8f66eeb3b4442b6e5f4eb67c (patch)
treeac8b45854d1aae7652b37c2561444327206c8067 /net/base/escape_unittest.cc
parent9101ef1e42dd9e3a101e22b4ad94c0b1f0dffbc9 (diff)
downloadchromium_src-0d2e6a6da72279fe8f66eeb3b4442b6e5f4eb67c.zip
chromium_src-0d2e6a6da72279fe8f66eeb3b4442b6e5f4eb67c.tar.gz
chromium_src-0d2e6a6da72279fe8f66eeb3b4442b6e5f4eb67c.tar.bz2
The search terms are escaped using + or %20 for space depending on whether replacement is in query part of the URL or not.
Removed duplicate EscapeQueryParamValue functions without |use_plus| argument. BUG=24571 TEST=Verify that space is escaped as stated in description; see bug description for example with search on Wikipedia. Review URL: http://codereview.chromium.org/543077 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36398 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/base/escape_unittest.cc')
-rw-r--r--net/base/escape_unittest.cc23
1 files changed, 19 insertions, 4 deletions
diff --git a/net/base/escape_unittest.cc b/net/base/escape_unittest.cc
index f350117f..c93024c 100644
--- a/net/base/escape_unittest.cc
+++ b/net/base/escape_unittest.cc
@@ -58,7 +58,17 @@ TEST(EscapeTest, EscapeTextForFormSubmission) {
};
for (size_t i = 0; i < arraysize(escape_cases); ++i) {
EscapeCase value = escape_cases[i];
- EXPECT_EQ(value.output, EscapeQueryParamValueUTF8(value.input));
+ EXPECT_EQ(value.output, EscapeQueryParamValueUTF8(value.input, true));
+ }
+
+ const EscapeCase escape_cases_no_plus[] = {
+ {L"foo", L"foo"},
+ {L"foo bar", L"foo%20bar"},
+ {L"foo++", L"foo%2B%2B"}
+ };
+ for (size_t i = 0; i < arraysize(escape_cases_no_plus); ++i) {
+ EscapeCase value = escape_cases_no_plus[i];
+ EXPECT_EQ(value.output, EscapeQueryParamValueUTF8(value.input, false));
}
// Test all the values in we're supposed to be escaping.
@@ -70,7 +80,7 @@ TEST(EscapeTest, EscapeTextForFormSubmission) {
for (int i = 0; i < 256; ++i) {
std::string in;
in.push_back(i);
- std::string out = EscapeQueryParamValue(in);
+ std::string out = EscapeQueryParamValue(in, true);
if (0 == i) {
EXPECT_EQ(out, std::string("%00"));
} else if (32 == i) {
@@ -94,9 +104,14 @@ TEST(EscapeTest, EscapeTextForFormSubmission) {
test_str.push_back(i);
}
string16 wide;
- EXPECT_TRUE(EscapeQueryParamValue(test_str, base::kCodepageUTF8, &wide));
+ EXPECT_TRUE(EscapeQueryParamValue(test_str, base::kCodepageUTF8, true,
+ &wide));
+ EXPECT_EQ(UTF16ToWideHack(wide),
+ EscapeQueryParamValueUTF8(UTF16ToWideHack(test_str), true));
+ EXPECT_TRUE(EscapeQueryParamValue(test_str, base::kCodepageUTF8, false,
+ &wide));
EXPECT_EQ(UTF16ToWideHack(wide),
- EscapeQueryParamValueUTF8(UTF16ToWideHack(test_str)));
+ EscapeQueryParamValueUTF8(UTF16ToWideHack(test_str), false));
}
TEST(EscapeTest, EscapePath) {