Index: chrome/browser/browsing_data/browsing_data_remover_unittest.cc |
diff --git a/chrome/browser/browsing_data/browsing_data_remover_unittest.cc b/chrome/browser/browsing_data/browsing_data_remover_unittest.cc |
index 0084c25ea4bebd6759fab493af9e3228ce5dfa0d..43ae571531aff034aedcbf72cfd71fda70cc94fe 100644 |
--- a/chrome/browser/browsing_data/browsing_data_remover_unittest.cc |
+++ b/chrome/browser/browsing_data/browsing_data_remover_unittest.cc |
@@ -349,7 +349,8 @@ class ProbablySameFilterMatcher |
{kOrigin1, kOrigin2, kOrigin3, GURL("invalid spec")}; |
for (GURL url : urls_to_test_) { |
if (filter.Run(url) != to_match_.Run(url)) { |
- *listener << "The filters differ on the URL " << url; |
+ if (listener) |
+ *listener << "The filters differ on the URL " << url; |
return false; |
} |
} |
@@ -373,6 +374,12 @@ inline Matcher<const base::Callback<bool(const GURL&)>&> ProbablySameFilter( |
return MakeMatcher(new ProbablySameFilterMatcher(filter)); |
} |
+bool ProbablySameFilters( |
+ const base::Callback<bool(const GURL&)>& filter1, |
+ const base::Callback<bool(const GURL&)>& filter2) { |
+ return ProbablySameFilter(filter1).MatchAndExplain(filter2, nullptr); |
+} |
+ |
} // namespace |
// Testers ------------------------------------------------------------------- |
@@ -847,10 +854,13 @@ class MockDomainReliabilityService : public DomainReliabilityService { |
return std::unique_ptr<DomainReliabilityMonitor>(); |
} |
- void ClearBrowsingData(DomainReliabilityClearMode clear_mode, |
- const base::Closure& callback) override { |
+ void ClearBrowsingData( |
+ DomainReliabilityClearMode clear_mode, |
+ const base::Callback<bool(const GURL&)>& origin_filter, |
+ const base::Closure& callback) override { |
clear_count_++; |
last_clear_mode_ = clear_mode; |
+ last_filter_ = origin_filter; |
callback.Run(); |
} |
@@ -865,9 +875,14 @@ class MockDomainReliabilityService : public DomainReliabilityService { |
return last_clear_mode_; |
} |
+ const base::Callback<bool(const GURL&)>& last_filter() const { |
+ return last_filter_; |
+ } |
+ |
private: |
unsigned clear_count_ = 0; |
DomainReliabilityClearMode last_clear_mode_; |
+ base::Callback<bool(const GURL&)> last_filter_; |
}; |
struct TestingDomainReliabilityServiceFactoryUserData |
@@ -920,6 +935,10 @@ class ClearDomainReliabilityTester { |
return mock_service_->last_clear_mode(); |
} |
+ const base::Callback<bool(const GURL&)>& last_filter() const { |
+ return mock_service_->last_filter(); |
+ } |
+ |
private: |
void AttachService() { |
const void* kKey = TestingDomainReliabilityServiceFactoryUserData::kKey; |
@@ -2274,6 +2293,24 @@ TEST_F(BrowsingDataRemoverTest, DomainReliability_Beacons) { |
BrowsingDataRemover::REMOVE_HISTORY, false); |
EXPECT_EQ(1u, tester.clear_count()); |
EXPECT_EQ(CLEAR_BEACONS, tester.last_clear_mode()); |
+ EXPECT_TRUE(ProbablySameFilters( |
+ BrowsingDataFilterBuilder::BuildNoopFilter(), tester.last_filter())); |
+} |
+ |
+TEST_F(BrowsingDataRemoverTest, DomainReliability_Beacons_WithFilter) { |
+ const ClearDomainReliabilityTester& tester = |
+ clear_domain_reliability_tester(); |
+ |
+ RegistrableDomainFilterBuilder builder( |
+ RegistrableDomainFilterBuilder::WHITELIST); |
+ builder.AddRegisterableDomain(kTestRegisterableDomain1); |
+ |
+ BlockUntilOriginDataRemoved(browsing_data::EVERYTHING, |
+ BrowsingDataRemover::REMOVE_HISTORY, builder); |
+ EXPECT_EQ(1u, tester.clear_count()); |
+ EXPECT_EQ(CLEAR_BEACONS, tester.last_clear_mode()); |
+ EXPECT_TRUE(ProbablySameFilters( |
+ builder.BuildGeneralFilter(), tester.last_filter())); |
} |
TEST_F(BrowsingDataRemoverTest, DomainReliability_Contexts) { |
@@ -2284,6 +2321,24 @@ TEST_F(BrowsingDataRemoverTest, DomainReliability_Contexts) { |
BrowsingDataRemover::REMOVE_COOKIES, false); |
EXPECT_EQ(1u, tester.clear_count()); |
EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode()); |
+ EXPECT_TRUE(ProbablySameFilters( |
+ BrowsingDataFilterBuilder::BuildNoopFilter(), tester.last_filter())); |
+} |
+ |
+TEST_F(BrowsingDataRemoverTest, DomainReliability_Contexts_WithFilter) { |
+ const ClearDomainReliabilityTester& tester = |
+ clear_domain_reliability_tester(); |
+ |
+ RegistrableDomainFilterBuilder builder( |
+ RegistrableDomainFilterBuilder::WHITELIST); |
+ builder.AddRegisterableDomain(kTestRegisterableDomain1); |
+ |
+ BlockUntilOriginDataRemoved(browsing_data::EVERYTHING, |
+ BrowsingDataRemover::REMOVE_COOKIES, builder); |
+ EXPECT_EQ(1u, tester.clear_count()); |
+ EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode()); |
+ EXPECT_TRUE(ProbablySameFilters( |
+ builder.BuildGeneralFilter(), tester.last_filter())); |
} |
TEST_F(BrowsingDataRemoverTest, DomainReliability_ContextsWin) { |