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

Side by Side Diff: chrome/browser/browsing_data/browsing_data_remover_unittest.cc

Issue 2132563003: Implement origin-based deletion for the domain reliability service. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Updated DomainReliabilityMonitorTest Created 4 years, 5 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/browsing_data/browsing_data_remover.h" 5 #include "chrome/browser/browsing_data/browsing_data_remover.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <memory> 10 #include <memory>
(...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after
342 const base::Callback<bool(const GURL&)>& filter) 342 const base::Callback<bool(const GURL&)>& filter)
343 : to_match_(filter) { 343 : to_match_(filter) {
344 } 344 }
345 345
346 virtual bool MatchAndExplain(const base::Callback<bool(const GURL&)>& filter, 346 virtual bool MatchAndExplain(const base::Callback<bool(const GURL&)>& filter,
347 MatchResultListener* listener) const { 347 MatchResultListener* listener) const {
348 const GURL urls_to_test_[] = 348 const GURL urls_to_test_[] =
349 {kOrigin1, kOrigin2, kOrigin3, GURL("invalid spec")}; 349 {kOrigin1, kOrigin2, kOrigin3, GURL("invalid spec")};
350 for (GURL url : urls_to_test_) { 350 for (GURL url : urls_to_test_) {
351 if (filter.Run(url) != to_match_.Run(url)) { 351 if (filter.Run(url) != to_match_.Run(url)) {
352 *listener << "The filters differ on the URL " << url; 352 if (listener)
353 *listener << "The filters differ on the URL " << url;
353 return false; 354 return false;
354 } 355 }
355 } 356 }
356 return true; 357 return true;
357 } 358 }
358 359
359 virtual void DescribeTo(::std::ostream* os) const { 360 virtual void DescribeTo(::std::ostream* os) const {
360 *os << "is probably the same url filter as " << &to_match_; 361 *os << "is probably the same url filter as " << &to_match_;
361 } 362 }
362 363
363 virtual void DescribeNegationTo(::std::ostream* os) const { 364 virtual void DescribeNegationTo(::std::ostream* os) const {
364 *os << "is definitely NOT the same url filter as " << &to_match_; 365 *os << "is definitely NOT the same url filter as " << &to_match_;
365 } 366 }
366 367
367 private: 368 private:
368 const base::Callback<bool(const GURL&)>& to_match_; 369 const base::Callback<bool(const GURL&)>& to_match_;
369 }; 370 };
370 371
371 inline Matcher<const base::Callback<bool(const GURL&)>&> ProbablySameFilter( 372 inline Matcher<const base::Callback<bool(const GURL&)>&> ProbablySameFilter(
372 const base::Callback<bool(const GURL&)>& filter) { 373 const base::Callback<bool(const GURL&)>& filter) {
373 return MakeMatcher(new ProbablySameFilterMatcher(filter)); 374 return MakeMatcher(new ProbablySameFilterMatcher(filter));
374 } 375 }
375 376
377 bool ProbablySameFilters(
378 const base::Callback<bool(const GURL&)>& filter1,
379 const base::Callback<bool(const GURL&)>& filter2) {
380 return ProbablySameFilter(filter1).MatchAndExplain(filter2, nullptr);
381 }
382
376 } // namespace 383 } // namespace
377 384
378 // Testers ------------------------------------------------------------------- 385 // Testers -------------------------------------------------------------------
379 386
380 class RemoveCookieTester { 387 class RemoveCookieTester {
381 public: 388 public:
382 RemoveCookieTester() {} 389 RemoveCookieTester() {}
383 390
384 // Returns true, if the given cookie exists in the cookie store. 391 // Returns true, if the given cookie exists in the cookie store.
385 bool ContainsCookie() { 392 bool ContainsCookie() {
(...skipping 454 matching lines...) Expand 10 before | Expand all | Expand 10 after
840 847
841 ~MockDomainReliabilityService() override {} 848 ~MockDomainReliabilityService() override {}
842 849
843 std::unique_ptr<DomainReliabilityMonitor> CreateMonitor( 850 std::unique_ptr<DomainReliabilityMonitor> CreateMonitor(
844 scoped_refptr<base::SingleThreadTaskRunner> network_task_runner) 851 scoped_refptr<base::SingleThreadTaskRunner> network_task_runner)
845 override { 852 override {
846 NOTREACHED(); 853 NOTREACHED();
847 return std::unique_ptr<DomainReliabilityMonitor>(); 854 return std::unique_ptr<DomainReliabilityMonitor>();
848 } 855 }
849 856
850 void ClearBrowsingData(DomainReliabilityClearMode clear_mode, 857 void ClearBrowsingData(
851 const base::Closure& callback) override { 858 DomainReliabilityClearMode clear_mode,
859 const base::Callback<bool(const GURL&)>& origin_filter,
860 const base::Closure& callback) override {
852 clear_count_++; 861 clear_count_++;
853 last_clear_mode_ = clear_mode; 862 last_clear_mode_ = clear_mode;
863 last_filter_ = origin_filter;
854 callback.Run(); 864 callback.Run();
855 } 865 }
856 866
857 void GetWebUIData(const base::Callback<void(std::unique_ptr<base::Value>)>& 867 void GetWebUIData(const base::Callback<void(std::unique_ptr<base::Value>)>&
858 callback) const override { 868 callback) const override {
859 NOTREACHED(); 869 NOTREACHED();
860 } 870 }
861 871
862 int clear_count() const { return clear_count_; } 872 int clear_count() const { return clear_count_; }
863 873
864 DomainReliabilityClearMode last_clear_mode() const { 874 DomainReliabilityClearMode last_clear_mode() const {
865 return last_clear_mode_; 875 return last_clear_mode_;
866 } 876 }
867 877
878 const base::Callback<bool(const GURL&)>& last_filter() const {
879 return last_filter_;
880 }
881
868 private: 882 private:
869 unsigned clear_count_ = 0; 883 unsigned clear_count_ = 0;
870 DomainReliabilityClearMode last_clear_mode_; 884 DomainReliabilityClearMode last_clear_mode_;
885 base::Callback<bool(const GURL&)> last_filter_;
871 }; 886 };
872 887
873 struct TestingDomainReliabilityServiceFactoryUserData 888 struct TestingDomainReliabilityServiceFactoryUserData
874 : public base::SupportsUserData::Data { 889 : public base::SupportsUserData::Data {
875 TestingDomainReliabilityServiceFactoryUserData( 890 TestingDomainReliabilityServiceFactoryUserData(
876 content::BrowserContext* context, 891 content::BrowserContext* context,
877 MockDomainReliabilityService* service) 892 MockDomainReliabilityService* service)
878 : context(context), 893 : context(context),
879 service(service), 894 service(service),
880 attached(false) {} 895 attached(false) {}
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
913 mock_service_(new MockDomainReliabilityService()) { 928 mock_service_(new MockDomainReliabilityService()) {
914 AttachService(); 929 AttachService();
915 } 930 }
916 931
917 unsigned clear_count() const { return mock_service_->clear_count(); } 932 unsigned clear_count() const { return mock_service_->clear_count(); }
918 933
919 DomainReliabilityClearMode last_clear_mode() const { 934 DomainReliabilityClearMode last_clear_mode() const {
920 return mock_service_->last_clear_mode(); 935 return mock_service_->last_clear_mode();
921 } 936 }
922 937
938 const base::Callback<bool(const GURL&)>& last_filter() const {
939 return mock_service_->last_filter();
940 }
941
923 private: 942 private:
924 void AttachService() { 943 void AttachService() {
925 const void* kKey = TestingDomainReliabilityServiceFactoryUserData::kKey; 944 const void* kKey = TestingDomainReliabilityServiceFactoryUserData::kKey;
926 945
927 // Attach kludgey UserData struct to profile. 946 // Attach kludgey UserData struct to profile.
928 TestingDomainReliabilityServiceFactoryUserData* data = 947 TestingDomainReliabilityServiceFactoryUserData* data =
929 new TestingDomainReliabilityServiceFactoryUserData(profile_, 948 new TestingDomainReliabilityServiceFactoryUserData(profile_,
930 mock_service_); 949 mock_service_);
931 EXPECT_FALSE(profile_->GetUserData(kKey)); 950 EXPECT_FALSE(profile_->GetUserData(kKey));
932 profile_->SetUserData(kKey, data); 951 profile_->SetUserData(kKey, data);
(...skipping 1334 matching lines...) Expand 10 before | Expand all | Expand 10 after
2267 } 2286 }
2268 2287
2269 TEST_F(BrowsingDataRemoverTest, DomainReliability_Beacons) { 2288 TEST_F(BrowsingDataRemoverTest, DomainReliability_Beacons) {
2270 const ClearDomainReliabilityTester& tester = 2289 const ClearDomainReliabilityTester& tester =
2271 clear_domain_reliability_tester(); 2290 clear_domain_reliability_tester();
2272 2291
2273 BlockUntilBrowsingDataRemoved(browsing_data::EVERYTHING, 2292 BlockUntilBrowsingDataRemoved(browsing_data::EVERYTHING,
2274 BrowsingDataRemover::REMOVE_HISTORY, false); 2293 BrowsingDataRemover::REMOVE_HISTORY, false);
2275 EXPECT_EQ(1u, tester.clear_count()); 2294 EXPECT_EQ(1u, tester.clear_count());
2276 EXPECT_EQ(CLEAR_BEACONS, tester.last_clear_mode()); 2295 EXPECT_EQ(CLEAR_BEACONS, tester.last_clear_mode());
2296 EXPECT_TRUE(ProbablySameFilters(
2297 BrowsingDataFilterBuilder::BuildNoopFilter(), tester.last_filter()));
2298 }
2299
2300 TEST_F(BrowsingDataRemoverTest, DomainReliability_Beacons_WithFilter) {
2301 const ClearDomainReliabilityTester& tester =
2302 clear_domain_reliability_tester();
2303
2304 RegistrableDomainFilterBuilder builder(
2305 RegistrableDomainFilterBuilder::WHITELIST);
2306 builder.AddRegisterableDomain(kTestRegisterableDomain1);
2307
2308 BlockUntilOriginDataRemoved(browsing_data::EVERYTHING,
2309 BrowsingDataRemover::REMOVE_HISTORY, builder);
2310 EXPECT_EQ(1u, tester.clear_count());
2311 EXPECT_EQ(CLEAR_BEACONS, tester.last_clear_mode());
2312 EXPECT_TRUE(ProbablySameFilters(
2313 builder.BuildGeneralFilter(), tester.last_filter()));
2277 } 2314 }
2278 2315
2279 TEST_F(BrowsingDataRemoverTest, DomainReliability_Contexts) { 2316 TEST_F(BrowsingDataRemoverTest, DomainReliability_Contexts) {
2280 const ClearDomainReliabilityTester& tester = 2317 const ClearDomainReliabilityTester& tester =
2281 clear_domain_reliability_tester(); 2318 clear_domain_reliability_tester();
2282 2319
2283 BlockUntilBrowsingDataRemoved(browsing_data::EVERYTHING, 2320 BlockUntilBrowsingDataRemoved(browsing_data::EVERYTHING,
2284 BrowsingDataRemover::REMOVE_COOKIES, false); 2321 BrowsingDataRemover::REMOVE_COOKIES, false);
2285 EXPECT_EQ(1u, tester.clear_count()); 2322 EXPECT_EQ(1u, tester.clear_count());
2286 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode()); 2323 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode());
2324 EXPECT_TRUE(ProbablySameFilters(
2325 BrowsingDataFilterBuilder::BuildNoopFilter(), tester.last_filter()));
2326 }
2327
2328 TEST_F(BrowsingDataRemoverTest, DomainReliability_Contexts_WithFilter) {
2329 const ClearDomainReliabilityTester& tester =
2330 clear_domain_reliability_tester();
2331
2332 RegistrableDomainFilterBuilder builder(
2333 RegistrableDomainFilterBuilder::WHITELIST);
2334 builder.AddRegisterableDomain(kTestRegisterableDomain1);
2335
2336 BlockUntilOriginDataRemoved(browsing_data::EVERYTHING,
2337 BrowsingDataRemover::REMOVE_COOKIES, builder);
2338 EXPECT_EQ(1u, tester.clear_count());
2339 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode());
2340 EXPECT_TRUE(ProbablySameFilters(
2341 builder.BuildGeneralFilter(), tester.last_filter()));
2287 } 2342 }
2288 2343
2289 TEST_F(BrowsingDataRemoverTest, DomainReliability_ContextsWin) { 2344 TEST_F(BrowsingDataRemoverTest, DomainReliability_ContextsWin) {
2290 const ClearDomainReliabilityTester& tester = 2345 const ClearDomainReliabilityTester& tester =
2291 clear_domain_reliability_tester(); 2346 clear_domain_reliability_tester();
2292 2347
2293 BlockUntilBrowsingDataRemoved( 2348 BlockUntilBrowsingDataRemoved(
2294 browsing_data::EVERYTHING, 2349 browsing_data::EVERYTHING,
2295 BrowsingDataRemover::REMOVE_HISTORY | BrowsingDataRemover::REMOVE_COOKIES, 2350 BrowsingDataRemover::REMOVE_HISTORY | BrowsingDataRemover::REMOVE_COOKIES,
2296 false); 2351 false);
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
2528 BrowsingDataRemover::ClearSettingsForOneTypeWithPredicate( 2583 BrowsingDataRemover::ClearSettingsForOneTypeWithPredicate(
2529 host_content_settings_map, CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, 2584 host_content_settings_map, CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT,
2530 base::Bind(&MatchPrimaryPattern, http_pattern)); 2585 base::Bind(&MatchPrimaryPattern, http_pattern));
2531 // Verify we only have one, and it's url1. 2586 // Verify we only have one, and it's url1.
2532 host_content_settings_map->GetSettingsForOneType( 2587 host_content_settings_map->GetSettingsForOneType(
2533 CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), &host_settings); 2588 CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), &host_settings);
2534 EXPECT_EQ(1u, host_settings.size()); 2589 EXPECT_EQ(1u, host_settings.size());
2535 EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(url1), 2590 EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(url1),
2536 host_settings[0].primary_pattern); 2591 host_settings[0].primary_pattern);
2537 } 2592 }
OLDNEW
« no previous file with comments | « chrome/browser/browsing_data/browsing_data_remover.cc ('k') | components/domain_reliability/context_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698