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

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

Issue 2697123004: Convert RemoveDataMask from enum to pointers and split it between content and embedder (Closed)
Patch Set: More compilation error fixes. 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 unified diff | Download patch
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 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/chrome_browsing_data_remover_delegate.h" 5 #include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h"
6 6
7 #include "base/guid.h" 7 #include "base/guid.h"
8 #include "base/run_loop.h" 8 #include "base/run_loop.h"
9 #include "base/strings/string_number_conversions.h" 9 #include "base/strings/string_number_conversions.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
11 #include "base/time/time.h" 11 #include "base/time/time.h"
12 #include "chrome/browser/autofill/personal_data_manager_factory.h" 12 #include "chrome/browser/autofill/personal_data_manager_factory.h"
13 #include "chrome/browser/bookmarks/bookmark_model_factory.h" 13 #include "chrome/browser/bookmarks/bookmark_model_factory.h"
14 #include "chrome/browser/browsing_data/browsing_data_helper.h" 14 #include "chrome/browser/browsing_data/browsing_data_helper.h"
15 #include "chrome/browser/browsing_data/browsing_data_remover.h" 15 #include "chrome/browser/browsing_data/browsing_data_remover.h"
16 #include "chrome/browser/browsing_data/browsing_data_remover_factory.h" 16 #include "chrome/browser/browsing_data/browsing_data_remover_factory.h"
17 #include "chrome/browser/browsing_data/browsing_data_remover_impl.h" 17 #include "chrome/browser/browsing_data/browsing_data_remover_impl.h"
18 #include "chrome/browser/browsing_data/browsing_data_remover_test_util.h" 18 #include "chrome/browser/browsing_data/browsing_data_remover_test_util.h"
19 #include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h" 19 #include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h"
20 #include "chrome/browser/browsing_data/chrome_browsing_data_types.h"
20 #include "chrome/browser/content_settings/host_content_settings_map_factory.h" 21 #include "chrome/browser/content_settings/host_content_settings_map_factory.h"
21 #include "chrome/browser/domain_reliability/service_factory.h" 22 #include "chrome/browser/domain_reliability/service_factory.h"
22 #include "chrome/browser/download/chrome_download_manager_delegate.h" 23 #include "chrome/browser/download/chrome_download_manager_delegate.h"
23 #include "chrome/browser/favicon/favicon_service_factory.h" 24 #include "chrome/browser/favicon/favicon_service_factory.h"
24 #include "chrome/browser/history/history_service_factory.h" 25 #include "chrome/browser/history/history_service_factory.h"
25 #include "chrome/browser/password_manager/password_store_factory.h" 26 #include "chrome/browser/password_manager/password_store_factory.h"
26 #include "chrome/browser/permissions/permission_decision_auto_blocker.h" 27 #include "chrome/browser/permissions/permission_decision_auto_blocker.h"
27 #include "chrome/browser/safe_browsing/safe_browsing_service.h" 28 #include "chrome/browser/safe_browsing/safe_browsing_service.h"
28 #include "chrome/browser/storage/durable_storage_permission_context.h" 29 #include "chrome/browser/storage/durable_storage_permission_context.h"
29 #include "chrome/browser/translate/language_model_factory.h" 30 #include "chrome/browser/translate/language_model_factory.h"
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 #include "chromeos/dbus/dbus_thread_manager.h" 79 #include "chromeos/dbus/dbus_thread_manager.h"
79 #include "chromeos/dbus/mock_cryptohome_client.h" 80 #include "chromeos/dbus/mock_cryptohome_client.h"
80 #include "components/signin/core/account_id/account_id.h" 81 #include "components/signin/core/account_id/account_id.h"
81 #endif 82 #endif
82 83
83 #if BUILDFLAG(ENABLE_PLUGINS) 84 #if BUILDFLAG(ENABLE_PLUGINS)
84 #include "chrome/browser/browsing_data/mock_browsing_data_flash_lso_helper.h" 85 #include "chrome/browser/browsing_data/mock_browsing_data_flash_lso_helper.h"
85 #endif 86 #endif
86 87
87 using content::BrowsingDataFilterBuilder; 88 using content::BrowsingDataFilterBuilder;
89 using content::BrowsingDataType;
88 using domain_reliability::CLEAR_BEACONS; 90 using domain_reliability::CLEAR_BEACONS;
89 using domain_reliability::CLEAR_CONTEXTS; 91 using domain_reliability::CLEAR_CONTEXTS;
90 using domain_reliability::DomainReliabilityClearMode; 92 using domain_reliability::DomainReliabilityClearMode;
91 using domain_reliability::DomainReliabilityMonitor; 93 using domain_reliability::DomainReliabilityMonitor;
92 using domain_reliability::DomainReliabilityService; 94 using domain_reliability::DomainReliabilityService;
93 using domain_reliability::DomainReliabilityServiceFactory; 95 using domain_reliability::DomainReliabilityServiceFactory;
94 using testing::_; 96 using testing::_;
95 using testing::ByRef; 97 using testing::ByRef;
96 using testing::Eq; 98 using testing::Eq;
97 using testing::FloatEq; 99 using testing::FloatEq;
(...skipping 621 matching lines...) Expand 10 before | Expand all | Expand 10 after
719 721
720 content::MockDownloadManager* download_manager() { return download_manager_; } 722 content::MockDownloadManager* download_manager() { return download_manager_; }
721 723
722 private: 724 private:
723 content::MockDownloadManager* download_manager_; 725 content::MockDownloadManager* download_manager_;
724 ChromeDownloadManagerDelegate chrome_download_manager_delegate_; 726 ChromeDownloadManagerDelegate chrome_download_manager_delegate_;
725 727
726 DISALLOW_COPY_AND_ASSIGN(RemoveDownloadsTester); 728 DISALLOW_COPY_AND_ASSIGN(RemoveDownloadsTester);
727 }; 729 };
728 730
731 // A wrapper to typecast a const initializer to std::set in ambiguous
732 // situations, such as the EXPECT macros.
733 inline const std::set<const BrowsingDataType*> Mask(
734 const std::set<const BrowsingDataType*> mask) {
735 return mask;
736 }
737
729 } // namespace 738 } // namespace
730 739
731 // RemoveAutofillTester is not a part of the anonymous namespace above, as 740 // RemoveAutofillTester is not a part of the anonymous namespace above, as
732 // PersonalDataManager declares it a friend in an empty namespace. 741 // PersonalDataManager declares it a friend in an empty namespace.
733 class RemoveAutofillTester : public autofill::PersonalDataManagerObserver { 742 class RemoveAutofillTester : public autofill::PersonalDataManagerObserver {
734 public: 743 public:
735 explicit RemoveAutofillTester(TestingProfile* profile) 744 explicit RemoveAutofillTester(TestingProfile* profile)
736 : personal_data_manager_( 745 : personal_data_manager_(
737 autofill::PersonalDataManagerFactory::GetForProfile(profile)) { 746 autofill::PersonalDataManagerFactory::GetForProfile(profile)) {
738 autofill::test::DisableSystemServices(profile->GetPrefs()); 747 autofill::test::DisableSystemServices(profile->GetPrefs());
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
838 // the message loop is cleared out, before destroying the threads and loop. 847 // the message loop is cleared out, before destroying the threads and loop.
839 // Otherwise we leak memory. 848 // Otherwise we leak memory.
840 profile_.reset(); 849 profile_.reset();
841 base::RunLoop().RunUntilIdle(); 850 base::RunLoop().RunUntilIdle();
842 851
843 TestingBrowserProcess::GetGlobal()->SetLocalState(nullptr); 852 TestingBrowserProcess::GetGlobal()->SetLocalState(nullptr);
844 } 853 }
845 854
846 ~ChromeBrowsingDataRemoverDelegateTest() override {} 855 ~ChromeBrowsingDataRemoverDelegateTest() override {}
847 856
848 void BlockUntilBrowsingDataRemoved(const base::Time& delete_begin, 857 void BlockUntilBrowsingDataRemoved(
849 const base::Time& delete_end, 858 const base::Time& delete_begin,
850 int remove_mask, 859 const base::Time& delete_end,
851 bool include_protected_origins) { 860 const std::set<const content::BrowsingDataType*>& remove_mask,
861 bool include_protected_origins) {
852 int origin_type_mask = BrowsingDataHelper::UNPROTECTED_WEB; 862 int origin_type_mask = BrowsingDataHelper::UNPROTECTED_WEB;
853 if (include_protected_origins) 863 if (include_protected_origins)
854 origin_type_mask |= BrowsingDataHelper::PROTECTED_WEB; 864 origin_type_mask |= BrowsingDataHelper::PROTECTED_WEB;
855 865
856 BrowsingDataRemoverCompletionObserver completion_observer(remover_); 866 BrowsingDataRemoverCompletionObserver completion_observer(remover_);
857 remover_->RemoveAndReply( 867 remover_->RemoveAndReply(
858 delete_begin, delete_end, remove_mask, origin_type_mask, 868 delete_begin, delete_end, remove_mask, origin_type_mask,
859 &completion_observer); 869 &completion_observer);
860 completion_observer.BlockUntilCompletion(); 870 completion_observer.BlockUntilCompletion();
861 } 871 }
862 872
863 void BlockUntilOriginDataRemoved( 873 void BlockUntilOriginDataRemoved(
864 const base::Time& delete_begin, 874 const base::Time& delete_begin,
865 const base::Time& delete_end, 875 const base::Time& delete_end,
866 int remove_mask, 876 const std::set<const content::BrowsingDataType*>& remove_mask,
867 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder) { 877 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder) {
868 BrowsingDataRemoverCompletionObserver completion_observer(remover_); 878 BrowsingDataRemoverCompletionObserver completion_observer(remover_);
869 static_cast<BrowsingDataRemoverImpl*>(remover_) 879 static_cast<BrowsingDataRemoverImpl*>(remover_)
870 ->RemoveWithFilterAndReply(delete_begin, delete_end, remove_mask, 880 ->RemoveWithFilterAndReply(delete_begin, delete_end, remove_mask,
871 BrowsingDataHelper::UNPROTECTED_WEB, 881 BrowsingDataHelper::UNPROTECTED_WEB,
872 std::move(filter_builder), 882 std::move(filter_builder),
873 &completion_observer); 883 &completion_observer);
874 completion_observer.BlockUntilCompletion(); 884 completion_observer.BlockUntilCompletion();
875 } 885 }
876 886
877 const base::Time& GetBeginTime() { 887 const base::Time& GetBeginTime() {
878 return remover_->GetLastUsedBeginTime(); 888 return remover_->GetLastUsedBeginTime();
879 } 889 }
880 890
881 int GetRemovalMask() { 891 const std::set<const content::BrowsingDataType*>& GetRemovalMask() {
882 return remover_->GetLastUsedRemovalMask(); 892 return remover_->GetLastUsedRemovalMask();
883 } 893 }
884 894
885 int GetOriginTypeMask() { 895 int GetOriginTypeMask() {
886 return remover_->GetLastUsedOriginTypeMask(); 896 return remover_->GetLastUsedOriginTypeMask();
887 } 897 }
888 898
889 TestingProfile* GetProfile() { 899 TestingProfile* GetProfile() {
890 return profile_.get(); 900 return profile_.get();
891 } 901 }
(...skipping 15 matching lines...) Expand all
907 DISALLOW_COPY_AND_ASSIGN(ChromeBrowsingDataRemoverDelegateTest); 917 DISALLOW_COPY_AND_ASSIGN(ChromeBrowsingDataRemoverDelegateTest);
908 }; 918 };
909 919
910 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveSafeBrowsingCookieForever) { 920 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveSafeBrowsingCookieForever) {
911 RemoveSafeBrowsingCookieTester tester; 921 RemoveSafeBrowsingCookieTester tester;
912 922
913 tester.AddCookie(); 923 tester.AddCookie();
914 ASSERT_TRUE(tester.ContainsCookie()); 924 ASSERT_TRUE(tester.ContainsCookie());
915 925
916 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 926 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
917 BrowsingDataRemover::REMOVE_COOKIES, false); 927 { &kBrowsingDataTypeCookies }, false);
918 928
919 EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask()); 929 EXPECT_EQ(Mask({ &kBrowsingDataTypeCookies }), GetRemovalMask());
920 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 930 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
921 EXPECT_FALSE(tester.ContainsCookie()); 931 EXPECT_FALSE(tester.ContainsCookie());
922 } 932 }
923 933
924 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 934 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
925 RemoveSafeBrowsingCookieLastHour) { 935 RemoveSafeBrowsingCookieLastHour) {
926 RemoveSafeBrowsingCookieTester tester; 936 RemoveSafeBrowsingCookieTester tester;
927 937
928 tester.AddCookie(); 938 tester.AddCookie();
929 ASSERT_TRUE(tester.ContainsCookie()); 939 ASSERT_TRUE(tester.ContainsCookie());
930 940
931 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), 941 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(),
932 BrowsingDataRemover::REMOVE_COOKIES, false); 942 { &kBrowsingDataTypeCookies }, false);
933 943
934 EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask()); 944 EXPECT_EQ(Mask({ &kBrowsingDataTypeCookies }), GetRemovalMask());
935 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 945 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
936 // Removing with time period other than all time should not clear safe 946 // Removing with time period other than all time should not clear safe
937 // browsing cookies. 947 // browsing cookies.
938 EXPECT_TRUE(tester.ContainsCookie()); 948 EXPECT_TRUE(tester.ContainsCookie());
939 } 949 }
940 950
941 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 951 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
942 RemoveSafeBrowsingCookieForeverWithPredicate) { 952 RemoveSafeBrowsingCookieForeverWithPredicate) {
943 RemoveSafeBrowsingCookieTester tester; 953 RemoveSafeBrowsingCookieTester tester;
944 954
945 tester.AddCookie(); 955 tester.AddCookie();
946 ASSERT_TRUE(tester.ContainsCookie()); 956 ASSERT_TRUE(tester.ContainsCookie());
947 std::unique_ptr<BrowsingDataFilterBuilder> filter( 957 std::unique_ptr<BrowsingDataFilterBuilder> filter(
948 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST)); 958 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST));
949 filter->AddRegisterableDomain(kTestRegisterableDomain1); 959 filter->AddRegisterableDomain(kTestRegisterableDomain1);
950 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), 960 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(),
951 BrowsingDataRemover::REMOVE_COOKIES, 961 { &kBrowsingDataTypeCookies },
952 std::move(filter)); 962 std::move(filter));
953 963
954 EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask()); 964 EXPECT_EQ(Mask({ &kBrowsingDataTypeCookies }), GetRemovalMask());
955 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 965 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
956 EXPECT_TRUE(tester.ContainsCookie()); 966 EXPECT_TRUE(tester.ContainsCookie());
957 967
958 std::unique_ptr<BrowsingDataFilterBuilder> filter2( 968 std::unique_ptr<BrowsingDataFilterBuilder> filter2(
959 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); 969 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST));
960 filter2->AddRegisterableDomain(kTestRegisterableDomain1); 970 filter2->AddRegisterableDomain(kTestRegisterableDomain1);
961 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), 971 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(),
962 BrowsingDataRemover::REMOVE_COOKIES, 972 { &kBrowsingDataTypeCookies },
963 std::move(filter2)); 973 std::move(filter2));
964 EXPECT_FALSE(tester.ContainsCookie()); 974 EXPECT_FALSE(tester.ContainsCookie());
965 } 975 }
966 976
967 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveHistoryForever) { 977 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveHistoryForever) {
968 RemoveHistoryTester tester; 978 RemoveHistoryTester tester;
969 ASSERT_TRUE(tester.Init(GetProfile())); 979 ASSERT_TRUE(tester.Init(GetProfile()));
970 980
971 tester.AddHistory(kOrigin1, base::Time::Now()); 981 tester.AddHistory(kOrigin1, base::Time::Now());
972 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); 982 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1));
973 983
974 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 984 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
975 BrowsingDataRemover::REMOVE_HISTORY, false); 985 { &kBrowsingDataTypeHistory }, false);
976 986
977 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); 987 EXPECT_EQ(Mask({ &kBrowsingDataTypeHistory }), GetRemovalMask());
978 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 988 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
979 EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1)); 989 EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1));
980 } 990 }
981 991
982 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveHistoryForLastHour) { 992 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveHistoryForLastHour) {
983 RemoveHistoryTester tester; 993 RemoveHistoryTester tester;
984 ASSERT_TRUE(tester.Init(GetProfile())); 994 ASSERT_TRUE(tester.Init(GetProfile()));
985 995
986 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); 996 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2);
987 997
988 tester.AddHistory(kOrigin1, base::Time::Now()); 998 tester.AddHistory(kOrigin1, base::Time::Now());
989 tester.AddHistory(kOrigin2, two_hours_ago); 999 tester.AddHistory(kOrigin2, two_hours_ago);
990 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); 1000 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1));
991 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2)); 1001 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2));
992 1002
993 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), 1003 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(),
994 BrowsingDataRemover::REMOVE_HISTORY, false); 1004 { &kBrowsingDataTypeHistory }, false);
995 1005
996 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); 1006 EXPECT_EQ(Mask({ &kBrowsingDataTypeHistory }), GetRemovalMask());
997 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 1007 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
998 EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1)); 1008 EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1));
999 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2)); 1009 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2));
1000 } 1010 }
1001 1011
1002 // This should crash (DCHECK) in Debug, but death tests don't work properly 1012 // This should crash (DCHECK) in Debug, but death tests don't work properly
1003 // here. 1013 // here.
1004 // TODO(msramek): To make this testable, the refusal to delete history should 1014 // TODO(msramek): To make this testable, the refusal to delete history should
1005 // be made a part of interface (e.g. a success value) as opposed to a DCHECK. 1015 // be made a part of interface (e.g. a success value) as opposed to a DCHECK.
1006 #if defined(NDEBUG) && !defined(DCHECK_ALWAYS_ON) 1016 #if defined(NDEBUG) && !defined(DCHECK_ALWAYS_ON)
1007 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveHistoryProhibited) { 1017 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveHistoryProhibited) {
1008 RemoveHistoryTester tester; 1018 RemoveHistoryTester tester;
1009 ASSERT_TRUE(tester.Init(GetProfile())); 1019 ASSERT_TRUE(tester.Init(GetProfile()));
1010 PrefService* prefs = GetProfile()->GetPrefs(); 1020 PrefService* prefs = GetProfile()->GetPrefs();
1011 prefs->SetBoolean(prefs::kAllowDeletingBrowserHistory, false); 1021 prefs->SetBoolean(prefs::kAllowDeletingBrowserHistory, false);
1012 1022
1013 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); 1023 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2);
1014 1024
1015 tester.AddHistory(kOrigin1, base::Time::Now()); 1025 tester.AddHistory(kOrigin1, base::Time::Now());
1016 tester.AddHistory(kOrigin2, two_hours_ago); 1026 tester.AddHistory(kOrigin2, two_hours_ago);
1017 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); 1027 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1));
1018 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2)); 1028 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2));
1019 1029
1020 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), 1030 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(),
1021 BrowsingDataRemover::REMOVE_HISTORY, false); 1031 { &kBrowsingDataTypeHistory }, false);
1022 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); 1032 EXPECT_EQ(Mask({ &kBrowsingDataTypeHistory }), GetRemovalMask());
1023 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 1033 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
1024 1034
1025 // Nothing should have been deleted. 1035 // Nothing should have been deleted.
1026 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin1)); 1036 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin1));
1027 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2)); 1037 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2));
1028 } 1038 }
1029 1039
1030 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1040 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1031 RemoveMultipleTypesHistoryProhibited) { 1041 RemoveMultipleTypesHistoryProhibited) {
1032 PrefService* prefs = GetProfile()->GetPrefs(); 1042 PrefService* prefs = GetProfile()->GetPrefs();
1033 prefs->SetBoolean(prefs::kAllowDeletingBrowserHistory, false); 1043 prefs->SetBoolean(prefs::kAllowDeletingBrowserHistory, false);
1034 1044
1035 // Add some history. 1045 // Add some history.
1036 RemoveHistoryTester history_tester; 1046 RemoveHistoryTester history_tester;
1037 ASSERT_TRUE(history_tester.Init(GetProfile())); 1047 ASSERT_TRUE(history_tester.Init(GetProfile()));
1038 history_tester.AddHistory(kOrigin1, base::Time::Now()); 1048 history_tester.AddHistory(kOrigin1, base::Time::Now());
1039 ASSERT_TRUE(history_tester.HistoryContainsURL(kOrigin1)); 1049 ASSERT_TRUE(history_tester.HistoryContainsURL(kOrigin1));
1040 1050
1041 // Expect that passwords will be deleted, as they do not depend 1051 // Expect that passwords will be deleted, as they do not depend
1042 // on |prefs::kAllowDeletingBrowserHistory|. 1052 // on |prefs::kAllowDeletingBrowserHistory|.
1043 RemovePasswordsTester tester(GetProfile()); 1053 RemovePasswordsTester tester(GetProfile());
1044 EXPECT_CALL(*tester.store(), RemoveLoginsByURLAndTimeImpl(_, _, _)); 1054 EXPECT_CALL(*tester.store(), RemoveLoginsByURLAndTimeImpl(_, _, _));
1045 1055
1046 int removal_mask = BrowsingDataRemover::REMOVE_HISTORY | 1056 std::set<const BrowsingDataType*> removal_mask =
1047 BrowsingDataRemover::REMOVE_PASSWORDS; 1057 { &kBrowsingDataTypeHistory, &kBrowsingDataTypePasswords };
1048
1049 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), 1058 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(),
1050 removal_mask, false); 1059 removal_mask, false);
1051 EXPECT_EQ(removal_mask, GetRemovalMask()); 1060 EXPECT_EQ(removal_mask, GetRemovalMask());
1052 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 1061 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
1053 1062
1054 // Verify that history was not deleted. 1063 // Verify that history was not deleted.
1055 EXPECT_TRUE(history_tester.HistoryContainsURL(kOrigin1)); 1064 EXPECT_TRUE(history_tester.HistoryContainsURL(kOrigin1));
1056 } 1065 }
1057 #endif 1066 #endif
1058 1067
1059 // Test that clearing history deletes favicons not associated with bookmarks. 1068 // Test that clearing history deletes favicons not associated with bookmarks.
1060 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveFaviconsForever) { 1069 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveFaviconsForever) {
1061 GURL page_url("http://a"); 1070 GURL page_url("http://a");
1062 1071
1063 RemoveFaviconTester favicon_tester; 1072 RemoveFaviconTester favicon_tester;
1064 ASSERT_TRUE(favicon_tester.Init(GetProfile())); 1073 ASSERT_TRUE(favicon_tester.Init(GetProfile()));
1065 favicon_tester.VisitAndAddFavicon(page_url); 1074 favicon_tester.VisitAndAddFavicon(page_url);
1066 ASSERT_TRUE(favicon_tester.HasFaviconForPageURL(page_url)); 1075 ASSERT_TRUE(favicon_tester.HasFaviconForPageURL(page_url));
1067 1076
1068 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1077 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1069 BrowsingDataRemover::REMOVE_HISTORY, false); 1078 { &kBrowsingDataTypeHistory }, false);
1070 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); 1079 EXPECT_EQ(Mask({ &kBrowsingDataTypeHistory }), GetRemovalMask());
1071 EXPECT_FALSE(favicon_tester.HasFaviconForPageURL(page_url)); 1080 EXPECT_FALSE(favicon_tester.HasFaviconForPageURL(page_url));
1072 } 1081 }
1073 1082
1074 // Test that a bookmark's favicon is expired and not deleted when clearing 1083 // Test that a bookmark's favicon is expired and not deleted when clearing
1075 // history. Expiring the favicon causes the bookmark's favicon to be updated 1084 // history. Expiring the favicon causes the bookmark's favicon to be updated
1076 // when the user next visits the bookmarked page. Expiring the bookmark's 1085 // when the user next visits the bookmarked page. Expiring the bookmark's
1077 // favicon is useful when the bookmark's favicon becomes incorrect (See 1086 // favicon is useful when the bookmark's favicon becomes incorrect (See
1078 // crbug.com/474421 for a sample bug which causes this). 1087 // crbug.com/474421 for a sample bug which causes this).
1079 TEST_F(ChromeBrowsingDataRemoverDelegateTest, ExpireBookmarkFavicons) { 1088 TEST_F(ChromeBrowsingDataRemoverDelegateTest, ExpireBookmarkFavicons) {
1080 GURL bookmarked_page("http://a"); 1089 GURL bookmarked_page("http://a");
1081 1090
1082 TestingProfile* profile = GetProfile(); 1091 TestingProfile* profile = GetProfile();
1083 profile->CreateBookmarkModel(true); 1092 profile->CreateBookmarkModel(true);
1084 bookmarks::BookmarkModel* bookmark_model = 1093 bookmarks::BookmarkModel* bookmark_model =
1085 BookmarkModelFactory::GetForBrowserContext(profile); 1094 BookmarkModelFactory::GetForBrowserContext(profile);
1086 bookmarks::test::WaitForBookmarkModelToLoad(bookmark_model); 1095 bookmarks::test::WaitForBookmarkModelToLoad(bookmark_model);
1087 bookmark_model->AddURL(bookmark_model->bookmark_bar_node(), 0, 1096 bookmark_model->AddURL(bookmark_model->bookmark_bar_node(), 0,
1088 base::ASCIIToUTF16("a"), bookmarked_page); 1097 base::ASCIIToUTF16("a"), bookmarked_page);
1089 1098
1090 RemoveFaviconTester favicon_tester; 1099 RemoveFaviconTester favicon_tester;
1091 ASSERT_TRUE(favicon_tester.Init(GetProfile())); 1100 ASSERT_TRUE(favicon_tester.Init(GetProfile()));
1092 favicon_tester.VisitAndAddFavicon(bookmarked_page); 1101 favicon_tester.VisitAndAddFavicon(bookmarked_page);
1093 ASSERT_TRUE(favicon_tester.HasFaviconForPageURL(bookmarked_page)); 1102 ASSERT_TRUE(favicon_tester.HasFaviconForPageURL(bookmarked_page));
1094 1103
1095 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1104 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1096 BrowsingDataRemover::REMOVE_HISTORY, false); 1105 { &kBrowsingDataTypeHistory }, false);
1097 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); 1106 EXPECT_EQ(Mask({ &kBrowsingDataTypeHistory }), GetRemovalMask());
1098 EXPECT_TRUE(favicon_tester.HasExpiredFaviconForPageURL(bookmarked_page)); 1107 EXPECT_TRUE(favicon_tester.HasExpiredFaviconForPageURL(bookmarked_page));
1099 } 1108 }
1100 1109
1101 // TODO(crbug.com/589586): Disabled, since history is not yet marked as 1110 // TODO(crbug.com/589586): Disabled, since history is not yet marked as
1102 // a filterable datatype. 1111 // a filterable datatype.
1103 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1112 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1104 DISABLED_TimeBasedHistoryRemoval) { 1113 DISABLED_TimeBasedHistoryRemoval) {
1105 RemoveHistoryTester tester; 1114 RemoveHistoryTester tester;
1106 ASSERT_TRUE(tester.Init(GetProfile())); 1115 ASSERT_TRUE(tester.Init(GetProfile()));
1107 1116
1108 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); 1117 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2);
1109 1118
1110 tester.AddHistory(kOrigin1, base::Time::Now()); 1119 tester.AddHistory(kOrigin1, base::Time::Now());
1111 tester.AddHistory(kOrigin2, two_hours_ago); 1120 tester.AddHistory(kOrigin2, two_hours_ago);
1112 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); 1121 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1));
1113 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2)); 1122 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2));
1114 1123
1115 std::unique_ptr<BrowsingDataFilterBuilder> builder( 1124 std::unique_ptr<BrowsingDataFilterBuilder> builder(
1116 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST)); 1125 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST));
1117 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), 1126 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(),
1118 BrowsingDataRemover::REMOVE_HISTORY, 1127 { &kBrowsingDataTypeHistory },
1119 std::move(builder)); 1128 std::move(builder));
1120 1129
1121 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); 1130 EXPECT_EQ(Mask({ &kBrowsingDataTypeHistory }), GetRemovalMask());
1122 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 1131 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
1123 EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1)); 1132 EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1));
1124 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2)); 1133 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2));
1125 } 1134 }
1126 1135
1127 // Verify that clearing autofill form data works. 1136 // Verify that clearing autofill form data works.
1128 TEST_F(ChromeBrowsingDataRemoverDelegateTest, AutofillRemovalLastHour) { 1137 TEST_F(ChromeBrowsingDataRemoverDelegateTest, AutofillRemovalLastHour) {
1129 GetProfile()->CreateWebDataService(); 1138 GetProfile()->CreateWebDataService();
1130 RemoveAutofillTester tester(GetProfile()); 1139 RemoveAutofillTester tester(GetProfile());
1131 1140
1132 ASSERT_FALSE(tester.HasProfile()); 1141 ASSERT_FALSE(tester.HasProfile());
1133 tester.AddProfilesAndCards(); 1142 tester.AddProfilesAndCards();
1134 ASSERT_TRUE(tester.HasProfile()); 1143 ASSERT_TRUE(tester.HasProfile());
1135 1144
1136 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), 1145 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(),
1137 BrowsingDataRemover::REMOVE_FORM_DATA, false); 1146 { &kBrowsingDataTypeFormData }, false);
1138 1147
1139 EXPECT_EQ(BrowsingDataRemover::REMOVE_FORM_DATA, GetRemovalMask()); 1148 EXPECT_EQ(Mask({ &kBrowsingDataTypeFormData }), GetRemovalMask());
1140 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 1149 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
1141 ASSERT_FALSE(tester.HasProfile()); 1150 ASSERT_FALSE(tester.HasProfile());
1142 } 1151 }
1143 1152
1144 TEST_F(ChromeBrowsingDataRemoverDelegateTest, AutofillRemovalEverything) { 1153 TEST_F(ChromeBrowsingDataRemoverDelegateTest, AutofillRemovalEverything) {
1145 GetProfile()->CreateWebDataService(); 1154 GetProfile()->CreateWebDataService();
1146 RemoveAutofillTester tester(GetProfile()); 1155 RemoveAutofillTester tester(GetProfile());
1147 1156
1148 ASSERT_FALSE(tester.HasProfile()); 1157 ASSERT_FALSE(tester.HasProfile());
1149 tester.AddProfilesAndCards(); 1158 tester.AddProfilesAndCards();
1150 ASSERT_TRUE(tester.HasProfile()); 1159 ASSERT_TRUE(tester.HasProfile());
1151 1160
1152 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1161 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1153 BrowsingDataRemover::REMOVE_FORM_DATA, false); 1162 { &kBrowsingDataTypeFormData }, false);
1154 1163
1155 EXPECT_EQ(BrowsingDataRemover::REMOVE_FORM_DATA, GetRemovalMask()); 1164 EXPECT_EQ(Mask({ &kBrowsingDataTypeFormData }), GetRemovalMask());
1156 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 1165 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
1157 ASSERT_FALSE(tester.HasProfile()); 1166 ASSERT_FALSE(tester.HasProfile());
1158 } 1167 }
1159 1168
1160 // Verify that clearing autofill form data works. 1169 // Verify that clearing autofill form data works.
1161 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1170 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1162 AutofillOriginsRemovedWithHistory) { 1171 AutofillOriginsRemovedWithHistory) {
1163 GetProfile()->CreateWebDataService(); 1172 GetProfile()->CreateWebDataService();
1164 RemoveAutofillTester tester(GetProfile()); 1173 RemoveAutofillTester tester(GetProfile());
1165 1174
1166 tester.AddProfilesAndCards(); 1175 tester.AddProfilesAndCards();
1167 EXPECT_FALSE(tester.HasOrigin(std::string())); 1176 EXPECT_FALSE(tester.HasOrigin(std::string()));
1168 EXPECT_TRUE(tester.HasOrigin(kWebOrigin)); 1177 EXPECT_TRUE(tester.HasOrigin(kWebOrigin));
1169 EXPECT_TRUE(tester.HasOrigin(autofill::kSettingsOrigin)); 1178 EXPECT_TRUE(tester.HasOrigin(autofill::kSettingsOrigin));
1170 1179
1171 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), 1180 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(),
1172 BrowsingDataRemover::REMOVE_HISTORY, false); 1181 { &kBrowsingDataTypeHistory }, false);
1173 1182
1174 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); 1183 EXPECT_EQ(Mask({ &kBrowsingDataTypeHistory }), GetRemovalMask());
1175 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 1184 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
1176 EXPECT_TRUE(tester.HasOrigin(std::string())); 1185 EXPECT_TRUE(tester.HasOrigin(std::string()));
1177 EXPECT_FALSE(tester.HasOrigin(kWebOrigin)); 1186 EXPECT_FALSE(tester.HasOrigin(kWebOrigin));
1178 EXPECT_TRUE(tester.HasOrigin(autofill::kSettingsOrigin)); 1187 EXPECT_TRUE(tester.HasOrigin(autofill::kSettingsOrigin));
1179 } 1188 }
1180 1189
1181 TEST_F(ChromeBrowsingDataRemoverDelegateTest, ZeroSuggestCacheClear) { 1190 TEST_F(ChromeBrowsingDataRemoverDelegateTest, ZeroSuggestCacheClear) {
1182 PrefService* prefs = GetProfile()->GetPrefs(); 1191 PrefService* prefs = GetProfile()->GetPrefs();
1183 prefs->SetString(omnibox::kZeroSuggestCachedResults, 1192 prefs->SetString(omnibox::kZeroSuggestCachedResults,
1184 "[\"\", [\"foo\", \"bar\"]]"); 1193 "[\"\", [\"foo\", \"bar\"]]");
1185 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1194 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1186 BrowsingDataRemover::REMOVE_COOKIES, false); 1195 { &kBrowsingDataTypeCookies }, false);
1187 1196
1188 // Expect the prefs to be cleared when cookies are removed. 1197 // Expect the prefs to be cleared when cookies are removed.
1189 EXPECT_TRUE(prefs->GetString(omnibox::kZeroSuggestCachedResults).empty()); 1198 EXPECT_TRUE(prefs->GetString(omnibox::kZeroSuggestCachedResults).empty());
1190 EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask()); 1199 EXPECT_EQ(Mask({ &kBrowsingDataTypeCookies }), GetRemovalMask());
1191 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 1200 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
1192 } 1201 }
1193 1202
1194 #if defined(OS_CHROMEOS) 1203 #if defined(OS_CHROMEOS)
1195 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1204 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1196 ContentProtectionPlatformKeysRemoval) { 1205 ContentProtectionPlatformKeysRemoval) {
1197 chromeos::ScopedTestDeviceSettingsService test_device_settings_service; 1206 chromeos::ScopedTestDeviceSettingsService test_device_settings_service;
1198 chromeos::ScopedTestCrosSettings test_cros_settings; 1207 chromeos::ScopedTestCrosSettings test_cros_settings;
1199 chromeos::MockUserManager* mock_user_manager = 1208 chromeos::MockUserManager* mock_user_manager =
1200 new testing::NiceMock<chromeos::MockUserManager>(); 1209 new testing::NiceMock<chromeos::MockUserManager>();
1201 mock_user_manager->SetActiveUser( 1210 mock_user_manager->SetActiveUser(
1202 AccountId::FromUserEmail("test@example.com")); 1211 AccountId::FromUserEmail("test@example.com"));
1203 chromeos::ScopedUserManagerEnabler user_manager_enabler(mock_user_manager); 1212 chromeos::ScopedUserManagerEnabler user_manager_enabler(mock_user_manager);
1204 1213
1205 std::unique_ptr<chromeos::DBusThreadManagerSetter> dbus_setter = 1214 std::unique_ptr<chromeos::DBusThreadManagerSetter> dbus_setter =
1206 chromeos::DBusThreadManager::GetSetterForTesting(); 1215 chromeos::DBusThreadManager::GetSetterForTesting();
1207 chromeos::MockCryptohomeClient* cryptohome_client = 1216 chromeos::MockCryptohomeClient* cryptohome_client =
1208 new chromeos::MockCryptohomeClient; 1217 new chromeos::MockCryptohomeClient;
1209 dbus_setter->SetCryptohomeClient( 1218 dbus_setter->SetCryptohomeClient(
1210 std::unique_ptr<chromeos::CryptohomeClient>(cryptohome_client)); 1219 std::unique_ptr<chromeos::CryptohomeClient>(cryptohome_client));
1211 1220
1212 // Expect exactly one call. No calls means no attempt to delete keys and more 1221 // Expect exactly one call. No calls means no attempt to delete keys and more
1213 // than one call means a significant performance problem. 1222 // than one call means a significant performance problem.
1214 EXPECT_CALL(*cryptohome_client, TpmAttestationDeleteKeys(_, _, _, _)) 1223 EXPECT_CALL(*cryptohome_client, TpmAttestationDeleteKeys(_, _, _, _))
1215 .WillOnce(WithArgs<3>(Invoke(FakeDBusCall))); 1224 .WillOnce(WithArgs<3>(Invoke(FakeDBusCall)));
1216 1225
1217 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1226 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1218 BrowsingDataRemover::REMOVE_MEDIA_LICENSES, 1227 { &kBrowsingDataTypeMediaLicenses }, false);
1219 false);
1220 1228
1221 chromeos::DBusThreadManager::Shutdown(); 1229 chromeos::DBusThreadManager::Shutdown();
1222 } 1230 }
1223 #endif 1231 #endif
1224 1232
1225 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_Null) { 1233 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_Null) {
1226 const ClearDomainReliabilityTester& tester = 1234 const ClearDomainReliabilityTester& tester =
1227 clear_domain_reliability_tester(); 1235 clear_domain_reliability_tester();
1228 1236
1229 EXPECT_EQ(0u, tester.clear_count()); 1237 EXPECT_EQ(0u, tester.clear_count());
1230 } 1238 }
1231 1239
1232 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_Beacons) { 1240 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_Beacons) {
1233 const ClearDomainReliabilityTester& tester = 1241 const ClearDomainReliabilityTester& tester =
1234 clear_domain_reliability_tester(); 1242 clear_domain_reliability_tester();
1235 1243
1236 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1244 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1237 BrowsingDataRemover::REMOVE_HISTORY, false); 1245 { &kBrowsingDataTypeHistory }, false);
1238 EXPECT_EQ(1u, tester.clear_count()); 1246 EXPECT_EQ(1u, tester.clear_count());
1239 EXPECT_EQ(CLEAR_BEACONS, tester.last_clear_mode()); 1247 EXPECT_EQ(CLEAR_BEACONS, tester.last_clear_mode());
1240 EXPECT_TRUE(ProbablySameFilters( 1248 EXPECT_TRUE(ProbablySameFilters(
1241 BrowsingDataFilterBuilder::BuildNoopFilter(), tester.last_filter())); 1249 BrowsingDataFilterBuilder::BuildNoopFilter(), tester.last_filter()));
1242 } 1250 }
1243 1251
1244 // TODO(crbug.com/589586): Disabled, since history is not yet marked as 1252 // TODO(crbug.com/589586): Disabled, since history is not yet marked as
1245 // a filterable datatype. 1253 // a filterable datatype.
1246 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1254 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1247 DISABLED_DomainReliability_Beacons_WithFilter) { 1255 DISABLED_DomainReliability_Beacons_WithFilter) {
1248 const ClearDomainReliabilityTester& tester = 1256 const ClearDomainReliabilityTester& tester =
1249 clear_domain_reliability_tester(); 1257 clear_domain_reliability_tester();
1250 1258
1251 std::unique_ptr<BrowsingDataFilterBuilder> builder( 1259 std::unique_ptr<BrowsingDataFilterBuilder> builder(
1252 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); 1260 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST));
1253 builder->AddRegisterableDomain(kTestRegisterableDomain1); 1261 builder->AddRegisterableDomain(kTestRegisterableDomain1);
1254 1262
1255 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), 1263 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(),
1256 BrowsingDataRemover::REMOVE_HISTORY, 1264 { &kBrowsingDataTypeHistory }, builder->Copy());
1257 builder->Copy());
1258 EXPECT_EQ(1u, tester.clear_count()); 1265 EXPECT_EQ(1u, tester.clear_count());
1259 EXPECT_EQ(CLEAR_BEACONS, tester.last_clear_mode()); 1266 EXPECT_EQ(CLEAR_BEACONS, tester.last_clear_mode());
1260 EXPECT_TRUE(ProbablySameFilters( 1267 EXPECT_TRUE(ProbablySameFilters(
1261 builder->BuildGeneralFilter(), tester.last_filter())); 1268 builder->BuildGeneralFilter(), tester.last_filter()));
1262 } 1269 }
1263 1270
1264 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_Contexts) { 1271 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_Contexts) {
1265 const ClearDomainReliabilityTester& tester = 1272 const ClearDomainReliabilityTester& tester =
1266 clear_domain_reliability_tester(); 1273 clear_domain_reliability_tester();
1267 1274
1268 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1275 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1269 BrowsingDataRemover::REMOVE_COOKIES, false); 1276 { &kBrowsingDataTypeCookies }, false);
1270 EXPECT_EQ(1u, tester.clear_count()); 1277 EXPECT_EQ(1u, tester.clear_count());
1271 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode()); 1278 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode());
1272 EXPECT_TRUE(ProbablySameFilters( 1279 EXPECT_TRUE(ProbablySameFilters(
1273 BrowsingDataFilterBuilder::BuildNoopFilter(), tester.last_filter())); 1280 BrowsingDataFilterBuilder::BuildNoopFilter(), tester.last_filter()));
1274 } 1281 }
1275 1282
1276 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1283 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1277 DomainReliability_Contexts_WithFilter) { 1284 DomainReliability_Contexts_WithFilter) {
1278 const ClearDomainReliabilityTester& tester = 1285 const ClearDomainReliabilityTester& tester =
1279 clear_domain_reliability_tester(); 1286 clear_domain_reliability_tester();
1280 1287
1281 std::unique_ptr<BrowsingDataFilterBuilder> builder( 1288 std::unique_ptr<BrowsingDataFilterBuilder> builder(
1282 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); 1289 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST));
1283 builder->AddRegisterableDomain(kTestRegisterableDomain1); 1290 builder->AddRegisterableDomain(kTestRegisterableDomain1);
1284 1291
1285 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), 1292 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(),
1286 BrowsingDataRemover::REMOVE_COOKIES, 1293 { &kBrowsingDataTypeCookies },
1287 builder->Copy()); 1294 builder->Copy());
1288 EXPECT_EQ(1u, tester.clear_count()); 1295 EXPECT_EQ(1u, tester.clear_count());
1289 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode()); 1296 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode());
1290 EXPECT_TRUE(ProbablySameFilters( 1297 EXPECT_TRUE(ProbablySameFilters(
1291 builder->BuildGeneralFilter(), tester.last_filter())); 1298 builder->BuildGeneralFilter(), tester.last_filter()));
1292 } 1299 }
1293 1300
1294 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_ContextsWin) { 1301 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_ContextsWin) {
1295 const ClearDomainReliabilityTester& tester = 1302 const ClearDomainReliabilityTester& tester =
1296 clear_domain_reliability_tester(); 1303 clear_domain_reliability_tester();
1297 1304
1298 BlockUntilBrowsingDataRemoved( 1305 BlockUntilBrowsingDataRemoved(
1299 base::Time(), base::Time::Max(), 1306 base::Time(), base::Time::Max(),
1300 BrowsingDataRemover::REMOVE_HISTORY | BrowsingDataRemover::REMOVE_COOKIES, 1307 { &kBrowsingDataTypeHistory, &kBrowsingDataTypeCookies }, false);
1301 false);
1302 EXPECT_EQ(1u, tester.clear_count()); 1308 EXPECT_EQ(1u, tester.clear_count());
1303 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode()); 1309 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode());
1304 } 1310 }
1305 1311
1306 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1312 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1307 DomainReliability_ProtectedOrigins) { 1313 DomainReliability_ProtectedOrigins) {
1308 const ClearDomainReliabilityTester& tester = 1314 const ClearDomainReliabilityTester& tester =
1309 clear_domain_reliability_tester(); 1315 clear_domain_reliability_tester();
1310 1316
1311 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1317 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1312 BrowsingDataRemover::REMOVE_COOKIES, true); 1318 { &kBrowsingDataTypeCookies }, true);
1313 EXPECT_EQ(1u, tester.clear_count()); 1319 EXPECT_EQ(1u, tester.clear_count());
1314 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode()); 1320 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode());
1315 } 1321 }
1316 1322
1317 // TODO(juliatuttle): This isn't actually testing the no-monitor case, since 1323 // TODO(juliatuttle): This isn't actually testing the no-monitor case, since
1318 // BrowsingDataRemoverTest now creates one unconditionally, since it's needed 1324 // BrowsingDataRemoverTest now creates one unconditionally, since it's needed
1319 // for some unrelated test cases. This should be fixed so it tests the no- 1325 // for some unrelated test cases. This should be fixed so it tests the no-
1320 // monitor case again. 1326 // monitor case again.
1321 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1327 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1322 DISABLED_DomainReliability_NoMonitor) { 1328 DISABLED_DomainReliability_NoMonitor) {
1323 BlockUntilBrowsingDataRemoved( 1329 BlockUntilBrowsingDataRemoved(
1324 base::Time(), base::Time::Max(), 1330 base::Time(), base::Time::Max(),
1325 BrowsingDataRemover::REMOVE_HISTORY | BrowsingDataRemover::REMOVE_COOKIES, 1331 { &kBrowsingDataTypeHistory, &kBrowsingDataTypeCookies }, false);
1326 false);
1327 } 1332 }
1328 1333
1329 // Tests that the deletion of downloads completes successfully and that 1334 // Tests that the deletion of downloads completes successfully and that
1330 // ChromeDownloadManagerDelegate is correctly created and shut down. 1335 // ChromeDownloadManagerDelegate is correctly created and shut down.
1331 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveDownloads) { 1336 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveDownloads) {
1332 RemoveDownloadsTester tester(GetProfile()); 1337 RemoveDownloadsTester tester(GetProfile());
1333 1338
1334 EXPECT_CALL( 1339 EXPECT_CALL(
1335 *tester.download_manager(), RemoveDownloadsByURLAndTime(_, _, _)); 1340 *tester.download_manager(), RemoveDownloadsByURLAndTime(_, _, _));
1336 1341
1337 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1342 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1338 BrowsingDataRemover::REMOVE_DOWNLOADS, false); 1343 { &kBrowsingDataTypeDownloads }, false);
1339 } 1344 }
1340 1345
1341 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemovePasswordStatistics) { 1346 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemovePasswordStatistics) {
1342 RemovePasswordsTester tester(GetProfile()); 1347 RemovePasswordsTester tester(GetProfile());
1343 base::Callback<bool(const GURL&)> empty_filter; 1348 base::Callback<bool(const GURL&)> empty_filter;
1344 1349
1345 EXPECT_CALL(*tester.store(), RemoveStatisticsByOriginAndTimeImpl( 1350 EXPECT_CALL(*tester.store(), RemoveStatisticsByOriginAndTimeImpl(
1346 ProbablySameFilter(empty_filter), 1351 ProbablySameFilter(empty_filter),
1347 base::Time(), base::Time::Max())); 1352 base::Time(), base::Time::Max()));
1348 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1353 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1349 BrowsingDataRemover::REMOVE_HISTORY, false); 1354 { &kBrowsingDataTypeHistory }, false);
1350 } 1355 }
1351 1356
1352 // TODO(crbug.com/589586): Disabled, since history is not yet marked as 1357 // TODO(crbug.com/589586): Disabled, since history is not yet marked as
1353 // a filterable datatype. 1358 // a filterable datatype.
1354 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1359 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1355 DISABLED_RemovePasswordStatisticsByOrigin) { 1360 DISABLED_RemovePasswordStatisticsByOrigin) {
1356 RemovePasswordsTester tester(GetProfile()); 1361 RemovePasswordsTester tester(GetProfile());
1357 1362
1358 std::unique_ptr<BrowsingDataFilterBuilder> builder( 1363 std::unique_ptr<BrowsingDataFilterBuilder> builder(
1359 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); 1364 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST));
1360 builder->AddRegisterableDomain(kTestRegisterableDomain1); 1365 builder->AddRegisterableDomain(kTestRegisterableDomain1);
1361 base::Callback<bool(const GURL&)> filter = builder->BuildGeneralFilter(); 1366 base::Callback<bool(const GURL&)> filter = builder->BuildGeneralFilter();
1362 1367
1363 EXPECT_CALL(*tester.store(), 1368 EXPECT_CALL(*tester.store(),
1364 RemoveStatisticsByOriginAndTimeImpl( 1369 RemoveStatisticsByOriginAndTimeImpl(
1365 ProbablySameFilter(filter), base::Time(), base::Time::Max())); 1370 ProbablySameFilter(filter), base::Time(), base::Time::Max()));
1366 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), 1371 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(),
1367 BrowsingDataRemover::REMOVE_HISTORY, 1372 { &kBrowsingDataTypeHistory },
1368 std::move(builder)); 1373 std::move(builder));
1369 } 1374 }
1370 1375
1371 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemovePasswordsByTimeOnly) { 1376 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemovePasswordsByTimeOnly) {
1372 RemovePasswordsTester tester(GetProfile()); 1377 RemovePasswordsTester tester(GetProfile());
1373 base::Callback<bool(const GURL&)> filter = 1378 base::Callback<bool(const GURL&)> filter =
1374 BrowsingDataFilterBuilder::BuildNoopFilter(); 1379 BrowsingDataFilterBuilder::BuildNoopFilter();
1375 1380
1376 EXPECT_CALL(*tester.store(), 1381 EXPECT_CALL(*tester.store(),
1377 RemoveLoginsByURLAndTimeImpl(ProbablySameFilter(filter), _, _)) 1382 RemoveLoginsByURLAndTimeImpl(ProbablySameFilter(filter), _, _))
1378 .WillOnce(Return(password_manager::PasswordStoreChangeList())); 1383 .WillOnce(Return(password_manager::PasswordStoreChangeList()));
1379 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1384 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1380 BrowsingDataRemover::REMOVE_PASSWORDS, false); 1385 { &kBrowsingDataTypePasswords }, false);
1381 } 1386 }
1382 1387
1383 // Disabled, since passwords are not yet marked as a filterable datatype. 1388 // Disabled, since passwords are not yet marked as a filterable datatype.
1384 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1389 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1385 DISABLED_RemovePasswordsByOrigin) { 1390 DISABLED_RemovePasswordsByOrigin) {
1386 RemovePasswordsTester tester(GetProfile()); 1391 RemovePasswordsTester tester(GetProfile());
1387 std::unique_ptr<BrowsingDataFilterBuilder> builder( 1392 std::unique_ptr<BrowsingDataFilterBuilder> builder(
1388 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); 1393 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST));
1389 builder->AddRegisterableDomain(kTestRegisterableDomain1); 1394 builder->AddRegisterableDomain(kTestRegisterableDomain1);
1390 base::Callback<bool(const GURL&)> filter = builder->BuildGeneralFilter(); 1395 base::Callback<bool(const GURL&)> filter = builder->BuildGeneralFilter();
1391 1396
1392 EXPECT_CALL(*tester.store(), 1397 EXPECT_CALL(*tester.store(),
1393 RemoveLoginsByURLAndTimeImpl(ProbablySameFilter(filter), _, _)) 1398 RemoveLoginsByURLAndTimeImpl(ProbablySameFilter(filter), _, _))
1394 .WillOnce(Return(password_manager::PasswordStoreChangeList())); 1399 .WillOnce(Return(password_manager::PasswordStoreChangeList()));
1395 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), 1400 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(),
1396 BrowsingDataRemover::REMOVE_PASSWORDS, 1401 { &kBrowsingDataTypePasswords },
1397 std::move(builder)); 1402 std::move(builder));
1398 } 1403 }
1399 1404
1400 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DisableAutoSignIn) { 1405 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DisableAutoSignIn) {
1401 RemovePasswordsTester tester(GetProfile()); 1406 RemovePasswordsTester tester(GetProfile());
1402 base::Callback<bool(const GURL&)> empty_filter = 1407 base::Callback<bool(const GURL&)> empty_filter =
1403 BrowsingDataFilterBuilder::BuildNoopFilter(); 1408 BrowsingDataFilterBuilder::BuildNoopFilter();
1404 1409
1405 EXPECT_CALL( 1410 EXPECT_CALL(
1406 *tester.store(), 1411 *tester.store(),
1407 DisableAutoSignInForOriginsImpl(ProbablySameFilter(empty_filter))) 1412 DisableAutoSignInForOriginsImpl(ProbablySameFilter(empty_filter)))
1408 .WillOnce(Return(password_manager::PasswordStoreChangeList())); 1413 .WillOnce(Return(password_manager::PasswordStoreChangeList()));
1409 1414
1410 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1415 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1411 BrowsingDataRemover::REMOVE_COOKIES, false); 1416 { &kBrowsingDataTypeCookies }, false);
1412 } 1417 }
1413 1418
1414 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1419 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1415 DisableAutoSignInAfterRemovingPasswords) { 1420 DisableAutoSignInAfterRemovingPasswords) {
1416 RemovePasswordsTester tester(GetProfile()); 1421 RemovePasswordsTester tester(GetProfile());
1417 base::Callback<bool(const GURL&)> empty_filter = 1422 base::Callback<bool(const GURL&)> empty_filter =
1418 BrowsingDataFilterBuilder::BuildNoopFilter(); 1423 BrowsingDataFilterBuilder::BuildNoopFilter();
1419 1424
1420 EXPECT_CALL(*tester.store(), RemoveLoginsByURLAndTimeImpl(_, _, _)) 1425 EXPECT_CALL(*tester.store(), RemoveLoginsByURLAndTimeImpl(_, _, _))
1421 .WillOnce(Return(password_manager::PasswordStoreChangeList())); 1426 .WillOnce(Return(password_manager::PasswordStoreChangeList()));
1422 EXPECT_CALL( 1427 EXPECT_CALL(
1423 *tester.store(), 1428 *tester.store(),
1424 DisableAutoSignInForOriginsImpl(ProbablySameFilter(empty_filter))) 1429 DisableAutoSignInForOriginsImpl(ProbablySameFilter(empty_filter)))
1425 .WillOnce(Return(password_manager::PasswordStoreChangeList())); 1430 .WillOnce(Return(password_manager::PasswordStoreChangeList()));
1426 1431
1427 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1432 BlockUntilBrowsingDataRemoved(
1428 BrowsingDataRemover::REMOVE_COOKIES | 1433 base::Time(), base::Time::Max(),
1429 BrowsingDataRemover::REMOVE_PASSWORDS, 1434 { &kBrowsingDataTypeCookies, &kBrowsingDataTypePasswords }, false);
1430 false);
1431 } 1435 }
1432 1436
1433 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1437 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1434 RemoveContentSettingsWithBlacklist) { 1438 RemoveContentSettingsWithBlacklist) {
1435 // Add our settings. 1439 // Add our settings.
1436 HostContentSettingsMap* host_content_settings_map = 1440 HostContentSettingsMap* host_content_settings_map =
1437 HostContentSettingsMapFactory::GetForProfile(GetProfile()); 1441 HostContentSettingsMapFactory::GetForProfile(GetProfile());
1438 host_content_settings_map->SetWebsiteSettingDefaultScope( 1442 host_content_settings_map->SetWebsiteSettingDefaultScope(
1439 kOrigin1, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), 1443 kOrigin1, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(),
1440 base::MakeUnique<base::DictionaryValue>()); 1444 base::MakeUnique<base::DictionaryValue>());
1441 host_content_settings_map->SetWebsiteSettingDefaultScope( 1445 host_content_settings_map->SetWebsiteSettingDefaultScope(
1442 kOrigin2, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), 1446 kOrigin2, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(),
1443 base::MakeUnique<base::DictionaryValue>()); 1447 base::MakeUnique<base::DictionaryValue>());
1444 host_content_settings_map->SetWebsiteSettingDefaultScope( 1448 host_content_settings_map->SetWebsiteSettingDefaultScope(
1445 kOrigin3, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), 1449 kOrigin3, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(),
1446 base::MakeUnique<base::DictionaryValue>()); 1450 base::MakeUnique<base::DictionaryValue>());
1447 host_content_settings_map->SetWebsiteSettingDefaultScope( 1451 host_content_settings_map->SetWebsiteSettingDefaultScope(
1448 kOrigin4, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), 1452 kOrigin4, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(),
1449 base::MakeUnique<base::DictionaryValue>()); 1453 base::MakeUnique<base::DictionaryValue>());
1450 1454
1451 // Clear all except for origin1 and origin3. 1455 // Clear all except for origin1 and origin3.
1452 std::unique_ptr<BrowsingDataFilterBuilder> filter( 1456 std::unique_ptr<BrowsingDataFilterBuilder> filter(
1453 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST)); 1457 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST));
1454 filter->AddRegisterableDomain(kTestRegisterableDomain1); 1458 filter->AddRegisterableDomain(kTestRegisterableDomain1);
1455 filter->AddRegisterableDomain(kTestRegisterableDomain3); 1459 filter->AddRegisterableDomain(kTestRegisterableDomain3);
1456 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), 1460 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(),
1457 BrowsingDataRemover::REMOVE_SITE_USAGE_DATA, 1461 { &kBrowsingDataTypeSiteUsageData },
1458 std::move(filter)); 1462 std::move(filter));
1459 1463
1460 EXPECT_EQ(BrowsingDataRemover::REMOVE_SITE_USAGE_DATA, GetRemovalMask()); 1464 EXPECT_EQ(Mask({ &kBrowsingDataTypeSiteUsageData }), GetRemovalMask());
1461 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 1465 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
1462 1466
1463 // Verify we only have true, and they're origin1, origin3, and origin4. 1467 // Verify we only have true, and they're origin1, origin3, and origin4.
1464 ContentSettingsForOneType host_settings; 1468 ContentSettingsForOneType host_settings;
1465 host_content_settings_map->GetSettingsForOneType( 1469 host_content_settings_map->GetSettingsForOneType(
1466 CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), &host_settings); 1470 CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), &host_settings);
1467 EXPECT_EQ(3u, host_settings.size()); 1471 EXPECT_EQ(3u, host_settings.size());
1468 EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(kOrigin1), 1472 EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(kOrigin1),
1469 host_settings[0].primary_pattern) 1473 host_settings[0].primary_pattern)
1470 << host_settings[0].primary_pattern.ToString(); 1474 << host_settings[0].primary_pattern.ToString();
(...skipping 15 matching lines...) Expand all
1486 CONTENT_SETTING_ALLOW); 1490 CONTENT_SETTING_ALLOW);
1487 durable_permission.UpdateContentSetting(kOrigin2, GURL(), 1491 durable_permission.UpdateContentSetting(kOrigin2, GURL(),
1488 CONTENT_SETTING_ALLOW); 1492 CONTENT_SETTING_ALLOW);
1489 1493
1490 // Clear all except for origin1 and origin3. 1494 // Clear all except for origin1 and origin3.
1491 std::unique_ptr<BrowsingDataFilterBuilder> filter( 1495 std::unique_ptr<BrowsingDataFilterBuilder> filter(
1492 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST)); 1496 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST));
1493 filter->AddRegisterableDomain(kTestRegisterableDomain1); 1497 filter->AddRegisterableDomain(kTestRegisterableDomain1);
1494 filter->AddRegisterableDomain(kTestRegisterableDomain3); 1498 filter->AddRegisterableDomain(kTestRegisterableDomain3);
1495 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), 1499 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(),
1496 BrowsingDataRemover::REMOVE_DURABLE_PERMISSION, 1500 { &kBrowsingDataTypeDurablePermission },
1497 std::move(filter)); 1501 std::move(filter));
1498 1502
1499 EXPECT_EQ(BrowsingDataRemover::REMOVE_DURABLE_PERMISSION, GetRemovalMask()); 1503 EXPECT_EQ(Mask({ &kBrowsingDataTypeDurablePermission }), GetRemovalMask());
1500 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 1504 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
1501 1505
1502 // Verify we only have allow for the first origin. 1506 // Verify we only have allow for the first origin.
1503 ContentSettingsForOneType host_settings; 1507 ContentSettingsForOneType host_settings;
1504 host_content_settings_map->GetSettingsForOneType( 1508 host_content_settings_map->GetSettingsForOneType(
1505 CONTENT_SETTINGS_TYPE_DURABLE_STORAGE, std::string(), &host_settings); 1509 CONTENT_SETTINGS_TYPE_DURABLE_STORAGE, std::string(), &host_settings);
1506 1510
1507 ASSERT_EQ(2u, host_settings.size()); 1511 ASSERT_EQ(2u, host_settings.size());
1508 // Only the first should should have a setting. 1512 // Only the first should should have a setting.
1509 EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(kOrigin1), 1513 EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(kOrigin1),
(...skipping 21 matching lines...) Expand all
1531 net::HttpAuthCache* http_auth_cache = http_session->http_auth_cache(); 1535 net::HttpAuthCache* http_auth_cache = http_session->http_auth_cache();
1532 http_auth_cache->Add(kOrigin1, kTestRealm, net::HttpAuth::AUTH_SCHEME_BASIC, 1536 http_auth_cache->Add(kOrigin1, kTestRealm, net::HttpAuth::AUTH_SCHEME_BASIC,
1533 "test challenge", 1537 "test challenge",
1534 net::AuthCredentials(base::ASCIIToUTF16("foo"), 1538 net::AuthCredentials(base::ASCIIToUTF16("foo"),
1535 base::ASCIIToUTF16("bar")), 1539 base::ASCIIToUTF16("bar")),
1536 "/"); 1540 "/");
1537 CHECK(http_auth_cache->Lookup(kOrigin1, kTestRealm, 1541 CHECK(http_auth_cache->Lookup(kOrigin1, kTestRealm,
1538 net::HttpAuth::AUTH_SCHEME_BASIC)); 1542 net::HttpAuth::AUTH_SCHEME_BASIC));
1539 1543
1540 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1544 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1541 BrowsingDataRemover::REMOVE_PASSWORDS, false); 1545 { &kBrowsingDataTypePasswords }, false);
1542 1546
1543 EXPECT_EQ(nullptr, http_auth_cache->Lookup(kOrigin1, kTestRealm, 1547 EXPECT_EQ(nullptr, http_auth_cache->Lookup(kOrigin1, kTestRealm,
1544 net::HttpAuth::AUTH_SCHEME_BASIC)); 1548 net::HttpAuth::AUTH_SCHEME_BASIC));
1545 } 1549 }
1546 1550
1547 TEST_F(ChromeBrowsingDataRemoverDelegateTest, ClearPermissionPromptCounts) { 1551 TEST_F(ChromeBrowsingDataRemoverDelegateTest, ClearPermissionPromptCounts) {
1548 RemovePermissionPromptCountsTest tester(GetProfile()); 1552 RemovePermissionPromptCountsTest tester(GetProfile());
1549 1553
1550 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder_1( 1554 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder_1(
1551 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); 1555 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST));
1552 filter_builder_1->AddRegisterableDomain(kTestRegisterableDomain1); 1556 filter_builder_1->AddRegisterableDomain(kTestRegisterableDomain1);
1553 1557
1554 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder_2( 1558 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder_2(
1555 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST)); 1559 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST));
1556 filter_builder_2->AddRegisterableDomain(kTestRegisterableDomain1); 1560 filter_builder_2->AddRegisterableDomain(kTestRegisterableDomain1);
1557 1561
1558 { 1562 {
1559 // Test REMOVE_HISTORY. 1563 // Test kBrowsingDataTypeHistory.
1560 EXPECT_EQ(1, tester.RecordIgnore(kOrigin1, 1564 EXPECT_EQ(1, tester.RecordIgnore(kOrigin1,
1561 content::PermissionType::GEOLOCATION)); 1565 content::PermissionType::GEOLOCATION));
1562 EXPECT_EQ(2, tester.RecordIgnore(kOrigin1, 1566 EXPECT_EQ(2, tester.RecordIgnore(kOrigin1,
1563 content::PermissionType::GEOLOCATION)); 1567 content::PermissionType::GEOLOCATION));
1564 EXPECT_EQ(1, tester.RecordIgnore(kOrigin1, 1568 EXPECT_EQ(1, tester.RecordIgnore(kOrigin1,
1565 content::PermissionType::NOTIFICATIONS)); 1569 content::PermissionType::NOTIFICATIONS));
1566 tester.ShouldChangeDismissalToBlock(kOrigin1, 1570 tester.ShouldChangeDismissalToBlock(kOrigin1,
1567 content::PermissionType::MIDI_SYSEX); 1571 content::PermissionType::MIDI_SYSEX);
1568 EXPECT_EQ(1, tester.RecordIgnore(kOrigin2, 1572 EXPECT_EQ(1, tester.RecordIgnore(kOrigin2,
1569 content::PermissionType::DURABLE_STORAGE)); 1573 content::PermissionType::DURABLE_STORAGE));
1570 tester.ShouldChangeDismissalToBlock(kOrigin2, 1574 tester.ShouldChangeDismissalToBlock(kOrigin2,
1571 content::PermissionType::NOTIFICATIONS); 1575 content::PermissionType::NOTIFICATIONS);
1572 1576
1573 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), 1577 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(),
1574 BrowsingDataRemover::REMOVE_SITE_USAGE_DATA, 1578 { &kBrowsingDataTypeSiteUsageData },
1575 std::move(filter_builder_1)); 1579 std::move(filter_builder_1));
1576 1580
1577 // kOrigin1 should be gone, but kOrigin2 remains. 1581 // kOrigin1 should be gone, but kOrigin2 remains.
1578 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, 1582 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1,
1579 content::PermissionType::GEOLOCATION)); 1583 content::PermissionType::GEOLOCATION));
1580 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, 1584 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1,
1581 content::PermissionType::NOTIFICATIONS)); 1585 content::PermissionType::NOTIFICATIONS));
1582 EXPECT_EQ(0, tester.GetDismissCount(kOrigin1, 1586 EXPECT_EQ(0, tester.GetDismissCount(kOrigin1,
1583 content::PermissionType::MIDI_SYSEX)); 1587 content::PermissionType::MIDI_SYSEX));
1584 EXPECT_EQ(1, tester.GetIgnoreCount( 1588 EXPECT_EQ(1, tester.GetIgnoreCount(
1585 kOrigin2, content::PermissionType::DURABLE_STORAGE)); 1589 kOrigin2, content::PermissionType::DURABLE_STORAGE));
1586 EXPECT_EQ(1, tester.GetDismissCount( 1590 EXPECT_EQ(1, tester.GetDismissCount(
1587 kOrigin2, content::PermissionType::NOTIFICATIONS)); 1591 kOrigin2, content::PermissionType::NOTIFICATIONS));
1588 1592
1589 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), 1593 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(),
1590 BrowsingDataRemover::REMOVE_HISTORY, false); 1594 { &kBrowsingDataTypeHistory }, false);
1591 1595
1592 // Everything should be gone. 1596 // Everything should be gone.
1593 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, 1597 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1,
1594 content::PermissionType::GEOLOCATION)); 1598 content::PermissionType::GEOLOCATION));
1595 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, 1599 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1,
1596 content::PermissionType::NOTIFICATIONS)); 1600 content::PermissionType::NOTIFICATIONS));
1597 EXPECT_EQ(0, tester.GetDismissCount(kOrigin1, 1601 EXPECT_EQ(0, tester.GetDismissCount(kOrigin1,
1598 content::PermissionType::MIDI_SYSEX)); 1602 content::PermissionType::MIDI_SYSEX));
1599 EXPECT_EQ(0, tester.GetIgnoreCount( 1603 EXPECT_EQ(0, tester.GetIgnoreCount(
1600 kOrigin2, content::PermissionType::DURABLE_STORAGE)); 1604 kOrigin2, content::PermissionType::DURABLE_STORAGE));
1601 EXPECT_EQ(0, tester.GetDismissCount( 1605 EXPECT_EQ(0, tester.GetDismissCount(
1602 kOrigin2, content::PermissionType::NOTIFICATIONS)); 1606 kOrigin2, content::PermissionType::NOTIFICATIONS));
1603 } 1607 }
1604 { 1608 {
1605 // Test REMOVE_SITE_DATA. 1609 // Test kBrowsingDataTypeSiteUsageData.
1606 EXPECT_EQ(1, tester.RecordIgnore(kOrigin1, 1610 EXPECT_EQ(1, tester.RecordIgnore(kOrigin1,
1607 content::PermissionType::GEOLOCATION)); 1611 content::PermissionType::GEOLOCATION));
1608 EXPECT_EQ(2, tester.RecordIgnore(kOrigin1, 1612 EXPECT_EQ(2, tester.RecordIgnore(kOrigin1,
1609 content::PermissionType::GEOLOCATION)); 1613 content::PermissionType::GEOLOCATION));
1610 EXPECT_EQ(1, tester.RecordIgnore(kOrigin1, 1614 EXPECT_EQ(1, tester.RecordIgnore(kOrigin1,
1611 content::PermissionType::NOTIFICATIONS)); 1615 content::PermissionType::NOTIFICATIONS));
1612 tester.ShouldChangeDismissalToBlock(kOrigin1, 1616 tester.ShouldChangeDismissalToBlock(kOrigin1,
1613 content::PermissionType::MIDI_SYSEX); 1617 content::PermissionType::MIDI_SYSEX);
1614 EXPECT_EQ(1, tester.RecordIgnore(kOrigin2, 1618 EXPECT_EQ(1, tester.RecordIgnore(kOrigin2,
1615 content::PermissionType::DURABLE_STORAGE)); 1619 content::PermissionType::DURABLE_STORAGE));
1616 tester.ShouldChangeDismissalToBlock(kOrigin2, 1620 tester.ShouldChangeDismissalToBlock(kOrigin2,
1617 content::PermissionType::NOTIFICATIONS); 1621 content::PermissionType::NOTIFICATIONS);
1618 1622
1619 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), 1623 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(),
1620 BrowsingDataRemover::REMOVE_SITE_USAGE_DATA, 1624 { &kBrowsingDataTypeSiteUsageData },
1621 std::move(filter_builder_2)); 1625 std::move(filter_builder_2));
1622 1626
1623 // kOrigin2 should be gone, but kOrigin1 remains. 1627 // kOrigin2 should be gone, but kOrigin1 remains.
1624 EXPECT_EQ(2, tester.GetIgnoreCount(kOrigin1, 1628 EXPECT_EQ(2, tester.GetIgnoreCount(kOrigin1,
1625 content::PermissionType::GEOLOCATION)); 1629 content::PermissionType::GEOLOCATION));
1626 EXPECT_EQ(1, tester.GetIgnoreCount(kOrigin1, 1630 EXPECT_EQ(1, tester.GetIgnoreCount(kOrigin1,
1627 content::PermissionType::NOTIFICATIONS)); 1631 content::PermissionType::NOTIFICATIONS));
1628 EXPECT_EQ(1, tester.GetDismissCount(kOrigin1, 1632 EXPECT_EQ(1, tester.GetDismissCount(kOrigin1,
1629 content::PermissionType::MIDI_SYSEX)); 1633 content::PermissionType::MIDI_SYSEX));
1630 EXPECT_EQ(0, tester.GetIgnoreCount( 1634 EXPECT_EQ(0, tester.GetIgnoreCount(
1631 kOrigin2, content::PermissionType::DURABLE_STORAGE)); 1635 kOrigin2, content::PermissionType::DURABLE_STORAGE));
1632 EXPECT_EQ(0, tester.GetDismissCount( 1636 EXPECT_EQ(0, tester.GetDismissCount(
1633 kOrigin2, content::PermissionType::NOTIFICATIONS)); 1637 kOrigin2, content::PermissionType::NOTIFICATIONS));
1634 1638
1635 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), 1639 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(),
1636 BrowsingDataRemover::REMOVE_SITE_USAGE_DATA, 1640 { &kBrowsingDataTypeSiteUsageData },
1637 false); 1641 false);
1638 1642
1639 // Everything should be gone. 1643 // Everything should be gone.
1640 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, 1644 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1,
1641 content::PermissionType::GEOLOCATION)); 1645 content::PermissionType::GEOLOCATION));
1642 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, 1646 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1,
1643 content::PermissionType::NOTIFICATIONS)); 1647 content::PermissionType::NOTIFICATIONS));
1644 EXPECT_EQ(0, tester.GetDismissCount(kOrigin1, 1648 EXPECT_EQ(0, tester.GetDismissCount(kOrigin1,
1645 content::PermissionType::MIDI_SYSEX)); 1649 content::PermissionType::MIDI_SYSEX));
1646 EXPECT_EQ(0, tester.GetIgnoreCount( 1650 EXPECT_EQ(0, tester.GetIgnoreCount(
(...skipping 13 matching lines...) Expand all
1660 1664
1661 std::vector<std::string> expected = { 1665 std::vector<std::string> expected = {
1662 kOrigin1.host(), kOrigin2.host(), kOrigin3.host() }; 1666 kOrigin1.host(), kOrigin2.host(), kOrigin3.host() };
1663 EXPECT_EQ(expected, tester.GetDomains()); 1667 EXPECT_EQ(expected, tester.GetDomains());
1664 1668
1665 // Delete data with a filter for the registrable domain of |kOrigin3|. 1669 // Delete data with a filter for the registrable domain of |kOrigin3|.
1666 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder( 1670 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder(
1667 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); 1671 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST));
1668 filter_builder->AddRegisterableDomain(kTestRegisterableDomain3); 1672 filter_builder->AddRegisterableDomain(kTestRegisterableDomain3);
1669 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), 1673 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(),
1670 BrowsingDataRemover::REMOVE_PLUGIN_DATA, 1674 { &kBrowsingDataTypePluginData },
1671 std::move(filter_builder)); 1675 std::move(filter_builder));
1672 1676
1673 // Plugin data for |kOrigin3.host()| should have been removed. 1677 // Plugin data for |kOrigin3.host()| should have been removed.
1674 expected.pop_back(); 1678 expected.pop_back();
1675 EXPECT_EQ(expected, tester.GetDomains()); 1679 EXPECT_EQ(expected, tester.GetDomains());
1676 1680
1677 // TODO(msramek): Mock PluginDataRemover and test the complete deletion 1681 // TODO(msramek): Mock PluginDataRemover and test the complete deletion
1678 // of plugin data as well. 1682 // of plugin data as well.
1679 } 1683 }
1680 #endif 1684 #endif
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
1724 bookmark_model, 2, base::Time::UnixEpoch(), 1728 bookmark_model, 2, base::Time::UnixEpoch(),
1725 /*consider_visits_from_desktop=*/false), 1729 /*consider_visits_from_desktop=*/false),
1726 Not(IsEmpty())); 1730 Not(IsEmpty()));
1727 1731
1728 // Inject the bookmark model into the remover. 1732 // Inject the bookmark model into the remover.
1729 BrowsingDataRemover* remover = 1733 BrowsingDataRemover* remover =
1730 BrowsingDataRemoverFactory::GetForBrowserContext(&profile); 1734 BrowsingDataRemoverFactory::GetForBrowserContext(&profile);
1731 1735
1732 BrowsingDataRemoverCompletionObserver completion_observer(remover); 1736 BrowsingDataRemoverCompletionObserver completion_observer(remover);
1733 remover->RemoveAndReply(delete_begin, base::Time::Max(), 1737 remover->RemoveAndReply(delete_begin, base::Time::Max(),
1734 BrowsingDataRemover::REMOVE_HISTORY, 1738 { &kBrowsingDataTypeHistory },
1735 BrowsingDataHelper::ALL, &completion_observer); 1739 BrowsingDataHelper::ALL, &completion_observer);
1736 completion_observer.BlockUntilCompletion(); 1740 completion_observer.BlockUntilCompletion();
1737 1741
1738 // There should be only 1 recently visited bookmarks. 1742 // There should be only 1 recently visited bookmarks.
1739 std::vector<const bookmarks::BookmarkNode*> remaining_nodes = 1743 std::vector<const bookmarks::BookmarkNode*> remaining_nodes =
1740 ntp_snippets::GetRecentlyVisitedBookmarks( 1744 ntp_snippets::GetRecentlyVisitedBookmarks(
1741 bookmark_model, 3, base::Time::UnixEpoch(), 1745 bookmark_model, 3, base::Time::UnixEpoch(),
1742 /*consider_visits_from_desktop=*/true); 1746 /*consider_visits_from_desktop=*/true);
1743 EXPECT_THAT(remaining_nodes, SizeIs(1)); 1747 EXPECT_THAT(remaining_nodes, SizeIs(1));
1744 EXPECT_THAT(remaining_nodes[0]->url().spec(), Eq("http://foo-2.org/")); 1748 EXPECT_THAT(remaining_nodes[0]->url().spec(), Eq("http://foo-2.org/"));
1745 } 1749 }
1746 1750
1747 // Test that the remover clears language model data (normally added by the 1751 // Test that the remover clears language model data (normally added by the
1748 // ChromeTranslateClient). 1752 // ChromeTranslateClient).
1749 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1753 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1750 LanguageModelClearedOnClearingCompleteHistory) { 1754 LanguageModelClearedOnClearingCompleteHistory) {
1751 translate::LanguageModel* language_model = 1755 translate::LanguageModel* language_model =
1752 LanguageModelFactory::GetInstance()->GetForBrowserContext(GetProfile()); 1756 LanguageModelFactory::GetInstance()->GetForBrowserContext(GetProfile());
1753 1757
1754 // Simulate browsing. 1758 // Simulate browsing.
1755 for (int i = 0; i < 100; i++) { 1759 for (int i = 0; i < 100; i++) {
1756 language_model->OnPageVisited("en"); 1760 language_model->OnPageVisited("en");
1757 language_model->OnPageVisited("en"); 1761 language_model->OnPageVisited("en");
1758 language_model->OnPageVisited("en"); 1762 language_model->OnPageVisited("en");
1759 language_model->OnPageVisited("es"); 1763 language_model->OnPageVisited("es");
1760 } 1764 }
1761 1765
1762 // Clearing a part of the history has no effect. 1766 // Clearing a part of the history has no effect.
1763 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), 1767 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(),
1764 BrowsingDataRemover::REMOVE_HISTORY, false); 1768 { &kBrowsingDataTypeHistory }, false);
1765 1769
1766 EXPECT_THAT(language_model->GetTopLanguages(), SizeIs(2)); 1770 EXPECT_THAT(language_model->GetTopLanguages(), SizeIs(2));
1767 EXPECT_THAT(language_model->GetLanguageFrequency("en"), FloatEq(0.75)); 1771 EXPECT_THAT(language_model->GetLanguageFrequency("en"), FloatEq(0.75));
1768 EXPECT_THAT(language_model->GetLanguageFrequency("es"), FloatEq(0.25)); 1772 EXPECT_THAT(language_model->GetLanguageFrequency("es"), FloatEq(0.25));
1769 1773
1770 // Clearing the full history does the trick. 1774 // Clearing the full history does the trick.
1771 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1775 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1772 BrowsingDataRemover::REMOVE_HISTORY, false); 1776 { &kBrowsingDataTypeHistory }, false);
1773 1777
1774 EXPECT_THAT(language_model->GetTopLanguages(), SizeIs(0)); 1778 EXPECT_THAT(language_model->GetTopLanguages(), SizeIs(0));
1775 EXPECT_THAT(language_model->GetLanguageFrequency("en"), FloatEq(0.0)); 1779 EXPECT_THAT(language_model->GetLanguageFrequency("en"), FloatEq(0.0));
1776 EXPECT_THAT(language_model->GetLanguageFrequency("es"), FloatEq(0.0)); 1780 EXPECT_THAT(language_model->GetLanguageFrequency("es"), FloatEq(0.0));
1777 } 1781 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698