| Index: url/url_canon_unittest.cc
|
| diff --git a/url/url_canon_unittest.cc b/url/url_canon_unittest.cc
|
| index 837bc19f0821bbae0713a8e9020b8da2a8ecb37a..caaff08de61fdf37fb8f771f08431500cee8761a 100644
|
| --- a/url/url_canon_unittest.cc
|
| +++ b/url/url_canon_unittest.cc
|
| @@ -887,6 +887,50 @@ TEST(URLCanonTest, IPEmpty) {
|
| EXPECT_FALSE(host_info.IsIPAddress());
|
| }
|
|
|
| +// Verifies that CanonicalizeHostSubstring produces the expected output and
|
| +// does not "fix" IP addresses. Because this code is a subset of
|
| +// CanonicalizeHost, the shared functionality is not tested.
|
| +TEST(URLCanonTest, CanonicalizeHostSubstring) {
|
| + // Basic sanity check.
|
| + {
|
| + std::string out_str;
|
| + StdStringCanonOutput output(&out_str);
|
| + EXPECT_TRUE(CanonicalizeHostSubstring("M\xc3\x9cNCHEN.com",
|
| + Component(0, 12), &output));
|
| + output.Complete();
|
| + EXPECT_EQ("xn--mnchen-3ya.com", out_str);
|
| + }
|
| +
|
| + // Failure case.
|
| + {
|
| + std::string out_str;
|
| + StdStringCanonOutput output(&out_str);
|
| + EXPECT_FALSE(CanonicalizeHostSubstring(
|
| + WStringToUTF16(L"\xfdd0zyx.com").c_str(), Component(0, 8), &output));
|
| + output.Complete();
|
| + EXPECT_EQ("%EF%BF%BDzyx.com", out_str);
|
| + }
|
| +
|
| + // Should return true for empty input strings.
|
| + {
|
| + std::string out_str;
|
| + StdStringCanonOutput output(&out_str);
|
| + EXPECT_TRUE(CanonicalizeHostSubstring("", Component(0, 0), &output));
|
| + output.Complete();
|
| + EXPECT_EQ(std::string(), out_str);
|
| + }
|
| +
|
| + // Numbers that look like IP addresses should not be changed.
|
| + {
|
| + std::string out_str;
|
| + StdStringCanonOutput output(&out_str);
|
| + EXPECT_TRUE(
|
| + CanonicalizeHostSubstring("01.02.03.04", Component(0, 11), &output));
|
| + output.Complete();
|
| + EXPECT_EQ("01.02.03.04", out_str);
|
| + }
|
| +}
|
| +
|
| TEST(URLCanonTest, UserInfo) {
|
| // Note that the canonicalizer should escape and treat empty components as
|
| // not being there.
|
|
|