diff options
Diffstat (limited to 'net/base/net_util_unittest.cc')
-rw-r--r-- | net/base/net_util_unittest.cc | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/net/base/net_util_unittest.cc b/net/base/net_util_unittest.cc index 4c1ae52..30ab0b99 100644 --- a/net/base/net_util_unittest.cc +++ b/net/base/net_util_unittest.cc @@ -1389,6 +1389,11 @@ TEST(NetUtilTest, FormatUrl) { "https://www.google.com/", L"en", net::kFormatUrlOmitHTTP, UnescapeRule::NORMAL, L"https://www.google.com/", 8}, + + {"omit http starts with ftp.", + "http://ftp.google.com/", L"en", net::kFormatUrlOmitHTTP, + UnescapeRule::NORMAL, L"http://ftp.google.com/", + 7}, }; for (size_t i = 0; i < arraysize(tests); ++i) { @@ -1491,6 +1496,36 @@ TEST(NetUtilTest, FormatUrlParsed) { EXPECT_EQ(L"/a", formatted.substr(parsed.path.begin, parsed.path.len)); EXPECT_EQ(L"b=c", formatted.substr(parsed.query.begin, parsed.query.len)); EXPECT_EQ(L"d", formatted.substr(parsed.ref.begin, parsed.ref.len)); + + // omit http starts with ftp case. + formatted = net::FormatUrl( + GURL("http://ftp.host:8000/a?b=c#d"), + L"", net::kFormatUrlOmitHTTP, UnescapeRule::NORMAL, &parsed, NULL, NULL); + EXPECT_EQ(L"http://ftp.host:8000/a?b=c#d", formatted); + EXPECT_TRUE(parsed.scheme.is_valid()); + EXPECT_FALSE(parsed.username.is_valid()); + EXPECT_FALSE(parsed.password.is_valid()); + EXPECT_EQ(L"http", formatted.substr(parsed.scheme.begin, parsed.scheme.len)); + EXPECT_EQ(L"ftp.host", formatted.substr(parsed.host.begin, parsed.host.len)); + EXPECT_EQ(L"8000", formatted.substr(parsed.port.begin, parsed.port.len)); + EXPECT_EQ(L"/a", formatted.substr(parsed.path.begin, parsed.path.len)); + EXPECT_EQ(L"b=c", formatted.substr(parsed.query.begin, parsed.query.len)); + EXPECT_EQ(L"d", formatted.substr(parsed.ref.begin, parsed.ref.len)); + + // omit http starts with 'f' case. + formatted = net::FormatUrl( + GURL("http://f/"), + L"", net::kFormatUrlOmitHTTP, UnescapeRule::NORMAL, &parsed, NULL, NULL); + EXPECT_EQ(L"f/", formatted); + EXPECT_FALSE(parsed.scheme.is_valid()); + EXPECT_FALSE(parsed.username.is_valid()); + EXPECT_FALSE(parsed.password.is_valid()); + EXPECT_FALSE(parsed.port.is_valid()); + EXPECT_TRUE(parsed.path.is_valid()); + EXPECT_FALSE(parsed.query.is_valid()); + EXPECT_FALSE(parsed.ref.is_valid()); + EXPECT_EQ(L"f", formatted.substr(parsed.host.begin, parsed.host.len)); + EXPECT_EQ(L"/", formatted.substr(parsed.path.begin, parsed.path.len)); } TEST(NetUtilTest, FormatUrlAdjustOffset) { @@ -1629,6 +1664,18 @@ TEST(NetUtilTest, FormatUrlAdjustOffset) { EXPECT_EQ(omit_http_cases[i].output_offset, offset); } + const AdjustOffsetCase omit_http_start_with_ftp[] = { + {0, 0}, + {3, 3}, + {8, 8}, + }; + for (size_t i = 0; i < ARRAYSIZE_UNSAFE(omit_http_start_with_ftp); ++i) { + size_t offset = omit_http_start_with_ftp[i].input_offset; + net::FormatUrl(GURL("http://ftp.google.com"), L"en", + net::kFormatUrlOmitHTTP, UnescapeRule::NORMAL, NULL, NULL, &offset); + EXPECT_EQ(omit_http_start_with_ftp[i].output_offset, offset); + } + const AdjustOffsetCase omit_all_cases[] = { {12, 0}, {13, 1}, |