Index: net/base/escape_unittest.cc |
diff --git a/net/base/escape_unittest.cc b/net/base/escape_unittest.cc |
index 1e82239b8959430bb66713b9e532d2c1d560c508..4d3bcbdd40c029025f0881c9b102e5bd4e80b344 100644 |
--- a/net/base/escape_unittest.cc |
+++ b/net/base/escape_unittest.cc |
@@ -479,6 +479,43 @@ TEST(EscapeTest, UnescapeForHTML) { |
} |
} |
+TEST(EscapeTest, EscapeExternalHandlerValue) { |
+ ASSERT_EQ( |
+ // Escaped |
+ "%02%0A%1D%20!%22#$%25&'()*+,-./0123456789:;" |
+ "%3C=%3E?@ABCDEFGHIJKLMNOPQRSTUVWXYZ" |
+ "[%5C]%5E_%60abcdefghijklmnopqrstuvwxyz" |
+ "%7B%7C%7D~%7F%80%FF", |
+ // Most of the character space we care about, un-escaped |
+ EscapeExternalHandlerValue( |
+ "\x02\n\x1d !\"#$%&'()*+,-./0123456789:;" |
+ "<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ" |
+ "[\\]^_`abcdefghijklmnopqrstuvwxyz" |
+ "{|}~\x7f\x80\xff")); |
+ |
+ ASSERT_EQ( |
+ "!#$&'()*+,-./0123456789:;=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]_" |
+ "abcdefghijklmnopqrstuvwxyz~", |
+ EscapeExternalHandlerValue( |
+ "!#$&'()*+,-./0123456789:;=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]_" |
+ "abcdefghijklmnopqrstuvwxyz~")); |
+ |
+ ASSERT_EQ("%258k", EscapeExternalHandlerValue("%8k")); |
+ ASSERT_EQ("a%25", EscapeExternalHandlerValue("a%")); |
+ ASSERT_EQ("%25a", EscapeExternalHandlerValue("%a")); |
+ ASSERT_EQ("a%258", EscapeExternalHandlerValue("a%8")); |
+ ASSERT_EQ("%ab", EscapeExternalHandlerValue("%ab")); |
+ ASSERT_EQ("%AB", EscapeExternalHandlerValue("%AB")); |
+ |
+ ASSERT_EQ("http://example.com/path/sub?q=a%7Cb%7Cc&q=1%7C2%7C3#ref%7C", |
+ EscapeExternalHandlerValue( |
+ "http://example.com/path/sub?q=a|b|c&q=1|2|3#ref|")); |
+ ASSERT_EQ("http://example.com/path/sub?q=a%7Cb%7Cc&q=1%7C2%7C3#ref%7C", |
+ EscapeExternalHandlerValue( |
+ "http://example.com/path/sub?q=a%7Cb%7Cc&q=1%7C2%7C3#ref%7C")); |
+ ASSERT_EQ("http://[2001:db8:0:1]:80", |
+ EscapeExternalHandlerValue("http://[2001:db8:0:1]:80")); |
+} |
} // namespace |
} // namespace net |