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

Unified Diff: url/gurl_unittest.cc

Issue 2686853004: Move IsAboutBlank from url_utils to GURL (Closed)
Patch Set: Addressed nit Created 3 years, 10 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 | « url/gurl.cc ('k') | url/url_util.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: url/gurl_unittest.cc
diff --git a/url/gurl_unittest.cc b/url/gurl_unittest.cc
index 24dee6c2a65aeca3edb24a69892f500d86b2b783..258ea03e0b2d7e2587fb316f6f69c7f8d14cbe2c 100644
--- a/url/gurl_unittest.cc
+++ b/url/gurl_unittest.cc
@@ -740,4 +740,77 @@ TEST(GURLTest, ContentAndPathForNonStandardURLs) {
}
}
+TEST(GURLTest, IsAboutBlank) {
+ const std::string kAboutBlankUrls[] = {"about:blank", "about:blank?foo",
+ "about:blank/#foo",
+ "about:blank?foo#foo"};
+ for (const auto& url : kAboutBlankUrls)
+ EXPECT_TRUE(GURL(url).IsAboutBlank()) << url;
+
+ const std::string kNotAboutBlankUrls[] = {
+ "http:blank", "about:blan", "about://blank",
+ "about:blank/foo", "about://:8000/blank", "about://foo:foo@/blank",
+ "foo@about:blank", "foo:bar@about:blank", "about:blank:8000"};
+ for (const auto& url : kNotAboutBlankUrls)
+ EXPECT_FALSE(GURL(url).IsAboutBlank()) << url;
+}
+
+TEST(GURLTest, EqualsIgnoringRef) {
+ const struct {
+ const char* url_a;
+ const char* url_b;
+ bool are_equals;
+ } kTestCases[] = {
+ // No ref.
+ {"http://a.com", "http://a.com", true},
+ {"http://a.com", "http://b.com", false},
+
+ // Same Ref.
+ {"http://a.com#foo", "http://a.com#foo", true},
+ {"http://a.com#foo", "http://b.com#foo", false},
+
+ // Different Refs.
+ {"http://a.com#foo", "http://a.com#bar", true},
+ {"http://a.com#foo", "http://b.com#bar", false},
+
+ // One has a ref, the other doesn't.
+ {"http://a.com#foo", "http://a.com", true},
+ {"http://a.com#foo", "http://b.com", false},
+
+ // Empty refs.
+ {"http://a.com#", "http://a.com#", true},
+ {"http://a.com#", "http://a.com", true},
+
+ // URLs that differ only by their last character.
+ {"http://aaa", "http://aab", false},
+ {"http://aaa#foo", "http://aab#foo", false},
+
+ // Different size of the part before the ref.
+ {"http://123#a", "http://123456#a", false},
+
+ // Blob URLs
+ {"blob:http://a.com#foo", "blob:http://a.com#foo", true},
+ {"blob:http://a.com#foo", "blob:http://a.com#bar", true},
+ {"blob:http://a.com#foo", "blob:http://b.com#bar", false},
+
+ // Filesystem URLs
+ {"filesystem:http://a.com#foo", "filesystem:http://a.com#foo", true},
+ {"filesystem:http://a.com#foo", "filesystem:http://a.com#bar", true},
+ {"filesystem:http://a.com#foo", "filesystem:http://b.com#bar", false},
+ };
+
+ for (const auto& test_case : kTestCases) {
+ SCOPED_TRACE(testing::Message()
+ << std::endl
+ << "url_a = " << test_case.url_a << std::endl
+ << "url_b = " << test_case.url_b << std::endl);
+ // A versus B.
+ EXPECT_EQ(test_case.are_equals,
+ GURL(test_case.url_a).EqualsIgnoringRef(GURL(test_case.url_b)));
+ // B versus A.
+ EXPECT_EQ(test_case.are_equals,
+ GURL(test_case.url_b).EqualsIgnoringRef(GURL(test_case.url_a)));
+ }
+}
+
} // namespace url
« no previous file with comments | « url/gurl.cc ('k') | url/url_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698