Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(517)

Unified Diff: components/url_formatter/url_formatter_unittest.cc

Issue 1171333003: Move net::FormatUrl and friends outside of //net and into //components (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase again now that CQ is fixed Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/url_formatter/url_formatter.gyp ('k') | content/browser/BUILD.gn » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/url_formatter/url_formatter_unittest.cc
diff --git a/net/base/net_util_icu_unittest.cc b/components/url_formatter/url_formatter_unittest.cc
similarity index 67%
copy from net/base/net_util_icu_unittest.cc
copy to components/url_formatter/url_formatter_unittest.cc
index f643426aa678ed48f36e96877adde254a26624b5..0dd635a9488c9dc89b43e574e11ccd548d1b30e6 100644
--- a/net/base/net_util_icu_unittest.cc
+++ b/components/url_formatter/url_formatter_unittest.cc
@@ -1,28 +1,28 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
+// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "net/base/net_util.h"
+#include "components/url_formatter/url_formatter.h"
#include <string.h>
#include <vector>
-#include "base/format_macros.h"
+#include "base/macros.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
-#include "base/time/time.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "url/gurl.h"
-using base::ASCIIToUTF16;
-using base::WideToUTF16;
-namespace net {
+namespace url_formatter {
namespace {
+using base::WideToUTF16;
+using base::ASCIIToUTF16;
+
const size_t kNpos = base::string16::npos;
const char* const kLanguages[] = {
@@ -374,7 +374,7 @@ struct UrlTestData {
const char* const input;
const char* const languages;
FormatUrlTypes format_types;
- UnescapeRule::Type escape_rules;
+ net::UnescapeRule::Type escape_rules;
const wchar_t* output; // Use |wchar_t| to handle Unicode constants easily.
size_t prefix_len;
};
@@ -403,7 +403,7 @@ void VerboseExpect(size_t expected,
void CheckAdjustedOffsets(const std::string& url_string,
const std::string& languages,
FormatUrlTypes format_types,
- UnescapeRule::Type unescape_rules,
+ net::UnescapeRule::Type unescape_rules,
const size_t* output_offsets) {
GURL url(url_string);
size_t url_length = url_string.length();
@@ -424,9 +424,7 @@ void CheckAdjustedOffsets(const std::string& url_string,
std::string::npos, formatted_url);
}
-} // anonymous namespace
-
-TEST(NetUtilTest, IDNToUnicodeFast) {
+TEST(UrlFormatterTest, IDNToUnicodeFast) {
for (size_t i = 0; i < arraysize(idn_cases); i++) {
for (size_t j = 0; j < arraysize(kLanguages); j++) {
// ja || zh-TW,en || ko,ja -> IDNToUnicodeSlow
@@ -444,7 +442,7 @@ TEST(NetUtilTest, IDNToUnicodeFast) {
}
}
-TEST(NetUtilTest, IDNToUnicodeSlow) {
+TEST(UrlFormatterTest, IDNToUnicodeSlow) {
for (size_t i = 0; i < arraysize(idn_cases); i++) {
for (size_t j = 0; j < arraysize(kLanguages); j++) {
// !(ja || zh-TW,en || ko,ja) -> IDNToUnicodeFast
@@ -465,7 +463,7 @@ TEST(NetUtilTest, IDNToUnicodeSlow) {
// ulocdata_getExemplarSet may fail with some locales (currently bn, gu, and
// te), which was causing a crash (See http://crbug.com/510551). This may be an
// icu bug, but regardless, that should not cause a crash.
-TEST(NetUtilTest, IDNToUnicodeNeverCrashes) {
+TEST(UrlFormatterTest, IDNToUnicodeNeverCrashes) {
for (char c1 = 'a'; c1 <= 'z'; c1++) {
for (char c2 = 'a'; c2 <= 'z'; c2++) {
std::string lang = base::StringPrintf("%c%c", c1, c2);
@@ -474,254 +472,161 @@ TEST(NetUtilTest, IDNToUnicodeNeverCrashes) {
}
}
-TEST(NetUtilTest, StripWWW) {
- EXPECT_EQ(base::string16(), StripWWW(base::string16()));
- EXPECT_EQ(base::string16(), StripWWW(ASCIIToUTF16("www.")));
- EXPECT_EQ(ASCIIToUTF16("blah"), StripWWW(ASCIIToUTF16("www.blah")));
- EXPECT_EQ(ASCIIToUTF16("blah"), StripWWW(ASCIIToUTF16("blah")));
-}
-
-// This is currently a windows specific function.
-#if defined(OS_WIN)
-namespace {
-
-struct GetDirectoryListingEntryCase {
- const wchar_t* name;
- const char* const raw_bytes;
- bool is_dir;
- int64_t filesize;
- base::Time time;
- const char* const expected;
-};
-
-} // namespace
-
-TEST(NetUtilTest, GetDirectoryListingEntry) {
- const GetDirectoryListingEntryCase test_cases[] = {
- {L"Foo",
- "",
- false,
- 10000,
- base::Time(),
- "<script>addRow(\"Foo\",\"Foo\",0,\"9.8 kB\",\"\");</script>\n"},
- {L"quo\"tes",
- "",
- false,
- 10000,
- base::Time(),
- "<script>addRow(\"quo\\\"tes\",\"quo%22tes\",0,\"9.8 kB\",\"\");</script>"
- "\n"},
- {L"quo\"tes",
- "quo\"tes",
- false,
- 10000,
- base::Time(),
- "<script>addRow(\"quo\\\"tes\",\"quo%22tes\",0,\"9.8 kB\",\"\");</script>"
- "\n"},
- // U+D55C0 U+AE00. raw_bytes is empty (either a local file with
- // UTF-8/UTF-16 encoding or a remote file on an ftp server using UTF-8
- {L"\xD55C\xAE00.txt",
- "",
- false,
- 10000,
- base::Time(),
- "<script>addRow(\"\xED\x95\x9C\xEA\xB8\x80.txt\","
- "\"%ED%95%9C%EA%B8%80.txt\",0,\"9.8 kB\",\"\");</script>\n"},
- // U+D55C0 U+AE00. raw_bytes is the corresponding EUC-KR sequence:
- // a local or remote file in EUC-KR.
- {L"\xD55C\xAE00.txt",
- "\xC7\xD1\xB1\xDB.txt",
- false,
- 10000,
- base::Time(),
- "<script>addRow(\"\xED\x95\x9C\xEA\xB8\x80.txt\",\"%C7%D1%B1%DB.txt\""
- ",0,\"9.8 kB\",\"\");</script>\n"},
- };
-
- for (size_t i = 0; i < arraysize(test_cases); ++i) {
- const std::string results = GetDirectoryListingEntry(
- WideToUTF16(test_cases[i].name),
- test_cases[i].raw_bytes,
- test_cases[i].is_dir,
- test_cases[i].filesize,
- test_cases[i].time);
- EXPECT_EQ(test_cases[i].expected, results);
- }
-}
-
-#endif
-
-TEST(NetUtilTest, FormatUrl) {
+TEST(UrlFormatterTest, FormatUrl) {
FormatUrlTypes default_format_type = kFormatUrlOmitUsernamePassword;
const UrlTestData tests[] = {
- {"Empty URL", "", "", default_format_type, UnescapeRule::NORMAL, L"", 0},
-
- {"Simple URL",
- "http://www.google.com/", "", default_format_type, UnescapeRule::NORMAL,
- L"http://www.google.com/", 7},
-
- {"With a port number and a reference",
- "http://www.google.com:8080/#\xE3\x82\xB0", "", default_format_type,
- UnescapeRule::NORMAL,
- L"http://www.google.com:8080/#\x30B0", 7},
-
- // -------- IDN tests --------
- {"Japanese IDN with ja",
- "http://xn--l8jvb1ey91xtjb.jp", "ja", default_format_type,
- UnescapeRule::NORMAL, L"http://\x671d\x65e5\x3042\x3055\x3072.jp/", 7},
-
- {"Japanese IDN with en",
- "http://xn--l8jvb1ey91xtjb.jp", "en", default_format_type,
- UnescapeRule::NORMAL, L"http://xn--l8jvb1ey91xtjb.jp/", 7},
-
- {"Japanese IDN without any languages",
- "http://xn--l8jvb1ey91xtjb.jp", "", default_format_type,
- UnescapeRule::NORMAL,
- // Single script is safe for empty languages.
- L"http://\x671d\x65e5\x3042\x3055\x3072.jp/", 7},
-
- {"mailto: with Japanese IDN",
- "mailto:foo@xn--l8jvb1ey91xtjb.jp", "ja", default_format_type,
- UnescapeRule::NORMAL,
- // GURL doesn't assume an email address's domain part as a host name.
- L"mailto:foo@xn--l8jvb1ey91xtjb.jp", 7},
-
- {"file: with Japanese IDN",
- "file://xn--l8jvb1ey91xtjb.jp/config.sys", "ja", default_format_type,
- UnescapeRule::NORMAL,
- L"file://\x671d\x65e5\x3042\x3055\x3072.jp/config.sys", 7},
-
- {"ftp: with Japanese IDN",
- "ftp://xn--l8jvb1ey91xtjb.jp/config.sys", "ja", default_format_type,
- UnescapeRule::NORMAL,
- L"ftp://\x671d\x65e5\x3042\x3055\x3072.jp/config.sys", 6},
-
- // -------- omit_username_password flag tests --------
- {"With username and password, omit_username_password=false",
- "http://user:passwd@example.com/foo", "",
- kFormatUrlOmitNothing, UnescapeRule::NORMAL,
- L"http://user:passwd@example.com/foo", 19},
-
- {"With username and password, omit_username_password=true",
- "http://user:passwd@example.com/foo", "", default_format_type,
- UnescapeRule::NORMAL, L"http://example.com/foo", 7},
-
- {"With username and no password",
- "http://user@example.com/foo", "", default_format_type,
- UnescapeRule::NORMAL, L"http://example.com/foo", 7},
-
- {"Just '@' without username and password",
- "http://@example.com/foo", "", default_format_type, UnescapeRule::NORMAL,
- L"http://example.com/foo", 7},
-
- // GURL doesn't think local-part of an email address is username for URL.
- {"mailto:, omit_username_password=true",
- "mailto:foo@example.com", "", default_format_type, UnescapeRule::NORMAL,
- L"mailto:foo@example.com", 7},
-
- // -------- unescape flag tests --------
- {"Do not unescape",
- "http://%E3%82%B0%E3%83%BC%E3%82%B0%E3%83%AB.jp/"
- "%E3%82%B0%E3%83%BC%E3%82%B0%E3%83%AB"
- "?q=%E3%82%B0%E3%83%BC%E3%82%B0%E3%83%AB", "en", default_format_type,
- UnescapeRule::NONE,
- // GURL parses %-encoded hostnames into Punycode.
- L"http://xn--qcka1pmc.jp/%E3%82%B0%E3%83%BC%E3%82%B0%E3%83%AB"
- L"?q=%E3%82%B0%E3%83%BC%E3%82%B0%E3%83%AB", 7},
-
- {"Unescape normally",
- "http://%E3%82%B0%E3%83%BC%E3%82%B0%E3%83%AB.jp/"
- "%E3%82%B0%E3%83%BC%E3%82%B0%E3%83%AB"
- "?q=%E3%82%B0%E3%83%BC%E3%82%B0%E3%83%AB", "en", default_format_type,
- UnescapeRule::NORMAL,
- L"http://xn--qcka1pmc.jp/\x30B0\x30FC\x30B0\x30EB"
- L"?q=\x30B0\x30FC\x30B0\x30EB", 7},
-
- {"Unescape normally with BiDi control character",
- "http://example.com/%E2%80%AEabc?q=%E2%80%8Fxy", "en", default_format_type,
- UnescapeRule::NORMAL, L"http://example.com/%E2%80%AEabc?q=%E2%80%8Fxy", 7},
-
- {"Unescape normally including unescape spaces",
- "http://www.google.com/search?q=Hello%20World", "en", default_format_type,
- UnescapeRule::SPACES, L"http://www.google.com/search?q=Hello World", 7},
-
- /*
- {"unescape=true with some special characters",
- "http://user%3A:%40passwd@example.com/foo%3Fbar?q=b%26z", "",
- kFormatUrlOmitNothing, UnescapeRule::NORMAL,
- L"http://user%3A:%40passwd@example.com/foo%3Fbar?q=b%26z", 25},
- */
- // Disabled: the resultant URL becomes "...user%253A:%2540passwd...".
-
- // -------- omit http: --------
- {"omit http with user name",
- "http://user@example.com/foo", "", kFormatUrlOmitAll,
- UnescapeRule::NORMAL, L"example.com/foo", 0},
-
- {"omit http",
- "http://www.google.com/", "en", kFormatUrlOmitHTTP,
- UnescapeRule::NORMAL, L"www.google.com/",
- 0},
-
- {"omit http with https",
- "https://www.google.com/", "en", kFormatUrlOmitHTTP,
- UnescapeRule::NORMAL, L"https://www.google.com/",
- 8},
-
- {"omit http starts with ftp.",
- "http://ftp.google.com/", "en", kFormatUrlOmitHTTP,
- UnescapeRule::NORMAL, L"http://ftp.google.com/",
- 7},
-
- // -------- omit trailing slash on bare hostname --------
- {"omit slash when it's the entire path",
- "http://www.google.com/", "en",
- kFormatUrlOmitTrailingSlashOnBareHostname, UnescapeRule::NORMAL,
- L"http://www.google.com", 7},
- {"omit slash when there's a ref",
- "http://www.google.com/#ref", "en",
- kFormatUrlOmitTrailingSlashOnBareHostname, UnescapeRule::NORMAL,
- L"http://www.google.com/#ref", 7},
- {"omit slash when there's a query",
- "http://www.google.com/?", "en",
- kFormatUrlOmitTrailingSlashOnBareHostname, UnescapeRule::NORMAL,
- L"http://www.google.com/?", 7},
- {"omit slash when it's not the entire path",
- "http://www.google.com/foo", "en",
- kFormatUrlOmitTrailingSlashOnBareHostname, UnescapeRule::NORMAL,
- L"http://www.google.com/foo", 7},
- {"omit slash for nonstandard URLs",
- "data:/", "en", kFormatUrlOmitTrailingSlashOnBareHostname,
- UnescapeRule::NORMAL, L"data:/", 5},
- {"omit slash for file URLs",
- "file:///", "en", kFormatUrlOmitTrailingSlashOnBareHostname,
- UnescapeRule::NORMAL, L"file:///", 7},
-
- // -------- view-source: --------
- {"view-source",
- "view-source:http://xn--qcka1pmc.jp/", "ja", default_format_type,
- UnescapeRule::NORMAL, L"view-source:http://\x30B0\x30FC\x30B0\x30EB.jp/",
- 19},
-
- {"view-source of view-source",
- "view-source:view-source:http://xn--qcka1pmc.jp/", "ja",
- default_format_type, UnescapeRule::NORMAL,
- L"view-source:view-source:http://xn--qcka1pmc.jp/", 12},
-
- // view-source should omit http and trailing slash where non-view-source
- // would.
- {"view-source omit http",
- "view-source:http://a.b/c", "en", kFormatUrlOmitAll,
- UnescapeRule::NORMAL, L"view-source:a.b/c",
- 12},
- {"view-source omit http starts with ftp.",
- "view-source:http://ftp.b/c", "en", kFormatUrlOmitAll,
- UnescapeRule::NORMAL, L"view-source:http://ftp.b/c",
- 19},
- {"view-source omit slash when it's the entire path",
- "view-source:http://a.b/", "en", kFormatUrlOmitAll,
- UnescapeRule::NORMAL, L"view-source:a.b",
- 12},
+ {"Empty URL", "", "", default_format_type, net::UnescapeRule::NORMAL, L"",
+ 0},
+
+ {"Simple URL", "http://www.google.com/", "", default_format_type,
+ net::UnescapeRule::NORMAL, L"http://www.google.com/", 7},
+
+ {"With a port number and a reference",
+ "http://www.google.com:8080/#\xE3\x82\xB0", "", default_format_type,
+ net::UnescapeRule::NORMAL, L"http://www.google.com:8080/#\x30B0", 7},
+
+ // -------- IDN tests --------
+ {"Japanese IDN with ja", "http://xn--l8jvb1ey91xtjb.jp", "ja",
+ default_format_type, net::UnescapeRule::NORMAL,
+ L"http://\x671d\x65e5\x3042\x3055\x3072.jp/", 7},
+
+ {"Japanese IDN with en", "http://xn--l8jvb1ey91xtjb.jp", "en",
+ default_format_type, net::UnescapeRule::NORMAL,
+ L"http://xn--l8jvb1ey91xtjb.jp/", 7},
+
+ {"Japanese IDN without any languages", "http://xn--l8jvb1ey91xtjb.jp", "",
+ default_format_type, net::UnescapeRule::NORMAL,
+ // Single script is safe for empty languages.
+ L"http://\x671d\x65e5\x3042\x3055\x3072.jp/", 7},
+
+ {"mailto: with Japanese IDN", "mailto:foo@xn--l8jvb1ey91xtjb.jp", "ja",
+ default_format_type, net::UnescapeRule::NORMAL,
+ // GURL doesn't assume an email address's domain part as a host name.
+ L"mailto:foo@xn--l8jvb1ey91xtjb.jp", 7},
+
+ {"file: with Japanese IDN", "file://xn--l8jvb1ey91xtjb.jp/config.sys",
+ "ja", default_format_type, net::UnescapeRule::NORMAL,
+ L"file://\x671d\x65e5\x3042\x3055\x3072.jp/config.sys", 7},
+
+ {"ftp: with Japanese IDN", "ftp://xn--l8jvb1ey91xtjb.jp/config.sys", "ja",
+ default_format_type, net::UnescapeRule::NORMAL,
+ L"ftp://\x671d\x65e5\x3042\x3055\x3072.jp/config.sys", 6},
+
+ // -------- omit_username_password flag tests --------
+ {"With username and password, omit_username_password=false",
+ "http://user:passwd@example.com/foo", "", kFormatUrlOmitNothing,
+ net::UnescapeRule::NORMAL, L"http://user:passwd@example.com/foo", 19},
+
+ {"With username and password, omit_username_password=true",
+ "http://user:passwd@example.com/foo", "", default_format_type,
+ net::UnescapeRule::NORMAL, L"http://example.com/foo", 7},
+
+ {"With username and no password", "http://user@example.com/foo", "",
+ default_format_type, net::UnescapeRule::NORMAL,
+ L"http://example.com/foo", 7},
+
+ {"Just '@' without username and password", "http://@example.com/foo", "",
+ default_format_type, net::UnescapeRule::NORMAL,
+ L"http://example.com/foo", 7},
+
+ // GURL doesn't think local-part of an email address is username for URL.
+ {"mailto:, omit_username_password=true", "mailto:foo@example.com", "",
+ default_format_type, net::UnescapeRule::NORMAL,
+ L"mailto:foo@example.com", 7},
+
+ // -------- unescape flag tests --------
+ {"Do not unescape",
+ "http://%E3%82%B0%E3%83%BC%E3%82%B0%E3%83%AB.jp/"
+ "%E3%82%B0%E3%83%BC%E3%82%B0%E3%83%AB"
+ "?q=%E3%82%B0%E3%83%BC%E3%82%B0%E3%83%AB",
+ "en", default_format_type, net::UnescapeRule::NONE,
+ // GURL parses %-encoded hostnames into Punycode.
+ L"http://xn--qcka1pmc.jp/%E3%82%B0%E3%83%BC%E3%82%B0%E3%83%AB"
+ L"?q=%E3%82%B0%E3%83%BC%E3%82%B0%E3%83%AB",
+ 7},
+
+ {"Unescape normally",
+ "http://%E3%82%B0%E3%83%BC%E3%82%B0%E3%83%AB.jp/"
+ "%E3%82%B0%E3%83%BC%E3%82%B0%E3%83%AB"
+ "?q=%E3%82%B0%E3%83%BC%E3%82%B0%E3%83%AB",
+ "en", default_format_type, net::UnescapeRule::NORMAL,
+ L"http://xn--qcka1pmc.jp/\x30B0\x30FC\x30B0\x30EB"
+ L"?q=\x30B0\x30FC\x30B0\x30EB",
+ 7},
+
+ {"Unescape normally with BiDi control character",
+ "http://example.com/%E2%80%AEabc?q=%E2%80%8Fxy", "en",
+ default_format_type, net::UnescapeRule::NORMAL,
+ L"http://example.com/%E2%80%AEabc?q=%E2%80%8Fxy", 7},
+
+ {"Unescape normally including unescape spaces",
+ "http://www.google.com/search?q=Hello%20World", "en",
+ default_format_type, net::UnescapeRule::SPACES,
+ L"http://www.google.com/search?q=Hello World", 7},
+
+ /*
+ {"unescape=true with some special characters",
+ "http://user%3A:%40passwd@example.com/foo%3Fbar?q=b%26z", "",
+ kFormatUrlOmitNothing, net::UnescapeRule::NORMAL,
+ L"http://user%3A:%40passwd@example.com/foo%3Fbar?q=b%26z", 25},
+ */
+ // Disabled: the resultant URL becomes "...user%253A:%2540passwd...".
+
+ // -------- omit http: --------
+ {"omit http with user name", "http://user@example.com/foo", "",
+ kFormatUrlOmitAll, net::UnescapeRule::NORMAL, L"example.com/foo", 0},
+
+ {"omit http", "http://www.google.com/", "en", kFormatUrlOmitHTTP,
+ net::UnescapeRule::NORMAL, L"www.google.com/", 0},
+
+ {"omit http with https", "https://www.google.com/", "en",
+ kFormatUrlOmitHTTP, net::UnescapeRule::NORMAL,
+ L"https://www.google.com/", 8},
+
+ {"omit http starts with ftp.", "http://ftp.google.com/", "en",
+ kFormatUrlOmitHTTP, net::UnescapeRule::NORMAL, L"http://ftp.google.com/",
+ 7},
+
+ // -------- omit trailing slash on bare hostname --------
+ {"omit slash when it's the entire path", "http://www.google.com/", "en",
+ kFormatUrlOmitTrailingSlashOnBareHostname, net::UnescapeRule::NORMAL,
+ L"http://www.google.com", 7},
+ {"omit slash when there's a ref", "http://www.google.com/#ref", "en",
+ kFormatUrlOmitTrailingSlashOnBareHostname, net::UnescapeRule::NORMAL,
+ L"http://www.google.com/#ref", 7},
+ {"omit slash when there's a query", "http://www.google.com/?", "en",
+ kFormatUrlOmitTrailingSlashOnBareHostname, net::UnescapeRule::NORMAL,
+ L"http://www.google.com/?", 7},
+ {"omit slash when it's not the entire path", "http://www.google.com/foo",
+ "en", kFormatUrlOmitTrailingSlashOnBareHostname,
+ net::UnescapeRule::NORMAL, L"http://www.google.com/foo", 7},
+ {"omit slash for nonstandard URLs", "data:/", "en",
+ kFormatUrlOmitTrailingSlashOnBareHostname, net::UnescapeRule::NORMAL,
+ L"data:/", 5},
+ {"omit slash for file URLs", "file:///", "en",
+ kFormatUrlOmitTrailingSlashOnBareHostname, net::UnescapeRule::NORMAL,
+ L"file:///", 7},
+
+ // -------- view-source: --------
+ {"view-source", "view-source:http://xn--qcka1pmc.jp/", "ja",
+ default_format_type, net::UnescapeRule::NORMAL,
+ L"view-source:http://\x30B0\x30FC\x30B0\x30EB.jp/", 19},
+
+ {"view-source of view-source",
+ "view-source:view-source:http://xn--qcka1pmc.jp/", "ja",
+ default_format_type, net::UnescapeRule::NORMAL,
+ L"view-source:view-source:http://xn--qcka1pmc.jp/", 12},
+
+ // view-source should omit http and trailing slash where non-view-source
+ // would.
+ {"view-source omit http", "view-source:http://a.b/c", "en",
+ kFormatUrlOmitAll, net::UnescapeRule::NORMAL, L"view-source:a.b/c", 12},
+ {"view-source omit http starts with ftp.", "view-source:http://ftp.b/c",
+ "en", kFormatUrlOmitAll, net::UnescapeRule::NORMAL,
+ L"view-source:http://ftp.b/c", 19},
+ {"view-source omit slash when it's the entire path",
+ "view-source:http://a.b/", "en", kFormatUrlOmitAll,
+ net::UnescapeRule::NORMAL, L"view-source:a.b", 12},
};
for (size_t i = 0; i < arraysize(tests); ++i) {
@@ -734,14 +639,14 @@ TEST(NetUtilTest, FormatUrl) {
}
}
-TEST(NetUtilTest, FormatUrlParsed) {
+TEST(UrlFormatterTest, FormatUrlParsed) {
// No unescape case.
url::Parsed parsed;
- base::string16 formatted = FormatUrl(
- GURL("http://\xE3\x82\xB0:\xE3\x83\xBC@xn--qcka1pmc.jp:8080/"
- "%E3%82%B0/?q=%E3%82%B0#\xE3\x82\xB0"),
- "ja", kFormatUrlOmitNothing, UnescapeRule::NONE, &parsed, NULL,
- NULL);
+ base::string16 formatted =
+ FormatUrl(GURL("http://\xE3\x82\xB0:\xE3\x83\xBC@xn--qcka1pmc.jp:8080/"
+ "%E3%82%B0/?q=%E3%82%B0#\xE3\x82\xB0"),
+ "ja", kFormatUrlOmitNothing, net::UnescapeRule::NONE, &parsed,
+ NULL, NULL);
EXPECT_EQ(WideToUTF16(
L"http://%E3%82%B0:%E3%83%BC@\x30B0\x30FC\x30B0\x30EB.jp:8080"
L"/%E3%82%B0/?q=%E3%82%B0#\x30B0"), formatted);
@@ -761,11 +666,11 @@ TEST(NetUtilTest, FormatUrlParsed) {
formatted.substr(parsed.ref.begin, parsed.ref.len));
// Unescape case.
- formatted = FormatUrl(
- GURL("http://\xE3\x82\xB0:\xE3\x83\xBC@xn--qcka1pmc.jp:8080/"
- "%E3%82%B0/?q=%E3%82%B0#\xE3\x82\xB0"),
- "ja", kFormatUrlOmitNothing, UnescapeRule::NORMAL, &parsed, NULL,
- NULL);
+ formatted =
+ FormatUrl(GURL("http://\xE3\x82\xB0:\xE3\x83\xBC@xn--qcka1pmc.jp:8080/"
+ "%E3%82%B0/?q=%E3%82%B0#\xE3\x82\xB0"),
+ "ja", kFormatUrlOmitNothing, net::UnescapeRule::NORMAL, &parsed,
+ NULL, NULL);
EXPECT_EQ(WideToUTF16(L"http://\x30B0:\x30FC@\x30B0\x30FC\x30B0\x30EB.jp:8080"
L"/\x30B0/?q=\x30B0#\x30B0"), formatted);
EXPECT_EQ(WideToUTF16(L"\x30B0"),
@@ -784,11 +689,11 @@ TEST(NetUtilTest, FormatUrlParsed) {
formatted.substr(parsed.ref.begin, parsed.ref.len));
// Omit_username_password + unescape case.
- formatted = FormatUrl(
- GURL("http://\xE3\x82\xB0:\xE3\x83\xBC@xn--qcka1pmc.jp:8080/"
- "%E3%82%B0/?q=%E3%82%B0#\xE3\x82\xB0"),
- "ja", kFormatUrlOmitUsernamePassword, UnescapeRule::NORMAL, &parsed,
- NULL, NULL);
+ formatted =
+ FormatUrl(GURL("http://\xE3\x82\xB0:\xE3\x83\xBC@xn--qcka1pmc.jp:8080/"
+ "%E3%82%B0/?q=%E3%82%B0#\xE3\x82\xB0"),
+ "ja", kFormatUrlOmitUsernamePassword, net::UnescapeRule::NORMAL,
+ &parsed, NULL, NULL);
EXPECT_EQ(WideToUTF16(L"http://\x30B0\x30FC\x30B0\x30EB.jp:8080"
L"/\x30B0/?q=\x30B0#\x30B0"), formatted);
EXPECT_FALSE(parsed.username.is_valid());
@@ -807,12 +712,8 @@ TEST(NetUtilTest, FormatUrlParsed) {
// View-source case.
formatted =
FormatUrl(GURL("view-source:http://user:passwd@host:81/path?query#ref"),
- std::string(),
- kFormatUrlOmitUsernamePassword,
- UnescapeRule::NORMAL,
- &parsed,
- NULL,
- NULL);
+ std::string(), kFormatUrlOmitUsernamePassword,
+ net::UnescapeRule::NORMAL, &parsed, NULL, NULL);
EXPECT_EQ(WideToUTF16(L"view-source:http://host:81/path?query#ref"),
formatted);
EXPECT_EQ(WideToUTF16(L"view-source:http"),
@@ -831,13 +732,9 @@ TEST(NetUtilTest, FormatUrlParsed) {
formatted.substr(parsed.ref.begin, parsed.ref.len));
// omit http case.
- formatted = FormatUrl(GURL("http://host:8000/a?b=c#d"),
- std::string(),
- kFormatUrlOmitHTTP,
- UnescapeRule::NORMAL,
- &parsed,
- NULL,
- NULL);
+ formatted = FormatUrl(GURL("http://host:8000/a?b=c#d"), std::string(),
+ kFormatUrlOmitHTTP, net::UnescapeRule::NORMAL, &parsed,
+ NULL, NULL);
EXPECT_EQ(WideToUTF16(L"host:8000/a?b=c#d"), formatted);
EXPECT_FALSE(parsed.scheme.is_valid());
EXPECT_FALSE(parsed.username.is_valid());
@@ -854,13 +751,9 @@ TEST(NetUtilTest, FormatUrlParsed) {
formatted.substr(parsed.ref.begin, parsed.ref.len));
// omit http starts with ftp case.
- formatted = FormatUrl(GURL("http://ftp.host:8000/a?b=c#d"),
- std::string(),
- kFormatUrlOmitHTTP,
- UnescapeRule::NORMAL,
- &parsed,
- NULL,
- NULL);
+ formatted = FormatUrl(GURL("http://ftp.host:8000/a?b=c#d"), std::string(),
+ kFormatUrlOmitHTTP, net::UnescapeRule::NORMAL, &parsed,
+ NULL, NULL);
EXPECT_EQ(WideToUTF16(L"http://ftp.host:8000/a?b=c#d"), formatted);
EXPECT_TRUE(parsed.scheme.is_valid());
EXPECT_FALSE(parsed.username.is_valid());
@@ -879,13 +772,8 @@ TEST(NetUtilTest, FormatUrlParsed) {
formatted.substr(parsed.ref.begin, parsed.ref.len));
// omit http starts with 'f' case.
- formatted = FormatUrl(GURL("http://f/"),
- std::string(),
- kFormatUrlOmitHTTP,
- UnescapeRule::NORMAL,
- &parsed,
- NULL,
- NULL);
+ formatted = FormatUrl(GURL("http://f/"), std::string(), kFormatUrlOmitHTTP,
+ net::UnescapeRule::NORMAL, &parsed, NULL, NULL);
EXPECT_EQ(WideToUTF16(L"f/"), formatted);
EXPECT_FALSE(parsed.scheme.is_valid());
EXPECT_FALSE(parsed.username.is_valid());
@@ -902,25 +790,21 @@ TEST(NetUtilTest, FormatUrlParsed) {
// Make sure that calling FormatUrl on a GURL and then converting back to a GURL
// results in the original GURL, for each ASCII character in the path.
-TEST(NetUtilTest, FormatUrlRoundTripPathASCII) {
+TEST(UrlFormatterTest, FormatUrlRoundTripPathASCII) {
for (unsigned char test_char = 32; test_char < 128; ++test_char) {
GURL url(std::string("http://www.google.com/") +
static_cast<char>(test_char));
size_t prefix_len;
- base::string16 formatted = FormatUrl(url,
- std::string(),
- kFormatUrlOmitUsernamePassword,
- UnescapeRule::NORMAL,
- NULL,
- &prefix_len,
- NULL);
+ base::string16 formatted =
+ FormatUrl(url, std::string(), kFormatUrlOmitUsernamePassword,
+ net::UnescapeRule::NORMAL, NULL, &prefix_len, NULL);
EXPECT_EQ(url.spec(), GURL(formatted).spec());
}
}
// Make sure that calling FormatUrl on a GURL and then converting back to a GURL
// results in the original GURL, for each escaped ASCII character in the path.
-TEST(NetUtilTest, FormatUrlRoundTripPathEscaped) {
+TEST(UrlFormatterTest, FormatUrlRoundTripPathEscaped) {
for (unsigned char test_char = 32; test_char < 128; ++test_char) {
std::string original_url("http://www.google.com/");
original_url.push_back('%');
@@ -928,38 +812,30 @@ TEST(NetUtilTest, FormatUrlRoundTripPathEscaped) {
GURL url(original_url);
size_t prefix_len;
- base::string16 formatted = FormatUrl(url,
- std::string(),
- kFormatUrlOmitUsernamePassword,
- UnescapeRule::NORMAL,
- NULL,
- &prefix_len,
- NULL);
+ base::string16 formatted =
+ FormatUrl(url, std::string(), kFormatUrlOmitUsernamePassword,
+ net::UnescapeRule::NORMAL, NULL, &prefix_len, NULL);
EXPECT_EQ(url.spec(), GURL(formatted).spec());
}
}
// Make sure that calling FormatUrl on a GURL and then converting back to a GURL
// results in the original GURL, for each ASCII character in the query.
-TEST(NetUtilTest, FormatUrlRoundTripQueryASCII) {
+TEST(UrlFormatterTest, FormatUrlRoundTripQueryASCII) {
for (unsigned char test_char = 32; test_char < 128; ++test_char) {
GURL url(std::string("http://www.google.com/?") +
static_cast<char>(test_char));
size_t prefix_len;
- base::string16 formatted = FormatUrl(url,
- std::string(),
- kFormatUrlOmitUsernamePassword,
- UnescapeRule::NORMAL,
- NULL,
- &prefix_len,
- NULL);
+ base::string16 formatted =
+ FormatUrl(url, std::string(), kFormatUrlOmitUsernamePassword,
+ net::UnescapeRule::NORMAL, NULL, &prefix_len, NULL);
EXPECT_EQ(url.spec(), GURL(formatted).spec());
}
}
// Make sure that calling FormatUrl on a GURL and then converting back to a GURL
// only results in a different GURL for certain characters.
-TEST(NetUtilTest, FormatUrlRoundTripQueryEscaped) {
+TEST(UrlFormatterTest, FormatUrlRoundTripQueryEscaped) {
// A full list of characters which FormatURL should unescape and GURL should
// not escape again, when they appear in a query string.
const char kUnescapedCharacters[] =
@@ -971,13 +847,9 @@ TEST(NetUtilTest, FormatUrlRoundTripQueryEscaped) {
GURL url(original_url);
size_t prefix_len;
- base::string16 formatted = FormatUrl(url,
- std::string(),
- kFormatUrlOmitUsernamePassword,
- UnescapeRule::NORMAL,
- NULL,
- &prefix_len,
- NULL);
+ base::string16 formatted =
+ FormatUrl(url, std::string(), kFormatUrlOmitUsernamePassword,
+ net::UnescapeRule::NORMAL, NULL, &prefix_len, NULL);
if (test_char &&
strchr(kUnescapedCharacters, static_cast<char>(test_char))) {
@@ -988,16 +860,16 @@ TEST(NetUtilTest, FormatUrlRoundTripQueryEscaped) {
}
}
-TEST(NetUtilTest, FormatUrlWithOffsets) {
+TEST(UrlFormatterTest, FormatUrlWithOffsets) {
CheckAdjustedOffsets(std::string(), "en", kFormatUrlOmitNothing,
- UnescapeRule::NORMAL, NULL);
+ net::UnescapeRule::NORMAL, NULL);
const size_t basic_offsets[] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25
};
CheckAdjustedOffsets("http://www.google.com/foo/", "en",
- kFormatUrlOmitNothing, UnescapeRule::NORMAL,
+ kFormatUrlOmitNothing, net::UnescapeRule::NORMAL,
basic_offsets);
const size_t omit_auth_offsets_1[] = {
@@ -1005,16 +877,16 @@ TEST(NetUtilTest, FormatUrlWithOffsets) {
8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21
};
CheckAdjustedOffsets("http://foo:bar@www.google.com/", "en",
- kFormatUrlOmitUsernamePassword, UnescapeRule::NORMAL,
- omit_auth_offsets_1);
+ kFormatUrlOmitUsernamePassword,
+ net::UnescapeRule::NORMAL, omit_auth_offsets_1);
const size_t omit_auth_offsets_2[] = {
0, 1, 2, 3, 4, 5, 6, 7, kNpos, kNpos, kNpos, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21
};
CheckAdjustedOffsets("http://foo@www.google.com/", "en",
- kFormatUrlOmitUsernamePassword, UnescapeRule::NORMAL,
- omit_auth_offsets_2);
+ kFormatUrlOmitUsernamePassword,
+ net::UnescapeRule::NORMAL, omit_auth_offsets_2);
const size_t dont_omit_auth_offsets[] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos,
@@ -1024,7 +896,7 @@ TEST(NetUtilTest, FormatUrlWithOffsets) {
};
// Unescape to "http://foo\x30B0:\x30B0bar@www.google.com".
CheckAdjustedOffsets("http://foo%E3%82%B0:%E3%82%B0bar@www.google.com/", "en",
- kFormatUrlOmitNothing, UnescapeRule::NORMAL,
+ kFormatUrlOmitNothing, net::UnescapeRule::NORMAL,
dont_omit_auth_offsets);
const size_t view_source_offsets[] = {
@@ -1032,8 +904,8 @@ TEST(NetUtilTest, FormatUrlWithOffsets) {
kNpos, kNpos, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33
};
CheckAdjustedOffsets("view-source:http://foo@www.google.com/", "en",
- kFormatUrlOmitUsernamePassword, UnescapeRule::NORMAL,
- view_source_offsets);
+ kFormatUrlOmitUsernamePassword,
+ net::UnescapeRule::NORMAL, view_source_offsets);
const size_t idn_hostname_offsets_1[] = {
0, 1, 2, 3, 4, 5, 6, 7, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos,
@@ -1042,7 +914,7 @@ TEST(NetUtilTest, FormatUrlWithOffsets) {
};
// Convert punycode to "http://\x671d\x65e5\x3042\x3055\x3072.jp/foo/".
CheckAdjustedOffsets("http://xn--l8jvb1ey91xtjb.jp/foo/", "ja",
- kFormatUrlOmitNothing, UnescapeRule::NORMAL,
+ kFormatUrlOmitNothing, net::UnescapeRule::NORMAL,
idn_hostname_offsets_1);
const size_t idn_hostname_offsets_2[] = {
@@ -1054,8 +926,8 @@ TEST(NetUtilTest, FormatUrlWithOffsets) {
// Convert punycode to
// "http://test.\x89c6\x9891.\x5317\x4eac\x5927\x5b78.test/".
CheckAdjustedOffsets("http://test.xn--cy2a840a.xn--1lq90ic7f1rc.test/",
- "zh-CN", kFormatUrlOmitNothing, UnescapeRule::NORMAL,
- idn_hostname_offsets_2);
+ "zh-CN", kFormatUrlOmitNothing,
+ net::UnescapeRule::NORMAL, idn_hostname_offsets_2);
const size_t unescape_offsets[] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
@@ -1067,7 +939,7 @@ TEST(NetUtilTest, FormatUrlWithOffsets) {
// Unescape to "http://www.google.com/foo bar/\x30B0\x30FC\x30B0\x30EB".
CheckAdjustedOffsets(
"http://www.google.com/foo%20bar/%E3%82%B0%E3%83%BC%E3%82%B0%E3%83%AB",
- "en", kFormatUrlOmitNothing, UnescapeRule::SPACES, unescape_offsets);
+ "en", kFormatUrlOmitNothing, net::UnescapeRule::SPACES, unescape_offsets);
const size_t ref_offsets[] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
@@ -1077,27 +949,30 @@ TEST(NetUtilTest, FormatUrlWithOffsets) {
// Unescape to "http://www.google.com/foo.html#\x30B0\x30B0z".
CheckAdjustedOffsets(
"http://www.google.com/foo.html#\xE3\x82\xB0\xE3\x82\xB0z", "en",
- kFormatUrlOmitNothing, UnescapeRule::NORMAL, ref_offsets);
+ kFormatUrlOmitNothing, net::UnescapeRule::NORMAL, ref_offsets);
const size_t omit_http_offsets[] = {
0, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
10, 11, 12, 13, 14
};
CheckAdjustedOffsets("http://www.google.com/", "en", kFormatUrlOmitHTTP,
- UnescapeRule::NORMAL, omit_http_offsets);
+ net::UnescapeRule::NORMAL, omit_http_offsets);
const size_t omit_http_start_with_ftp_offsets[] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21
};
CheckAdjustedOffsets("http://ftp.google.com/", "en", kFormatUrlOmitHTTP,
- UnescapeRule::NORMAL, omit_http_start_with_ftp_offsets);
+ net::UnescapeRule::NORMAL,
+ omit_http_start_with_ftp_offsets);
const size_t omit_all_offsets[] = {
0, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, 0, kNpos, kNpos, kNpos, kNpos,
0, 1, 2, 3, 4, 5, 6, 7
};
CheckAdjustedOffsets("http://user@foo.com/", "en", kFormatUrlOmitAll,
- UnescapeRule::NORMAL, omit_all_offsets);
+ net::UnescapeRule::NORMAL, omit_all_offsets);
}
-} // namespace net
+} // namespace
+
+} // namespace url_formatter
« no previous file with comments | « components/url_formatter/url_formatter.gyp ('k') | content/browser/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698