Index: chrome/browser/browsing_data/browsing_data_filter_builder_impl_unittest.cc |
diff --git a/chrome/browser/browsing_data/registrable_domain_filter_builder_unittest.cc b/chrome/browser/browsing_data/browsing_data_filter_builder_impl_unittest.cc |
similarity index 71% |
rename from chrome/browser/browsing_data/registrable_domain_filter_builder_unittest.cc |
rename to chrome/browser/browsing_data/browsing_data_filter_builder_impl_unittest.cc |
index 2b04f5bb0afd70b8ccaa9c5cfde1c12528a4686a..43efc6509b69cdd544840181d996c43e553fb5d9 100644 |
--- a/chrome/browser/browsing_data/registrable_domain_filter_builder_unittest.cc |
+++ b/chrome/browser/browsing_data/browsing_data_filter_builder_impl_unittest.cc |
@@ -2,7 +2,7 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "chrome/browser/browsing_data/registrable_domain_filter_builder.h" |
+#include "chrome/browser/browsing_data/browsing_data_filter_builder_impl.h" |
#include <algorithm> |
#include <memory> |
@@ -92,10 +92,10 @@ void RunTestCase( |
} // namespace |
-TEST(RegistrableDomainFilterBuilderTest, Noop) { |
+TEST(BrowsingDataFilterBuilderImplTest, Noop) { |
// An no-op filter matches everything. |
base::Callback<bool(const GURL&)> filter = |
- RegistrableDomainFilterBuilder::BuildNoopFilter(); |
+ BrowsingDataFilterBuilder::BuildNoopFilter(); |
TestCase test_cases[] = { |
{"https://www.google.com", true}, |
@@ -108,9 +108,10 @@ TEST(RegistrableDomainFilterBuilderTest, Noop) { |
RunTestCase(test_case, filter); |
} |
-TEST(RegistrableDomainFilterBuilderTest, GURLWhitelist) { |
- RegistrableDomainFilterBuilder builder( |
- RegistrableDomainFilterBuilder::WHITELIST); |
+TEST(BrowsingDataFilterBuilderImplTest, |
+ RegistrableDomainGURLWhitelist) { |
+ BrowsingDataFilterBuilderImpl builder( |
+ BrowsingDataFilterBuilderImpl::WHITELIST); |
builder.AddRegisterableDomain(std::string(kGoogleDomain)); |
builder.AddRegisterableDomain(std::string(kLongETLDDomain)); |
builder.AddRegisterableDomain(std::string(kIPAddress)); |
@@ -152,9 +153,10 @@ TEST(RegistrableDomainFilterBuilderTest, GURLWhitelist) { |
RunTestCase(test_case, filter); |
} |
-TEST(RegistrableDomainFilterBuilderTest, GURLBlacklist) { |
- RegistrableDomainFilterBuilder builder( |
- RegistrableDomainFilterBuilder::BLACKLIST); |
+TEST(BrowsingDataFilterBuilderImplTest, |
+ RegistrableDomainGURLBlacklist) { |
+ BrowsingDataFilterBuilderImpl builder( |
+ BrowsingDataFilterBuilderImpl::BLACKLIST); |
builder.AddRegisterableDomain(std::string(kGoogleDomain)); |
builder.AddRegisterableDomain(std::string(kLongETLDDomain)); |
builder.AddRegisterableDomain(std::string(kIPAddress)); |
@@ -196,9 +198,10 @@ TEST(RegistrableDomainFilterBuilderTest, GURLBlacklist) { |
RunTestCase(test_case, filter); |
} |
-TEST(RegistrableDomainFilterBuilderTest, MatchesCookiesWhitelist) { |
- RegistrableDomainFilterBuilder builder( |
- RegistrableDomainFilterBuilder::WHITELIST); |
+TEST(BrowsingDataFilterBuilderImplTest, |
+ RegistrableDomainMatchesCookiesWhitelist) { |
+ BrowsingDataFilterBuilderImpl builder( |
+ BrowsingDataFilterBuilderImpl::WHITELIST); |
builder.AddRegisterableDomain(std::string(kGoogleDomain)); |
builder.AddRegisterableDomain(std::string(kLongETLDDomain)); |
builder.AddRegisterableDomain(std::string(kIPAddress)); |
@@ -247,9 +250,10 @@ TEST(RegistrableDomainFilterBuilderTest, MatchesCookiesWhitelist) { |
RunTestCase(test_case, filter); |
} |
-TEST(RegistrableDomainFilterBuilderTest, MatchesCookiesBlacklist) { |
- RegistrableDomainFilterBuilder builder( |
- RegistrableDomainFilterBuilder::BLACKLIST); |
+TEST(BrowsingDataFilterBuilderImplTest, |
+ RegistrableDomainMatchesCookiesBlacklist) { |
+ BrowsingDataFilterBuilderImpl builder( |
+ BrowsingDataFilterBuilderImpl::BLACKLIST); |
builder.AddRegisterableDomain(std::string(kGoogleDomain)); |
builder.AddRegisterableDomain(std::string(kLongETLDDomain)); |
builder.AddRegisterableDomain(std::string(kIPAddress)); |
@@ -298,9 +302,10 @@ TEST(RegistrableDomainFilterBuilderTest, MatchesCookiesBlacklist) { |
RunTestCase(test_case, filter); |
} |
-TEST(RegistrableDomainFilterBuilderTest, MatchesChannelIDsWhitelist) { |
- RegistrableDomainFilterBuilder builder( |
- RegistrableDomainFilterBuilder::WHITELIST); |
+TEST(BrowsingDataFilterBuilderImplTest, |
+ RegistrableDomainMatchesChannelIDsWhitelist) { |
+ BrowsingDataFilterBuilderImpl builder( |
+ BrowsingDataFilterBuilderImpl::WHITELIST); |
builder.AddRegisterableDomain(std::string(kGoogleDomain)); |
builder.AddRegisterableDomain(std::string(kLongETLDDomain)); |
builder.AddRegisterableDomain(std::string(kIPAddress)); |
@@ -329,9 +334,10 @@ TEST(RegistrableDomainFilterBuilderTest, MatchesChannelIDsWhitelist) { |
RunTestCase(test_case, filter); |
} |
-TEST(RegistrableDomainFilterBuilderTest, MatchesChannelIDsBlacklist) { |
- RegistrableDomainFilterBuilder builder( |
- RegistrableDomainFilterBuilder::BLACKLIST); |
+TEST(BrowsingDataFilterBuilderImplTest, |
+ RegistrableDomainMatchesChannelIDsBlacklist) { |
+ BrowsingDataFilterBuilderImpl builder( |
+ BrowsingDataFilterBuilderImpl::BLACKLIST); |
builder.AddRegisterableDomain(std::string(kGoogleDomain)); |
builder.AddRegisterableDomain(std::string(kLongETLDDomain)); |
builder.AddRegisterableDomain(std::string(kIPAddress)); |
@@ -360,9 +366,10 @@ TEST(RegistrableDomainFilterBuilderTest, MatchesChannelIDsBlacklist) { |
RunTestCase(test_case, filter); |
} |
-TEST(RegistrableDomainFilterBuilderTest, MatchesPluginSitesWhitelist) { |
- RegistrableDomainFilterBuilder builder( |
- RegistrableDomainFilterBuilder::WHITELIST); |
+TEST(BrowsingDataFilterBuilderImplTest, |
+ RegistrableDomainMatchesPluginSitesWhitelist) { |
+ BrowsingDataFilterBuilderImpl builder( |
+ BrowsingDataFilterBuilderImpl::WHITELIST); |
builder.AddRegisterableDomain(std::string(kGoogleDomain)); |
builder.AddRegisterableDomain(std::string(kLongETLDDomain)); |
builder.AddRegisterableDomain(std::string(kIPAddress)); |
@@ -394,9 +401,10 @@ TEST(RegistrableDomainFilterBuilderTest, MatchesPluginSitesWhitelist) { |
RunTestCase(test_case, filter); |
} |
-TEST(RegistrableDomainFilterBuilderTest, MatchesPluginSitesBlacklist) { |
- RegistrableDomainFilterBuilder builder( |
- RegistrableDomainFilterBuilder::BLACKLIST); |
+TEST(BrowsingDataFilterBuilderImplTest, |
+ RegistrableDomainMatchesPluginSitesBlacklist) { |
+ BrowsingDataFilterBuilderImpl builder( |
+ BrowsingDataFilterBuilderImpl::BLACKLIST); |
builder.AddRegisterableDomain(std::string(kGoogleDomain)); |
builder.AddRegisterableDomain(std::string(kLongETLDDomain)); |
builder.AddRegisterableDomain(std::string(kIPAddress)); |
@@ -427,3 +435,112 @@ TEST(RegistrableDomainFilterBuilderTest, MatchesPluginSitesBlacklist) { |
for (TestCase test_case : test_cases) |
RunTestCase(test_case, filter); |
} |
+ |
+TEST(BrowsingDataFilterBuilderImplTest, OriginWhitelist) { |
+ BrowsingDataFilterBuilderImpl builder( |
+ BrowsingDataFilterBuilderImpl::WHITELIST); |
+ builder.AddOrigin(url::Origin(GURL("https://www.google.com"))); |
+ builder.AddOrigin(url::Origin(GURL("http://www.example.com"))); |
+ base::Callback<bool(const GURL&)> filter = builder.BuildGeneralFilter(); |
+ |
+ TestCase test_cases[] = { |
+ // Whitelist matches any URL on the specified origins. |
+ { "https://www.google.com", true }, |
+ { "https://www.google.com/?q=test", true }, |
+ { "http://www.example.com", true }, |
+ { "http://www.example.com/index.html", true }, |
+ { "http://www.example.com/foo/bar", true }, |
+ |
+ // Subdomains are different origins. |
+ { "https://test.www.google.com", false }, |
+ |
+ // Different scheme or port is a different origin. |
+ { "https://www.google.com:8000", false }, |
+ { "https://www.example.com/index.html", false }, |
+ |
+ // Different host is a different origin. |
+ { "https://www.youtube.com", false }, |
+ { "https://www.chromium.org", false }, |
+ }; |
+ |
+ for (TestCase test_case : test_cases) |
+ RunTestCase(test_case, filter); |
+} |
+ |
+TEST(BrowsingDataFilterBuilderImplTest, OriginBlacklist) { |
+ BrowsingDataFilterBuilderImpl builder( |
+ BrowsingDataFilterBuilderImpl::BLACKLIST); |
+ builder.AddOrigin(url::Origin(GURL("https://www.google.com"))); |
+ builder.AddOrigin(url::Origin(GURL("http://www.example.com"))); |
+ base::Callback<bool(const GURL&)> filter = builder.BuildGeneralFilter(); |
+ |
+ TestCase test_cases[] = { |
+ // URLS on explicitly specified origins are not matched. |
+ { "https://www.google.com", false }, |
+ { "https://www.google.com/?q=test", false }, |
+ { "http://www.example.com", false }, |
+ { "http://www.example.com/index.html", false }, |
+ { "http://www.example.com/foo/bar", false }, |
+ |
+ // Subdomains are different origins. |
+ { "https://test.www.google.com", true }, |
+ |
+ // The same hosts but with different schemes and ports |
+ // are not blacklisted. |
+ { "https://www.google.com:8000", true }, |
+ { "https://www.example.com/index.html", true }, |
+ |
+ // Different hosts are not blacklisted. |
+ { "https://www.chrome.com", true }, |
+ { "https://www.youtube.com", true }, |
+ }; |
+ |
+ for (TestCase test_case : test_cases) |
+ RunTestCase(test_case, filter); |
+} |
+ |
+TEST(BrowsingDataFilterBuilderImplTest, CombinedWhitelist) { |
+ BrowsingDataFilterBuilderImpl builder( |
+ BrowsingDataFilterBuilderImpl::WHITELIST); |
+ builder.AddOrigin(url::Origin(GURL("https://google.com"))); |
+ builder.AddRegisterableDomain("example.com"); |
+ base::Callback<bool(const GURL&)> filter = builder.BuildGeneralFilter(); |
+ |
+ TestCase test_cases[] = { |
+ // Whitelist matches any URL on the specified origins. |
+ { "https://google.com/foo/bar", true }, |
+ { "https://example.com/?q=test", true }, |
+ |
+ // Since www.google.com was added as an origin, its subdomains are not |
+ // matched. However, example.com was added as a registrable domain, |
+ // so its subdomains are matched. |
+ { "https://www.google.com/foo/bar", false }, |
+ { "https://www.example.com/?q=test", true }, |
+ }; |
+ |
+ for (TestCase test_case : test_cases) |
+ RunTestCase(test_case, filter); |
+} |
+ |
+TEST(BrowsingDataFilterBuilderImplTest, CombinedBlacklist) { |
+ BrowsingDataFilterBuilderImpl builder( |
+ BrowsingDataFilterBuilderImpl::BLACKLIST); |
+ builder.AddOrigin(url::Origin(GURL("https://google.com"))); |
+ builder.AddRegisterableDomain("example.com"); |
+ base::Callback<bool(const GURL&)> filter = builder.BuildGeneralFilter(); |
+ |
+ TestCase test_cases[] = { |
+ // URLS on explicitly specified origins are not matched. |
+ { "https://google.com/foo/bar", false }, |
+ { "https://example.com/?q=test", false }, |
+ |
+ // Since www.google.com was added as an origin, its subdomains are |
+ // not in the blacklist. However, example.com was added as a registrable |
+ // domain, so its subdomains are also blacklisted. |
+ { "https://www.google.com/foo/bar", true }, |
+ { "https://www.example.com/?q=test", false }, |
+ }; |
+ |
+ for (TestCase test_case : test_cases) |
+ RunTestCase(test_case, filter); |
+} |