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

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: Android compilation 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}, std::move(filter));
952 std::move(filter));
953 962
954 EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask()); 963 EXPECT_EQ(Mask({&kBrowsingDataTypeCookies}), GetRemovalMask());
955 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 964 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
956 EXPECT_TRUE(tester.ContainsCookie()); 965 EXPECT_TRUE(tester.ContainsCookie());
957 966
958 std::unique_ptr<BrowsingDataFilterBuilder> filter2( 967 std::unique_ptr<BrowsingDataFilterBuilder> filter2(
959 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); 968 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST));
960 filter2->AddRegisterableDomain(kTestRegisterableDomain1); 969 filter2->AddRegisterableDomain(kTestRegisterableDomain1);
961 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), 970 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(),
962 BrowsingDataRemover::REMOVE_COOKIES, 971 {&kBrowsingDataTypeCookies}, std::move(filter2));
963 std::move(filter2));
964 EXPECT_FALSE(tester.ContainsCookie()); 972 EXPECT_FALSE(tester.ContainsCookie());
965 } 973 }
966 974
967 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveHistoryForever) { 975 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveHistoryForever) {
968 RemoveHistoryTester tester; 976 RemoveHistoryTester tester;
969 ASSERT_TRUE(tester.Init(GetProfile())); 977 ASSERT_TRUE(tester.Init(GetProfile()));
970 978
971 tester.AddHistory(kOrigin1, base::Time::Now()); 979 tester.AddHistory(kOrigin1, base::Time::Now());
972 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); 980 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1));
973 981
974 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 982 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
975 BrowsingDataRemover::REMOVE_HISTORY, false); 983 {&kBrowsingDataTypeHistory}, false);
976 984
977 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); 985 EXPECT_EQ(Mask({&kBrowsingDataTypeHistory}), GetRemovalMask());
978 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 986 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
979 EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1)); 987 EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1));
980 } 988 }
981 989
982 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveHistoryForLastHour) { 990 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveHistoryForLastHour) {
983 RemoveHistoryTester tester; 991 RemoveHistoryTester tester;
984 ASSERT_TRUE(tester.Init(GetProfile())); 992 ASSERT_TRUE(tester.Init(GetProfile()));
985 993
986 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); 994 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2);
987 995
988 tester.AddHistory(kOrigin1, base::Time::Now()); 996 tester.AddHistory(kOrigin1, base::Time::Now());
989 tester.AddHistory(kOrigin2, two_hours_ago); 997 tester.AddHistory(kOrigin2, two_hours_ago);
990 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); 998 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1));
991 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2)); 999 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2));
992 1000
993 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), 1001 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(),
994 BrowsingDataRemover::REMOVE_HISTORY, false); 1002 {&kBrowsingDataTypeHistory}, false);
995 1003
996 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); 1004 EXPECT_EQ(Mask({&kBrowsingDataTypeHistory}), GetRemovalMask());
997 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 1005 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
998 EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1)); 1006 EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1));
999 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2)); 1007 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2));
1000 } 1008 }
1001 1009
1002 // This should crash (DCHECK) in Debug, but death tests don't work properly 1010 // This should crash (DCHECK) in Debug, but death tests don't work properly
1003 // here. 1011 // here.
1004 // TODO(msramek): To make this testable, the refusal to delete history should 1012 // 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. 1013 // be made a part of interface (e.g. a success value) as opposed to a DCHECK.
1006 #if defined(NDEBUG) && !defined(DCHECK_ALWAYS_ON) 1014 #if defined(NDEBUG) && !defined(DCHECK_ALWAYS_ON)
1007 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveHistoryProhibited) { 1015 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveHistoryProhibited) {
1008 RemoveHistoryTester tester; 1016 RemoveHistoryTester tester;
1009 ASSERT_TRUE(tester.Init(GetProfile())); 1017 ASSERT_TRUE(tester.Init(GetProfile()));
1010 PrefService* prefs = GetProfile()->GetPrefs(); 1018 PrefService* prefs = GetProfile()->GetPrefs();
1011 prefs->SetBoolean(prefs::kAllowDeletingBrowserHistory, false); 1019 prefs->SetBoolean(prefs::kAllowDeletingBrowserHistory, false);
1012 1020
1013 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); 1021 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2);
1014 1022
1015 tester.AddHistory(kOrigin1, base::Time::Now()); 1023 tester.AddHistory(kOrigin1, base::Time::Now());
1016 tester.AddHistory(kOrigin2, two_hours_ago); 1024 tester.AddHistory(kOrigin2, two_hours_ago);
1017 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); 1025 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1));
1018 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2)); 1026 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2));
1019 1027
1020 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), 1028 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(),
1021 BrowsingDataRemover::REMOVE_HISTORY, false); 1029 {&kBrowsingDataTypeHistory}, false);
1022 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); 1030 EXPECT_EQ(Mask({&kBrowsingDataTypeHistory}), GetRemovalMask());
1023 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 1031 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
1024 1032
1025 // Nothing should have been deleted. 1033 // Nothing should have been deleted.
1026 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin1)); 1034 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin1));
1027 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2)); 1035 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2));
1028 } 1036 }
1029 1037
1030 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1038 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1031 RemoveMultipleTypesHistoryProhibited) { 1039 RemoveMultipleTypesHistoryProhibited) {
1032 PrefService* prefs = GetProfile()->GetPrefs(); 1040 PrefService* prefs = GetProfile()->GetPrefs();
1033 prefs->SetBoolean(prefs::kAllowDeletingBrowserHistory, false); 1041 prefs->SetBoolean(prefs::kAllowDeletingBrowserHistory, false);
1034 1042
1035 // Add some history. 1043 // Add some history.
1036 RemoveHistoryTester history_tester; 1044 RemoveHistoryTester history_tester;
1037 ASSERT_TRUE(history_tester.Init(GetProfile())); 1045 ASSERT_TRUE(history_tester.Init(GetProfile()));
1038 history_tester.AddHistory(kOrigin1, base::Time::Now()); 1046 history_tester.AddHistory(kOrigin1, base::Time::Now());
1039 ASSERT_TRUE(history_tester.HistoryContainsURL(kOrigin1)); 1047 ASSERT_TRUE(history_tester.HistoryContainsURL(kOrigin1));
1040 1048
1041 // Expect that passwords will be deleted, as they do not depend 1049 // Expect that passwords will be deleted, as they do not depend
1042 // on |prefs::kAllowDeletingBrowserHistory|. 1050 // on |prefs::kAllowDeletingBrowserHistory|.
1043 RemovePasswordsTester tester(GetProfile()); 1051 RemovePasswordsTester tester(GetProfile());
1044 EXPECT_CALL(*tester.store(), RemoveLoginsByURLAndTimeImpl(_, _, _)); 1052 EXPECT_CALL(*tester.store(), RemoveLoginsByURLAndTimeImpl(_, _, _));
1045 1053
1046 int removal_mask = BrowsingDataRemover::REMOVE_HISTORY | 1054 std::set<const BrowsingDataType*> removal_mask = {
1047 BrowsingDataRemover::REMOVE_PASSWORDS; 1055 &kBrowsingDataTypeHistory, &kBrowsingDataTypePasswords};
1048
1049 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), 1056 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(),
1050 removal_mask, false); 1057 removal_mask, false);
1051 EXPECT_EQ(removal_mask, GetRemovalMask()); 1058 EXPECT_EQ(removal_mask, GetRemovalMask());
1052 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 1059 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
1053 1060
1054 // Verify that history was not deleted. 1061 // Verify that history was not deleted.
1055 EXPECT_TRUE(history_tester.HistoryContainsURL(kOrigin1)); 1062 EXPECT_TRUE(history_tester.HistoryContainsURL(kOrigin1));
1056 } 1063 }
1057 #endif 1064 #endif
1058 1065
1059 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveExternalProtocolData) { 1066 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveExternalProtocolData) {
1060 TestingProfile* profile = GetProfile(); 1067 TestingProfile* profile = GetProfile();
1061 // Add external protocol data on profile. 1068 // Add external protocol data on profile.
1062 base::DictionaryValue prefs; 1069 base::DictionaryValue prefs;
1063 prefs.SetBoolean("tel", true); 1070 prefs.SetBoolean("tel", true);
1064 profile->GetPrefs()->Set(prefs::kExcludedSchemes, prefs); 1071 profile->GetPrefs()->Set(prefs::kExcludedSchemes, prefs);
1065 1072
1066 EXPECT_FALSE( 1073 EXPECT_FALSE(
1067 profile->GetPrefs()->GetDictionary(prefs::kExcludedSchemes)->empty()); 1074 profile->GetPrefs()->GetDictionary(prefs::kExcludedSchemes)->empty());
1068 1075
1069 BlockUntilBrowsingDataRemoved( 1076 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(),
1070 AnHourAgo(), base::Time::Max(), 1077 {&kBrowsingDataTypeExternalProtocolData},
1071 BrowsingDataRemover::REMOVE_EXTERNAL_PROTOCOL_DATA, false); 1078 false);
1072 EXPECT_TRUE( 1079 EXPECT_TRUE(
1073 profile->GetPrefs()->GetDictionary(prefs::kExcludedSchemes)->empty()); 1080 profile->GetPrefs()->GetDictionary(prefs::kExcludedSchemes)->empty());
1074 } 1081 }
1075 1082
1076 // Test that clearing history deletes favicons not associated with bookmarks. 1083 // Test that clearing history deletes favicons not associated with bookmarks.
1077 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveFaviconsForever) { 1084 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveFaviconsForever) {
1078 GURL page_url("http://a"); 1085 GURL page_url("http://a");
1079 1086
1080 RemoveFaviconTester favicon_tester; 1087 RemoveFaviconTester favicon_tester;
1081 ASSERT_TRUE(favicon_tester.Init(GetProfile())); 1088 ASSERT_TRUE(favicon_tester.Init(GetProfile()));
1082 favicon_tester.VisitAndAddFavicon(page_url); 1089 favicon_tester.VisitAndAddFavicon(page_url);
1083 ASSERT_TRUE(favicon_tester.HasFaviconForPageURL(page_url)); 1090 ASSERT_TRUE(favicon_tester.HasFaviconForPageURL(page_url));
1084 1091
1085 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1092 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1086 BrowsingDataRemover::REMOVE_HISTORY, false); 1093 {&kBrowsingDataTypeHistory}, false);
1087 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); 1094 EXPECT_EQ(Mask({&kBrowsingDataTypeHistory}), GetRemovalMask());
1088 EXPECT_FALSE(favicon_tester.HasFaviconForPageURL(page_url)); 1095 EXPECT_FALSE(favicon_tester.HasFaviconForPageURL(page_url));
1089 } 1096 }
1090 1097
1091 // Test that a bookmark's favicon is expired and not deleted when clearing 1098 // Test that a bookmark's favicon is expired and not deleted when clearing
1092 // history. Expiring the favicon causes the bookmark's favicon to be updated 1099 // history. Expiring the favicon causes the bookmark's favicon to be updated
1093 // when the user next visits the bookmarked page. Expiring the bookmark's 1100 // when the user next visits the bookmarked page. Expiring the bookmark's
1094 // favicon is useful when the bookmark's favicon becomes incorrect (See 1101 // favicon is useful when the bookmark's favicon becomes incorrect (See
1095 // crbug.com/474421 for a sample bug which causes this). 1102 // crbug.com/474421 for a sample bug which causes this).
1096 TEST_F(ChromeBrowsingDataRemoverDelegateTest, ExpireBookmarkFavicons) { 1103 TEST_F(ChromeBrowsingDataRemoverDelegateTest, ExpireBookmarkFavicons) {
1097 GURL bookmarked_page("http://a"); 1104 GURL bookmarked_page("http://a");
1098 1105
1099 TestingProfile* profile = GetProfile(); 1106 TestingProfile* profile = GetProfile();
1100 profile->CreateBookmarkModel(true); 1107 profile->CreateBookmarkModel(true);
1101 bookmarks::BookmarkModel* bookmark_model = 1108 bookmarks::BookmarkModel* bookmark_model =
1102 BookmarkModelFactory::GetForBrowserContext(profile); 1109 BookmarkModelFactory::GetForBrowserContext(profile);
1103 bookmarks::test::WaitForBookmarkModelToLoad(bookmark_model); 1110 bookmarks::test::WaitForBookmarkModelToLoad(bookmark_model);
1104 bookmark_model->AddURL(bookmark_model->bookmark_bar_node(), 0, 1111 bookmark_model->AddURL(bookmark_model->bookmark_bar_node(), 0,
1105 base::ASCIIToUTF16("a"), bookmarked_page); 1112 base::ASCIIToUTF16("a"), bookmarked_page);
1106 1113
1107 RemoveFaviconTester favicon_tester; 1114 RemoveFaviconTester favicon_tester;
1108 ASSERT_TRUE(favicon_tester.Init(GetProfile())); 1115 ASSERT_TRUE(favicon_tester.Init(GetProfile()));
1109 favicon_tester.VisitAndAddFavicon(bookmarked_page); 1116 favicon_tester.VisitAndAddFavicon(bookmarked_page);
1110 ASSERT_TRUE(favicon_tester.HasFaviconForPageURL(bookmarked_page)); 1117 ASSERT_TRUE(favicon_tester.HasFaviconForPageURL(bookmarked_page));
1111 1118
1112 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1119 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1113 BrowsingDataRemover::REMOVE_HISTORY, false); 1120 {&kBrowsingDataTypeHistory}, false);
1114 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); 1121 EXPECT_EQ(Mask({&kBrowsingDataTypeHistory}), GetRemovalMask());
1115 EXPECT_TRUE(favicon_tester.HasExpiredFaviconForPageURL(bookmarked_page)); 1122 EXPECT_TRUE(favicon_tester.HasExpiredFaviconForPageURL(bookmarked_page));
1116 } 1123 }
1117 1124
1118 // TODO(crbug.com/589586): Disabled, since history is not yet marked as 1125 // TODO(crbug.com/589586): Disabled, since history is not yet marked as
1119 // a filterable datatype. 1126 // a filterable datatype.
1120 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1127 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1121 DISABLED_TimeBasedHistoryRemoval) { 1128 DISABLED_TimeBasedHistoryRemoval) {
1122 RemoveHistoryTester tester; 1129 RemoveHistoryTester tester;
1123 ASSERT_TRUE(tester.Init(GetProfile())); 1130 ASSERT_TRUE(tester.Init(GetProfile()));
1124 1131
1125 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); 1132 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2);
1126 1133
1127 tester.AddHistory(kOrigin1, base::Time::Now()); 1134 tester.AddHistory(kOrigin1, base::Time::Now());
1128 tester.AddHistory(kOrigin2, two_hours_ago); 1135 tester.AddHistory(kOrigin2, two_hours_ago);
1129 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); 1136 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1));
1130 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2)); 1137 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2));
1131 1138
1132 std::unique_ptr<BrowsingDataFilterBuilder> builder( 1139 std::unique_ptr<BrowsingDataFilterBuilder> builder(
1133 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST)); 1140 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST));
1134 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), 1141 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(),
1135 BrowsingDataRemover::REMOVE_HISTORY, 1142 {&kBrowsingDataTypeHistory}, std::move(builder));
1136 std::move(builder));
1137 1143
1138 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); 1144 EXPECT_EQ(Mask({&kBrowsingDataTypeHistory}), GetRemovalMask());
1139 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 1145 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
1140 EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1)); 1146 EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1));
1141 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2)); 1147 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2));
1142 } 1148 }
1143 1149
1144 // Verify that clearing autofill form data works. 1150 // Verify that clearing autofill form data works.
1145 TEST_F(ChromeBrowsingDataRemoverDelegateTest, AutofillRemovalLastHour) { 1151 TEST_F(ChromeBrowsingDataRemoverDelegateTest, AutofillRemovalLastHour) {
1146 GetProfile()->CreateWebDataService(); 1152 GetProfile()->CreateWebDataService();
1147 RemoveAutofillTester tester(GetProfile()); 1153 RemoveAutofillTester tester(GetProfile());
1148 1154
1149 ASSERT_FALSE(tester.HasProfile()); 1155 ASSERT_FALSE(tester.HasProfile());
1150 tester.AddProfilesAndCards(); 1156 tester.AddProfilesAndCards();
1151 ASSERT_TRUE(tester.HasProfile()); 1157 ASSERT_TRUE(tester.HasProfile());
1152 1158
1153 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), 1159 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(),
1154 BrowsingDataRemover::REMOVE_FORM_DATA, false); 1160 {&kBrowsingDataTypeFormData}, false);
1155 1161
1156 EXPECT_EQ(BrowsingDataRemover::REMOVE_FORM_DATA, GetRemovalMask()); 1162 EXPECT_EQ(Mask({&kBrowsingDataTypeFormData}), GetRemovalMask());
1157 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 1163 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
1158 ASSERT_FALSE(tester.HasProfile()); 1164 ASSERT_FALSE(tester.HasProfile());
1159 } 1165 }
1160 1166
1161 TEST_F(ChromeBrowsingDataRemoverDelegateTest, AutofillRemovalEverything) { 1167 TEST_F(ChromeBrowsingDataRemoverDelegateTest, AutofillRemovalEverything) {
1162 GetProfile()->CreateWebDataService(); 1168 GetProfile()->CreateWebDataService();
1163 RemoveAutofillTester tester(GetProfile()); 1169 RemoveAutofillTester tester(GetProfile());
1164 1170
1165 ASSERT_FALSE(tester.HasProfile()); 1171 ASSERT_FALSE(tester.HasProfile());
1166 tester.AddProfilesAndCards(); 1172 tester.AddProfilesAndCards();
1167 ASSERT_TRUE(tester.HasProfile()); 1173 ASSERT_TRUE(tester.HasProfile());
1168 1174
1169 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1175 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1170 BrowsingDataRemover::REMOVE_FORM_DATA, false); 1176 {&kBrowsingDataTypeFormData}, false);
1171 1177
1172 EXPECT_EQ(BrowsingDataRemover::REMOVE_FORM_DATA, GetRemovalMask()); 1178 EXPECT_EQ(Mask({&kBrowsingDataTypeFormData}), GetRemovalMask());
1173 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 1179 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
1174 ASSERT_FALSE(tester.HasProfile()); 1180 ASSERT_FALSE(tester.HasProfile());
1175 } 1181 }
1176 1182
1177 // Verify that clearing autofill form data works. 1183 // Verify that clearing autofill form data works.
1178 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1184 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1179 AutofillOriginsRemovedWithHistory) { 1185 AutofillOriginsRemovedWithHistory) {
1180 GetProfile()->CreateWebDataService(); 1186 GetProfile()->CreateWebDataService();
1181 RemoveAutofillTester tester(GetProfile()); 1187 RemoveAutofillTester tester(GetProfile());
1182 1188
1183 tester.AddProfilesAndCards(); 1189 tester.AddProfilesAndCards();
1184 EXPECT_FALSE(tester.HasOrigin(std::string())); 1190 EXPECT_FALSE(tester.HasOrigin(std::string()));
1185 EXPECT_TRUE(tester.HasOrigin(kWebOrigin)); 1191 EXPECT_TRUE(tester.HasOrigin(kWebOrigin));
1186 EXPECT_TRUE(tester.HasOrigin(autofill::kSettingsOrigin)); 1192 EXPECT_TRUE(tester.HasOrigin(autofill::kSettingsOrigin));
1187 1193
1188 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), 1194 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(),
1189 BrowsingDataRemover::REMOVE_HISTORY, false); 1195 {&kBrowsingDataTypeHistory}, false);
1190 1196
1191 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); 1197 EXPECT_EQ(Mask({&kBrowsingDataTypeHistory}), GetRemovalMask());
1192 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 1198 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
1193 EXPECT_TRUE(tester.HasOrigin(std::string())); 1199 EXPECT_TRUE(tester.HasOrigin(std::string()));
1194 EXPECT_FALSE(tester.HasOrigin(kWebOrigin)); 1200 EXPECT_FALSE(tester.HasOrigin(kWebOrigin));
1195 EXPECT_TRUE(tester.HasOrigin(autofill::kSettingsOrigin)); 1201 EXPECT_TRUE(tester.HasOrigin(autofill::kSettingsOrigin));
1196 } 1202 }
1197 1203
1198 TEST_F(ChromeBrowsingDataRemoverDelegateTest, ZeroSuggestCacheClear) { 1204 TEST_F(ChromeBrowsingDataRemoverDelegateTest, ZeroSuggestCacheClear) {
1199 PrefService* prefs = GetProfile()->GetPrefs(); 1205 PrefService* prefs = GetProfile()->GetPrefs();
1200 prefs->SetString(omnibox::kZeroSuggestCachedResults, 1206 prefs->SetString(omnibox::kZeroSuggestCachedResults,
1201 "[\"\", [\"foo\", \"bar\"]]"); 1207 "[\"\", [\"foo\", \"bar\"]]");
1202 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1208 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1203 BrowsingDataRemover::REMOVE_COOKIES, false); 1209 {&kBrowsingDataTypeCookies}, false);
1204 1210
1205 // Expect the prefs to be cleared when cookies are removed. 1211 // Expect the prefs to be cleared when cookies are removed.
1206 EXPECT_TRUE(prefs->GetString(omnibox::kZeroSuggestCachedResults).empty()); 1212 EXPECT_TRUE(prefs->GetString(omnibox::kZeroSuggestCachedResults).empty());
1207 EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask()); 1213 EXPECT_EQ(Mask({&kBrowsingDataTypeCookies}), GetRemovalMask());
1208 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 1214 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
1209 } 1215 }
1210 1216
1211 #if defined(OS_CHROMEOS) 1217 #if defined(OS_CHROMEOS)
1212 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1218 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1213 ContentProtectionPlatformKeysRemoval) { 1219 ContentProtectionPlatformKeysRemoval) {
1214 chromeos::ScopedTestDeviceSettingsService test_device_settings_service; 1220 chromeos::ScopedTestDeviceSettingsService test_device_settings_service;
1215 chromeos::ScopedTestCrosSettings test_cros_settings; 1221 chromeos::ScopedTestCrosSettings test_cros_settings;
1216 chromeos::MockUserManager* mock_user_manager = 1222 chromeos::MockUserManager* mock_user_manager =
1217 new testing::NiceMock<chromeos::MockUserManager>(); 1223 new testing::NiceMock<chromeos::MockUserManager>();
1218 mock_user_manager->SetActiveUser( 1224 mock_user_manager->SetActiveUser(
1219 AccountId::FromUserEmail("test@example.com")); 1225 AccountId::FromUserEmail("test@example.com"));
1220 chromeos::ScopedUserManagerEnabler user_manager_enabler(mock_user_manager); 1226 chromeos::ScopedUserManagerEnabler user_manager_enabler(mock_user_manager);
1221 1227
1222 std::unique_ptr<chromeos::DBusThreadManagerSetter> dbus_setter = 1228 std::unique_ptr<chromeos::DBusThreadManagerSetter> dbus_setter =
1223 chromeos::DBusThreadManager::GetSetterForTesting(); 1229 chromeos::DBusThreadManager::GetSetterForTesting();
1224 chromeos::MockCryptohomeClient* cryptohome_client = 1230 chromeos::MockCryptohomeClient* cryptohome_client =
1225 new chromeos::MockCryptohomeClient; 1231 new chromeos::MockCryptohomeClient;
1226 dbus_setter->SetCryptohomeClient( 1232 dbus_setter->SetCryptohomeClient(
1227 std::unique_ptr<chromeos::CryptohomeClient>(cryptohome_client)); 1233 std::unique_ptr<chromeos::CryptohomeClient>(cryptohome_client));
1228 1234
1229 // Expect exactly one call. No calls means no attempt to delete keys and more 1235 // Expect exactly one call. No calls means no attempt to delete keys and more
1230 // than one call means a significant performance problem. 1236 // than one call means a significant performance problem.
1231 EXPECT_CALL(*cryptohome_client, TpmAttestationDeleteKeys(_, _, _, _)) 1237 EXPECT_CALL(*cryptohome_client, TpmAttestationDeleteKeys(_, _, _, _))
1232 .WillOnce(WithArgs<3>(Invoke(FakeDBusCall))); 1238 .WillOnce(WithArgs<3>(Invoke(FakeDBusCall)));
1233 1239
1234 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1240 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1235 BrowsingDataRemover::REMOVE_MEDIA_LICENSES, 1241 {&kBrowsingDataTypeMediaLicenses}, false);
1236 false);
1237 1242
1238 chromeos::DBusThreadManager::Shutdown(); 1243 chromeos::DBusThreadManager::Shutdown();
1239 } 1244 }
1240 #endif 1245 #endif
1241 1246
1242 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_Null) { 1247 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_Null) {
1243 const ClearDomainReliabilityTester& tester = 1248 const ClearDomainReliabilityTester& tester =
1244 clear_domain_reliability_tester(); 1249 clear_domain_reliability_tester();
1245 1250
1246 EXPECT_EQ(0u, tester.clear_count()); 1251 EXPECT_EQ(0u, tester.clear_count());
1247 } 1252 }
1248 1253
1249 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_Beacons) { 1254 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_Beacons) {
1250 const ClearDomainReliabilityTester& tester = 1255 const ClearDomainReliabilityTester& tester =
1251 clear_domain_reliability_tester(); 1256 clear_domain_reliability_tester();
1252 1257
1253 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1258 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1254 BrowsingDataRemover::REMOVE_HISTORY, false); 1259 {&kBrowsingDataTypeHistory}, false);
1255 EXPECT_EQ(1u, tester.clear_count()); 1260 EXPECT_EQ(1u, tester.clear_count());
1256 EXPECT_EQ(CLEAR_BEACONS, tester.last_clear_mode()); 1261 EXPECT_EQ(CLEAR_BEACONS, tester.last_clear_mode());
1257 EXPECT_TRUE(ProbablySameFilters( 1262 EXPECT_TRUE(ProbablySameFilters(
1258 BrowsingDataFilterBuilder::BuildNoopFilter(), tester.last_filter())); 1263 BrowsingDataFilterBuilder::BuildNoopFilter(), tester.last_filter()));
1259 } 1264 }
1260 1265
1261 // TODO(crbug.com/589586): Disabled, since history is not yet marked as 1266 // TODO(crbug.com/589586): Disabled, since history is not yet marked as
1262 // a filterable datatype. 1267 // a filterable datatype.
1263 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1268 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1264 DISABLED_DomainReliability_Beacons_WithFilter) { 1269 DISABLED_DomainReliability_Beacons_WithFilter) {
1265 const ClearDomainReliabilityTester& tester = 1270 const ClearDomainReliabilityTester& tester =
1266 clear_domain_reliability_tester(); 1271 clear_domain_reliability_tester();
1267 1272
1268 std::unique_ptr<BrowsingDataFilterBuilder> builder( 1273 std::unique_ptr<BrowsingDataFilterBuilder> builder(
1269 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); 1274 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST));
1270 builder->AddRegisterableDomain(kTestRegisterableDomain1); 1275 builder->AddRegisterableDomain(kTestRegisterableDomain1);
1271 1276
1272 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), 1277 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(),
1273 BrowsingDataRemover::REMOVE_HISTORY, 1278 {&kBrowsingDataTypeHistory}, builder->Copy());
1274 builder->Copy());
1275 EXPECT_EQ(1u, tester.clear_count()); 1279 EXPECT_EQ(1u, tester.clear_count());
1276 EXPECT_EQ(CLEAR_BEACONS, tester.last_clear_mode()); 1280 EXPECT_EQ(CLEAR_BEACONS, tester.last_clear_mode());
1277 EXPECT_TRUE(ProbablySameFilters( 1281 EXPECT_TRUE(ProbablySameFilters(
1278 builder->BuildGeneralFilter(), tester.last_filter())); 1282 builder->BuildGeneralFilter(), tester.last_filter()));
1279 } 1283 }
1280 1284
1281 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_Contexts) { 1285 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_Contexts) {
1282 const ClearDomainReliabilityTester& tester = 1286 const ClearDomainReliabilityTester& tester =
1283 clear_domain_reliability_tester(); 1287 clear_domain_reliability_tester();
1284 1288
1285 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1289 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1286 BrowsingDataRemover::REMOVE_COOKIES, false); 1290 {&kBrowsingDataTypeCookies}, false);
1287 EXPECT_EQ(1u, tester.clear_count()); 1291 EXPECT_EQ(1u, tester.clear_count());
1288 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode()); 1292 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode());
1289 EXPECT_TRUE(ProbablySameFilters( 1293 EXPECT_TRUE(ProbablySameFilters(
1290 BrowsingDataFilterBuilder::BuildNoopFilter(), tester.last_filter())); 1294 BrowsingDataFilterBuilder::BuildNoopFilter(), tester.last_filter()));
1291 } 1295 }
1292 1296
1293 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1297 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1294 DomainReliability_Contexts_WithFilter) { 1298 DomainReliability_Contexts_WithFilter) {
1295 const ClearDomainReliabilityTester& tester = 1299 const ClearDomainReliabilityTester& tester =
1296 clear_domain_reliability_tester(); 1300 clear_domain_reliability_tester();
1297 1301
1298 std::unique_ptr<BrowsingDataFilterBuilder> builder( 1302 std::unique_ptr<BrowsingDataFilterBuilder> builder(
1299 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); 1303 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST));
1300 builder->AddRegisterableDomain(kTestRegisterableDomain1); 1304 builder->AddRegisterableDomain(kTestRegisterableDomain1);
1301 1305
1302 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), 1306 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(),
1303 BrowsingDataRemover::REMOVE_COOKIES, 1307 {&kBrowsingDataTypeCookies}, builder->Copy());
1304 builder->Copy());
1305 EXPECT_EQ(1u, tester.clear_count()); 1308 EXPECT_EQ(1u, tester.clear_count());
1306 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode()); 1309 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode());
1307 EXPECT_TRUE(ProbablySameFilters( 1310 EXPECT_TRUE(ProbablySameFilters(
1308 builder->BuildGeneralFilter(), tester.last_filter())); 1311 builder->BuildGeneralFilter(), tester.last_filter()));
1309 } 1312 }
1310 1313
1311 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_ContextsWin) { 1314 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_ContextsWin) {
1312 const ClearDomainReliabilityTester& tester = 1315 const ClearDomainReliabilityTester& tester =
1313 clear_domain_reliability_tester(); 1316 clear_domain_reliability_tester();
1314 1317
1315 BlockUntilBrowsingDataRemoved( 1318 BlockUntilBrowsingDataRemoved(
1316 base::Time(), base::Time::Max(), 1319 base::Time(), base::Time::Max(),
1317 BrowsingDataRemover::REMOVE_HISTORY | BrowsingDataRemover::REMOVE_COOKIES, 1320 {&kBrowsingDataTypeHistory, &kBrowsingDataTypeCookies}, false);
1318 false);
1319 EXPECT_EQ(1u, tester.clear_count()); 1321 EXPECT_EQ(1u, tester.clear_count());
1320 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode()); 1322 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode());
1321 } 1323 }
1322 1324
1323 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1325 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1324 DomainReliability_ProtectedOrigins) { 1326 DomainReliability_ProtectedOrigins) {
1325 const ClearDomainReliabilityTester& tester = 1327 const ClearDomainReliabilityTester& tester =
1326 clear_domain_reliability_tester(); 1328 clear_domain_reliability_tester();
1327 1329
1328 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1330 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1329 BrowsingDataRemover::REMOVE_COOKIES, true); 1331 {&kBrowsingDataTypeCookies}, true);
1330 EXPECT_EQ(1u, tester.clear_count()); 1332 EXPECT_EQ(1u, tester.clear_count());
1331 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode()); 1333 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode());
1332 } 1334 }
1333 1335
1334 // TODO(juliatuttle): This isn't actually testing the no-monitor case, since 1336 // TODO(juliatuttle): This isn't actually testing the no-monitor case, since
1335 // BrowsingDataRemoverTest now creates one unconditionally, since it's needed 1337 // BrowsingDataRemoverTest now creates one unconditionally, since it's needed
1336 // for some unrelated test cases. This should be fixed so it tests the no- 1338 // for some unrelated test cases. This should be fixed so it tests the no-
1337 // monitor case again. 1339 // monitor case again.
1338 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1340 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1339 DISABLED_DomainReliability_NoMonitor) { 1341 DISABLED_DomainReliability_NoMonitor) {
1340 BlockUntilBrowsingDataRemoved( 1342 BlockUntilBrowsingDataRemoved(
1341 base::Time(), base::Time::Max(), 1343 base::Time(), base::Time::Max(),
1342 BrowsingDataRemover::REMOVE_HISTORY | BrowsingDataRemover::REMOVE_COOKIES, 1344 {&kBrowsingDataTypeHistory, &kBrowsingDataTypeCookies}, false);
1343 false);
1344 } 1345 }
1345 1346
1346 // Tests that the deletion of downloads completes successfully and that 1347 // Tests that the deletion of downloads completes successfully and that
1347 // ChromeDownloadManagerDelegate is correctly created and shut down. 1348 // ChromeDownloadManagerDelegate is correctly created and shut down.
1348 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveDownloads) { 1349 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveDownloads) {
1349 RemoveDownloadsTester tester(GetProfile()); 1350 RemoveDownloadsTester tester(GetProfile());
1350 1351
1351 EXPECT_CALL( 1352 EXPECT_CALL(
1352 *tester.download_manager(), RemoveDownloadsByURLAndTime(_, _, _)); 1353 *tester.download_manager(), RemoveDownloadsByURLAndTime(_, _, _));
1353 1354
1354 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1355 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1355 BrowsingDataRemover::REMOVE_DOWNLOADS, false); 1356 {&kBrowsingDataTypeDownloads}, false);
1356 } 1357 }
1357 1358
1358 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemovePasswordStatistics) { 1359 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemovePasswordStatistics) {
1359 RemovePasswordsTester tester(GetProfile()); 1360 RemovePasswordsTester tester(GetProfile());
1360 base::Callback<bool(const GURL&)> empty_filter; 1361 base::Callback<bool(const GURL&)> empty_filter;
1361 1362
1362 EXPECT_CALL(*tester.store(), RemoveStatisticsByOriginAndTimeImpl( 1363 EXPECT_CALL(*tester.store(), RemoveStatisticsByOriginAndTimeImpl(
1363 ProbablySameFilter(empty_filter), 1364 ProbablySameFilter(empty_filter),
1364 base::Time(), base::Time::Max())); 1365 base::Time(), base::Time::Max()));
1365 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1366 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1366 BrowsingDataRemover::REMOVE_HISTORY, false); 1367 {&kBrowsingDataTypeHistory}, false);
1367 } 1368 }
1368 1369
1369 // TODO(crbug.com/589586): Disabled, since history is not yet marked as 1370 // TODO(crbug.com/589586): Disabled, since history is not yet marked as
1370 // a filterable datatype. 1371 // a filterable datatype.
1371 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1372 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1372 DISABLED_RemovePasswordStatisticsByOrigin) { 1373 DISABLED_RemovePasswordStatisticsByOrigin) {
1373 RemovePasswordsTester tester(GetProfile()); 1374 RemovePasswordsTester tester(GetProfile());
1374 1375
1375 std::unique_ptr<BrowsingDataFilterBuilder> builder( 1376 std::unique_ptr<BrowsingDataFilterBuilder> builder(
1376 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); 1377 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST));
1377 builder->AddRegisterableDomain(kTestRegisterableDomain1); 1378 builder->AddRegisterableDomain(kTestRegisterableDomain1);
1378 base::Callback<bool(const GURL&)> filter = builder->BuildGeneralFilter(); 1379 base::Callback<bool(const GURL&)> filter = builder->BuildGeneralFilter();
1379 1380
1380 EXPECT_CALL(*tester.store(), 1381 EXPECT_CALL(*tester.store(),
1381 RemoveStatisticsByOriginAndTimeImpl( 1382 RemoveStatisticsByOriginAndTimeImpl(
1382 ProbablySameFilter(filter), base::Time(), base::Time::Max())); 1383 ProbablySameFilter(filter), base::Time(), base::Time::Max()));
1383 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), 1384 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(),
1384 BrowsingDataRemover::REMOVE_HISTORY, 1385 {&kBrowsingDataTypeHistory}, std::move(builder));
1385 std::move(builder));
1386 } 1386 }
1387 1387
1388 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemovePasswordsByTimeOnly) { 1388 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemovePasswordsByTimeOnly) {
1389 RemovePasswordsTester tester(GetProfile()); 1389 RemovePasswordsTester tester(GetProfile());
1390 base::Callback<bool(const GURL&)> filter = 1390 base::Callback<bool(const GURL&)> filter =
1391 BrowsingDataFilterBuilder::BuildNoopFilter(); 1391 BrowsingDataFilterBuilder::BuildNoopFilter();
1392 1392
1393 EXPECT_CALL(*tester.store(), 1393 EXPECT_CALL(*tester.store(),
1394 RemoveLoginsByURLAndTimeImpl(ProbablySameFilter(filter), _, _)) 1394 RemoveLoginsByURLAndTimeImpl(ProbablySameFilter(filter), _, _))
1395 .WillOnce(Return(password_manager::PasswordStoreChangeList())); 1395 .WillOnce(Return(password_manager::PasswordStoreChangeList()));
1396 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1396 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1397 BrowsingDataRemover::REMOVE_PASSWORDS, false); 1397 {&kBrowsingDataTypePasswords}, false);
1398 } 1398 }
1399 1399
1400 // Disabled, since passwords are not yet marked as a filterable datatype. 1400 // Disabled, since passwords are not yet marked as a filterable datatype.
1401 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1401 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1402 DISABLED_RemovePasswordsByOrigin) { 1402 DISABLED_RemovePasswordsByOrigin) {
1403 RemovePasswordsTester tester(GetProfile()); 1403 RemovePasswordsTester tester(GetProfile());
1404 std::unique_ptr<BrowsingDataFilterBuilder> builder( 1404 std::unique_ptr<BrowsingDataFilterBuilder> builder(
1405 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); 1405 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST));
1406 builder->AddRegisterableDomain(kTestRegisterableDomain1); 1406 builder->AddRegisterableDomain(kTestRegisterableDomain1);
1407 base::Callback<bool(const GURL&)> filter = builder->BuildGeneralFilter(); 1407 base::Callback<bool(const GURL&)> filter = builder->BuildGeneralFilter();
1408 1408
1409 EXPECT_CALL(*tester.store(), 1409 EXPECT_CALL(*tester.store(),
1410 RemoveLoginsByURLAndTimeImpl(ProbablySameFilter(filter), _, _)) 1410 RemoveLoginsByURLAndTimeImpl(ProbablySameFilter(filter), _, _))
1411 .WillOnce(Return(password_manager::PasswordStoreChangeList())); 1411 .WillOnce(Return(password_manager::PasswordStoreChangeList()));
1412 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), 1412 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(),
1413 BrowsingDataRemover::REMOVE_PASSWORDS, 1413 {&kBrowsingDataTypePasswords},
1414 std::move(builder)); 1414 std::move(builder));
1415 } 1415 }
1416 1416
1417 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DisableAutoSignIn) { 1417 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DisableAutoSignIn) {
1418 RemovePasswordsTester tester(GetProfile()); 1418 RemovePasswordsTester tester(GetProfile());
1419 base::Callback<bool(const GURL&)> empty_filter = 1419 base::Callback<bool(const GURL&)> empty_filter =
1420 BrowsingDataFilterBuilder::BuildNoopFilter(); 1420 BrowsingDataFilterBuilder::BuildNoopFilter();
1421 1421
1422 EXPECT_CALL( 1422 EXPECT_CALL(
1423 *tester.store(), 1423 *tester.store(),
1424 DisableAutoSignInForOriginsImpl(ProbablySameFilter(empty_filter))) 1424 DisableAutoSignInForOriginsImpl(ProbablySameFilter(empty_filter)))
1425 .WillOnce(Return(password_manager::PasswordStoreChangeList())); 1425 .WillOnce(Return(password_manager::PasswordStoreChangeList()));
1426 1426
1427 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1427 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1428 BrowsingDataRemover::REMOVE_COOKIES, false); 1428 {&kBrowsingDataTypeCookies}, false);
1429 } 1429 }
1430 1430
1431 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1431 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1432 DisableAutoSignInAfterRemovingPasswords) { 1432 DisableAutoSignInAfterRemovingPasswords) {
1433 RemovePasswordsTester tester(GetProfile()); 1433 RemovePasswordsTester tester(GetProfile());
1434 base::Callback<bool(const GURL&)> empty_filter = 1434 base::Callback<bool(const GURL&)> empty_filter =
1435 BrowsingDataFilterBuilder::BuildNoopFilter(); 1435 BrowsingDataFilterBuilder::BuildNoopFilter();
1436 1436
1437 EXPECT_CALL(*tester.store(), RemoveLoginsByURLAndTimeImpl(_, _, _)) 1437 EXPECT_CALL(*tester.store(), RemoveLoginsByURLAndTimeImpl(_, _, _))
1438 .WillOnce(Return(password_manager::PasswordStoreChangeList())); 1438 .WillOnce(Return(password_manager::PasswordStoreChangeList()));
1439 EXPECT_CALL( 1439 EXPECT_CALL(
1440 *tester.store(), 1440 *tester.store(),
1441 DisableAutoSignInForOriginsImpl(ProbablySameFilter(empty_filter))) 1441 DisableAutoSignInForOriginsImpl(ProbablySameFilter(empty_filter)))
1442 .WillOnce(Return(password_manager::PasswordStoreChangeList())); 1442 .WillOnce(Return(password_manager::PasswordStoreChangeList()));
1443 1443
1444 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1444 BlockUntilBrowsingDataRemoved(
1445 BrowsingDataRemover::REMOVE_COOKIES | 1445 base::Time(), base::Time::Max(),
1446 BrowsingDataRemover::REMOVE_PASSWORDS, 1446 {&kBrowsingDataTypeCookies, &kBrowsingDataTypePasswords}, false);
1447 false);
1448 } 1447 }
1449 1448
1450 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1449 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1451 RemoveContentSettingsWithBlacklist) { 1450 RemoveContentSettingsWithBlacklist) {
1452 // Add our settings. 1451 // Add our settings.
1453 HostContentSettingsMap* host_content_settings_map = 1452 HostContentSettingsMap* host_content_settings_map =
1454 HostContentSettingsMapFactory::GetForProfile(GetProfile()); 1453 HostContentSettingsMapFactory::GetForProfile(GetProfile());
1455 host_content_settings_map->SetWebsiteSettingDefaultScope( 1454 host_content_settings_map->SetWebsiteSettingDefaultScope(
1456 kOrigin1, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), 1455 kOrigin1, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(),
1457 base::MakeUnique<base::DictionaryValue>()); 1456 base::MakeUnique<base::DictionaryValue>());
1458 host_content_settings_map->SetWebsiteSettingDefaultScope( 1457 host_content_settings_map->SetWebsiteSettingDefaultScope(
1459 kOrigin2, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), 1458 kOrigin2, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(),
1460 base::MakeUnique<base::DictionaryValue>()); 1459 base::MakeUnique<base::DictionaryValue>());
1461 host_content_settings_map->SetWebsiteSettingDefaultScope( 1460 host_content_settings_map->SetWebsiteSettingDefaultScope(
1462 kOrigin3, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), 1461 kOrigin3, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(),
1463 base::MakeUnique<base::DictionaryValue>()); 1462 base::MakeUnique<base::DictionaryValue>());
1464 host_content_settings_map->SetWebsiteSettingDefaultScope( 1463 host_content_settings_map->SetWebsiteSettingDefaultScope(
1465 kOrigin4, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), 1464 kOrigin4, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(),
1466 base::MakeUnique<base::DictionaryValue>()); 1465 base::MakeUnique<base::DictionaryValue>());
1467 1466
1468 // Clear all except for origin1 and origin3. 1467 // Clear all except for origin1 and origin3.
1469 std::unique_ptr<BrowsingDataFilterBuilder> filter( 1468 std::unique_ptr<BrowsingDataFilterBuilder> filter(
1470 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST)); 1469 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST));
1471 filter->AddRegisterableDomain(kTestRegisterableDomain1); 1470 filter->AddRegisterableDomain(kTestRegisterableDomain1);
1472 filter->AddRegisterableDomain(kTestRegisterableDomain3); 1471 filter->AddRegisterableDomain(kTestRegisterableDomain3);
1473 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), 1472 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(),
1474 BrowsingDataRemover::REMOVE_SITE_USAGE_DATA, 1473 {&kBrowsingDataTypeSiteUsageData},
1475 std::move(filter)); 1474 std::move(filter));
1476 1475
1477 EXPECT_EQ(BrowsingDataRemover::REMOVE_SITE_USAGE_DATA, GetRemovalMask()); 1476 EXPECT_EQ(Mask({&kBrowsingDataTypeSiteUsageData}), GetRemovalMask());
1478 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 1477 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
1479 1478
1480 // Verify we only have true, and they're origin1, origin3, and origin4. 1479 // Verify we only have true, and they're origin1, origin3, and origin4.
1481 ContentSettingsForOneType host_settings; 1480 ContentSettingsForOneType host_settings;
1482 host_content_settings_map->GetSettingsForOneType( 1481 host_content_settings_map->GetSettingsForOneType(
1483 CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), &host_settings); 1482 CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), &host_settings);
1484 EXPECT_EQ(3u, host_settings.size()); 1483 EXPECT_EQ(3u, host_settings.size());
1485 EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(kOrigin1), 1484 EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(kOrigin1),
1486 host_settings[0].primary_pattern) 1485 host_settings[0].primary_pattern)
1487 << host_settings[0].primary_pattern.ToString(); 1486 << host_settings[0].primary_pattern.ToString();
(...skipping 15 matching lines...) Expand all
1503 CONTENT_SETTING_ALLOW); 1502 CONTENT_SETTING_ALLOW);
1504 durable_permission.UpdateContentSetting(kOrigin2, GURL(), 1503 durable_permission.UpdateContentSetting(kOrigin2, GURL(),
1505 CONTENT_SETTING_ALLOW); 1504 CONTENT_SETTING_ALLOW);
1506 1505
1507 // Clear all except for origin1 and origin3. 1506 // Clear all except for origin1 and origin3.
1508 std::unique_ptr<BrowsingDataFilterBuilder> filter( 1507 std::unique_ptr<BrowsingDataFilterBuilder> filter(
1509 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST)); 1508 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST));
1510 filter->AddRegisterableDomain(kTestRegisterableDomain1); 1509 filter->AddRegisterableDomain(kTestRegisterableDomain1);
1511 filter->AddRegisterableDomain(kTestRegisterableDomain3); 1510 filter->AddRegisterableDomain(kTestRegisterableDomain3);
1512 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), 1511 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(),
1513 BrowsingDataRemover::REMOVE_DURABLE_PERMISSION, 1512 {&kBrowsingDataTypeDurablePermission},
1514 std::move(filter)); 1513 std::move(filter));
1515 1514
1516 EXPECT_EQ(BrowsingDataRemover::REMOVE_DURABLE_PERMISSION, GetRemovalMask()); 1515 EXPECT_EQ(Mask({&kBrowsingDataTypeDurablePermission}), GetRemovalMask());
1517 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 1516 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
1518 1517
1519 // Verify we only have allow for the first origin. 1518 // Verify we only have allow for the first origin.
1520 ContentSettingsForOneType host_settings; 1519 ContentSettingsForOneType host_settings;
1521 host_content_settings_map->GetSettingsForOneType( 1520 host_content_settings_map->GetSettingsForOneType(
1522 CONTENT_SETTINGS_TYPE_DURABLE_STORAGE, std::string(), &host_settings); 1521 CONTENT_SETTINGS_TYPE_DURABLE_STORAGE, std::string(), &host_settings);
1523 1522
1524 ASSERT_EQ(2u, host_settings.size()); 1523 ASSERT_EQ(2u, host_settings.size());
1525 // Only the first should should have a setting. 1524 // Only the first should should have a setting.
1526 EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(kOrigin1), 1525 EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(kOrigin1),
(...skipping 21 matching lines...) Expand all
1548 net::HttpAuthCache* http_auth_cache = http_session->http_auth_cache(); 1547 net::HttpAuthCache* http_auth_cache = http_session->http_auth_cache();
1549 http_auth_cache->Add(kOrigin1, kTestRealm, net::HttpAuth::AUTH_SCHEME_BASIC, 1548 http_auth_cache->Add(kOrigin1, kTestRealm, net::HttpAuth::AUTH_SCHEME_BASIC,
1550 "test challenge", 1549 "test challenge",
1551 net::AuthCredentials(base::ASCIIToUTF16("foo"), 1550 net::AuthCredentials(base::ASCIIToUTF16("foo"),
1552 base::ASCIIToUTF16("bar")), 1551 base::ASCIIToUTF16("bar")),
1553 "/"); 1552 "/");
1554 CHECK(http_auth_cache->Lookup(kOrigin1, kTestRealm, 1553 CHECK(http_auth_cache->Lookup(kOrigin1, kTestRealm,
1555 net::HttpAuth::AUTH_SCHEME_BASIC)); 1554 net::HttpAuth::AUTH_SCHEME_BASIC));
1556 1555
1557 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1556 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1558 BrowsingDataRemover::REMOVE_PASSWORDS, false); 1557 {&kBrowsingDataTypePasswords}, false);
1559 1558
1560 EXPECT_EQ(nullptr, http_auth_cache->Lookup(kOrigin1, kTestRealm, 1559 EXPECT_EQ(nullptr, http_auth_cache->Lookup(kOrigin1, kTestRealm,
1561 net::HttpAuth::AUTH_SCHEME_BASIC)); 1560 net::HttpAuth::AUTH_SCHEME_BASIC));
1562 } 1561 }
1563 1562
1564 TEST_F(ChromeBrowsingDataRemoverDelegateTest, ClearPermissionPromptCounts) { 1563 TEST_F(ChromeBrowsingDataRemoverDelegateTest, ClearPermissionPromptCounts) {
1565 RemovePermissionPromptCountsTest tester(GetProfile()); 1564 RemovePermissionPromptCountsTest tester(GetProfile());
1566 1565
1567 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder_1( 1566 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder_1(
1568 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); 1567 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST));
1569 filter_builder_1->AddRegisterableDomain(kTestRegisterableDomain1); 1568 filter_builder_1->AddRegisterableDomain(kTestRegisterableDomain1);
1570 1569
1571 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder_2( 1570 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder_2(
1572 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST)); 1571 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST));
1573 filter_builder_2->AddRegisterableDomain(kTestRegisterableDomain1); 1572 filter_builder_2->AddRegisterableDomain(kTestRegisterableDomain1);
1574 1573
1575 { 1574 {
1576 // Test REMOVE_HISTORY. 1575 // Test kBrowsingDataTypeHistory.
1577 EXPECT_EQ(1, tester.RecordIgnore(kOrigin1, 1576 EXPECT_EQ(1, tester.RecordIgnore(kOrigin1,
1578 CONTENT_SETTINGS_TYPE_GEOLOCATION)); 1577 CONTENT_SETTINGS_TYPE_GEOLOCATION));
1579 EXPECT_EQ(2, tester.RecordIgnore(kOrigin1, 1578 EXPECT_EQ(2, tester.RecordIgnore(kOrigin1,
1580 CONTENT_SETTINGS_TYPE_GEOLOCATION)); 1579 CONTENT_SETTINGS_TYPE_GEOLOCATION));
1581 EXPECT_EQ(1, tester.RecordIgnore(kOrigin1, 1580 EXPECT_EQ(1, tester.RecordIgnore(kOrigin1,
1582 CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); 1581 CONTENT_SETTINGS_TYPE_NOTIFICATIONS));
1583 tester.ShouldChangeDismissalToBlock(kOrigin1, 1582 tester.ShouldChangeDismissalToBlock(kOrigin1,
1584 CONTENT_SETTINGS_TYPE_MIDI_SYSEX); 1583 CONTENT_SETTINGS_TYPE_MIDI_SYSEX);
1585 EXPECT_EQ(1, tester.RecordIgnore(kOrigin2, 1584 EXPECT_EQ(1, tester.RecordIgnore(kOrigin2,
1586 CONTENT_SETTINGS_TYPE_DURABLE_STORAGE)); 1585 CONTENT_SETTINGS_TYPE_DURABLE_STORAGE));
1587 tester.ShouldChangeDismissalToBlock(kOrigin2, 1586 tester.ShouldChangeDismissalToBlock(kOrigin2,
1588 CONTENT_SETTINGS_TYPE_NOTIFICATIONS); 1587 CONTENT_SETTINGS_TYPE_NOTIFICATIONS);
1589 1588
1590 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), 1589 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(),
1591 BrowsingDataRemover::REMOVE_SITE_USAGE_DATA, 1590 {&kBrowsingDataTypeSiteUsageData},
1592 std::move(filter_builder_1)); 1591 std::move(filter_builder_1));
1593 1592
1594 // kOrigin1 should be gone, but kOrigin2 remains. 1593 // kOrigin1 should be gone, but kOrigin2 remains.
1595 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, 1594 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1,
1596 CONTENT_SETTINGS_TYPE_GEOLOCATION)); 1595 CONTENT_SETTINGS_TYPE_GEOLOCATION));
1597 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, 1596 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1,
1598 CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); 1597 CONTENT_SETTINGS_TYPE_NOTIFICATIONS));
1599 EXPECT_EQ(0, tester.GetDismissCount(kOrigin1, 1598 EXPECT_EQ(0, tester.GetDismissCount(kOrigin1,
1600 CONTENT_SETTINGS_TYPE_MIDI_SYSEX)); 1599 CONTENT_SETTINGS_TYPE_MIDI_SYSEX));
1601 EXPECT_EQ(1, tester.GetIgnoreCount( 1600 EXPECT_EQ(1, tester.GetIgnoreCount(
1602 kOrigin2, CONTENT_SETTINGS_TYPE_DURABLE_STORAGE)); 1601 kOrigin2, CONTENT_SETTINGS_TYPE_DURABLE_STORAGE));
1603 EXPECT_EQ(1, tester.GetDismissCount( 1602 EXPECT_EQ(1, tester.GetDismissCount(
1604 kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); 1603 kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS));
1605 1604
1606 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), 1605 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(),
1607 BrowsingDataRemover::REMOVE_HISTORY, false); 1606 {&kBrowsingDataTypeHistory}, false);
1608 1607
1609 // Everything should be gone. 1608 // Everything should be gone.
1610 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, 1609 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1,
1611 CONTENT_SETTINGS_TYPE_GEOLOCATION)); 1610 CONTENT_SETTINGS_TYPE_GEOLOCATION));
1612 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, 1611 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1,
1613 CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); 1612 CONTENT_SETTINGS_TYPE_NOTIFICATIONS));
1614 EXPECT_EQ(0, tester.GetDismissCount(kOrigin1, 1613 EXPECT_EQ(0, tester.GetDismissCount(kOrigin1,
1615 CONTENT_SETTINGS_TYPE_MIDI_SYSEX)); 1614 CONTENT_SETTINGS_TYPE_MIDI_SYSEX));
1616 EXPECT_EQ(0, tester.GetIgnoreCount( 1615 EXPECT_EQ(0, tester.GetIgnoreCount(
1617 kOrigin2, CONTENT_SETTINGS_TYPE_DURABLE_STORAGE)); 1616 kOrigin2, CONTENT_SETTINGS_TYPE_DURABLE_STORAGE));
1618 EXPECT_EQ(0, tester.GetDismissCount( 1617 EXPECT_EQ(0, tester.GetDismissCount(
1619 kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); 1618 kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS));
1620 } 1619 }
1621 { 1620 {
1622 // Test REMOVE_SITE_DATA. 1621 // Test kBrowsingDataTypeSiteUsageData.
1623 EXPECT_EQ(1, tester.RecordIgnore(kOrigin1, 1622 EXPECT_EQ(1, tester.RecordIgnore(kOrigin1,
1624 CONTENT_SETTINGS_TYPE_GEOLOCATION)); 1623 CONTENT_SETTINGS_TYPE_GEOLOCATION));
1625 EXPECT_EQ(2, tester.RecordIgnore(kOrigin1, 1624 EXPECT_EQ(2, tester.RecordIgnore(kOrigin1,
1626 CONTENT_SETTINGS_TYPE_GEOLOCATION)); 1625 CONTENT_SETTINGS_TYPE_GEOLOCATION));
1627 EXPECT_EQ(1, tester.RecordIgnore(kOrigin1, 1626 EXPECT_EQ(1, tester.RecordIgnore(kOrigin1,
1628 CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); 1627 CONTENT_SETTINGS_TYPE_NOTIFICATIONS));
1629 tester.ShouldChangeDismissalToBlock(kOrigin1, 1628 tester.ShouldChangeDismissalToBlock(kOrigin1,
1630 CONTENT_SETTINGS_TYPE_MIDI_SYSEX); 1629 CONTENT_SETTINGS_TYPE_MIDI_SYSEX);
1631 EXPECT_EQ(1, tester.RecordIgnore(kOrigin2, 1630 EXPECT_EQ(1, tester.RecordIgnore(kOrigin2,
1632 CONTENT_SETTINGS_TYPE_DURABLE_STORAGE)); 1631 CONTENT_SETTINGS_TYPE_DURABLE_STORAGE));
1633 tester.ShouldChangeDismissalToBlock(kOrigin2, 1632 tester.ShouldChangeDismissalToBlock(kOrigin2,
1634 CONTENT_SETTINGS_TYPE_NOTIFICATIONS); 1633 CONTENT_SETTINGS_TYPE_NOTIFICATIONS);
1635 1634
1636 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), 1635 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(),
1637 BrowsingDataRemover::REMOVE_SITE_USAGE_DATA, 1636 {&kBrowsingDataTypeSiteUsageData},
1638 std::move(filter_builder_2)); 1637 std::move(filter_builder_2));
1639 1638
1640 // kOrigin2 should be gone, but kOrigin1 remains. 1639 // kOrigin2 should be gone, but kOrigin1 remains.
1641 EXPECT_EQ(2, tester.GetIgnoreCount(kOrigin1, 1640 EXPECT_EQ(2, tester.GetIgnoreCount(kOrigin1,
1642 CONTENT_SETTINGS_TYPE_GEOLOCATION)); 1641 CONTENT_SETTINGS_TYPE_GEOLOCATION));
1643 EXPECT_EQ(1, tester.GetIgnoreCount(kOrigin1, 1642 EXPECT_EQ(1, tester.GetIgnoreCount(kOrigin1,
1644 CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); 1643 CONTENT_SETTINGS_TYPE_NOTIFICATIONS));
1645 EXPECT_EQ(1, tester.GetDismissCount(kOrigin1, 1644 EXPECT_EQ(1, tester.GetDismissCount(kOrigin1,
1646 CONTENT_SETTINGS_TYPE_MIDI_SYSEX)); 1645 CONTENT_SETTINGS_TYPE_MIDI_SYSEX));
1647 EXPECT_EQ(0, tester.GetIgnoreCount( 1646 EXPECT_EQ(0, tester.GetIgnoreCount(
1648 kOrigin2, CONTENT_SETTINGS_TYPE_DURABLE_STORAGE)); 1647 kOrigin2, CONTENT_SETTINGS_TYPE_DURABLE_STORAGE));
1649 EXPECT_EQ(0, tester.GetDismissCount( 1648 EXPECT_EQ(0, tester.GetDismissCount(
1650 kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); 1649 kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS));
1651 1650
1652 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), 1651 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(),
1653 BrowsingDataRemover::REMOVE_SITE_USAGE_DATA, 1652 {&kBrowsingDataTypeSiteUsageData}, false);
1654 false);
1655 1653
1656 // Everything should be gone. 1654 // Everything should be gone.
1657 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, 1655 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1,
1658 CONTENT_SETTINGS_TYPE_GEOLOCATION)); 1656 CONTENT_SETTINGS_TYPE_GEOLOCATION));
1659 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, 1657 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1,
1660 CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); 1658 CONTENT_SETTINGS_TYPE_NOTIFICATIONS));
1661 EXPECT_EQ(0, tester.GetDismissCount(kOrigin1, 1659 EXPECT_EQ(0, tester.GetDismissCount(kOrigin1,
1662 CONTENT_SETTINGS_TYPE_MIDI_SYSEX)); 1660 CONTENT_SETTINGS_TYPE_MIDI_SYSEX));
1663 EXPECT_EQ(0, tester.GetIgnoreCount( 1661 EXPECT_EQ(0, tester.GetIgnoreCount(
1664 kOrigin2, CONTENT_SETTINGS_TYPE_DURABLE_STORAGE)); 1662 kOrigin2, CONTENT_SETTINGS_TYPE_DURABLE_STORAGE));
(...skipping 12 matching lines...) Expand all
1677 1675
1678 std::vector<std::string> expected = { 1676 std::vector<std::string> expected = {
1679 kOrigin1.host(), kOrigin2.host(), kOrigin3.host() }; 1677 kOrigin1.host(), kOrigin2.host(), kOrigin3.host() };
1680 EXPECT_EQ(expected, tester.GetDomains()); 1678 EXPECT_EQ(expected, tester.GetDomains());
1681 1679
1682 // Delete data with a filter for the registrable domain of |kOrigin3|. 1680 // Delete data with a filter for the registrable domain of |kOrigin3|.
1683 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder( 1681 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder(
1684 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); 1682 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST));
1685 filter_builder->AddRegisterableDomain(kTestRegisterableDomain3); 1683 filter_builder->AddRegisterableDomain(kTestRegisterableDomain3);
1686 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), 1684 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(),
1687 BrowsingDataRemover::REMOVE_PLUGIN_DATA, 1685 {&kBrowsingDataTypePluginData},
1688 std::move(filter_builder)); 1686 std::move(filter_builder));
1689 1687
1690 // Plugin data for |kOrigin3.host()| should have been removed. 1688 // Plugin data for |kOrigin3.host()| should have been removed.
1691 expected.pop_back(); 1689 expected.pop_back();
1692 EXPECT_EQ(expected, tester.GetDomains()); 1690 EXPECT_EQ(expected, tester.GetDomains());
1693 1691
1694 // TODO(msramek): Mock PluginDataRemover and test the complete deletion 1692 // TODO(msramek): Mock PluginDataRemover and test the complete deletion
1695 // of plugin data as well. 1693 // of plugin data as well.
1696 } 1694 }
1697 #endif 1695 #endif
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
1741 bookmark_model, 2, base::Time::UnixEpoch(), 1739 bookmark_model, 2, base::Time::UnixEpoch(),
1742 /*consider_visits_from_desktop=*/false), 1740 /*consider_visits_from_desktop=*/false),
1743 Not(IsEmpty())); 1741 Not(IsEmpty()));
1744 1742
1745 // Inject the bookmark model into the remover. 1743 // Inject the bookmark model into the remover.
1746 BrowsingDataRemover* remover = 1744 BrowsingDataRemover* remover =
1747 BrowsingDataRemoverFactory::GetForBrowserContext(&profile); 1745 BrowsingDataRemoverFactory::GetForBrowserContext(&profile);
1748 1746
1749 BrowsingDataRemoverCompletionObserver completion_observer(remover); 1747 BrowsingDataRemoverCompletionObserver completion_observer(remover);
1750 remover->RemoveAndReply(delete_begin, base::Time::Max(), 1748 remover->RemoveAndReply(delete_begin, base::Time::Max(),
1751 BrowsingDataRemover::REMOVE_HISTORY, 1749 {&kBrowsingDataTypeHistory}, BrowsingDataHelper::ALL,
1752 BrowsingDataHelper::ALL, &completion_observer); 1750 &completion_observer);
1753 completion_observer.BlockUntilCompletion(); 1751 completion_observer.BlockUntilCompletion();
1754 1752
1755 // There should be only 1 recently visited bookmarks. 1753 // There should be only 1 recently visited bookmarks.
1756 std::vector<const bookmarks::BookmarkNode*> remaining_nodes = 1754 std::vector<const bookmarks::BookmarkNode*> remaining_nodes =
1757 ntp_snippets::GetRecentlyVisitedBookmarks( 1755 ntp_snippets::GetRecentlyVisitedBookmarks(
1758 bookmark_model, 3, base::Time::UnixEpoch(), 1756 bookmark_model, 3, base::Time::UnixEpoch(),
1759 /*consider_visits_from_desktop=*/true); 1757 /*consider_visits_from_desktop=*/true);
1760 EXPECT_THAT(remaining_nodes, SizeIs(1)); 1758 EXPECT_THAT(remaining_nodes, SizeIs(1));
1761 EXPECT_THAT(remaining_nodes[0]->url().spec(), Eq("http://foo-2.org/")); 1759 EXPECT_THAT(remaining_nodes[0]->url().spec(), Eq("http://foo-2.org/"));
1762 } 1760 }
1763 1761
1764 // Test that the remover clears language model data (normally added by the 1762 // Test that the remover clears language model data (normally added by the
1765 // ChromeTranslateClient). 1763 // ChromeTranslateClient).
1766 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1764 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1767 LanguageModelClearedOnClearingCompleteHistory) { 1765 LanguageModelClearedOnClearingCompleteHistory) {
1768 translate::LanguageModel* language_model = 1766 translate::LanguageModel* language_model =
1769 LanguageModelFactory::GetInstance()->GetForBrowserContext(GetProfile()); 1767 LanguageModelFactory::GetInstance()->GetForBrowserContext(GetProfile());
1770 1768
1771 // Simulate browsing. 1769 // Simulate browsing.
1772 for (int i = 0; i < 100; i++) { 1770 for (int i = 0; i < 100; i++) {
1773 language_model->OnPageVisited("en"); 1771 language_model->OnPageVisited("en");
1774 language_model->OnPageVisited("en"); 1772 language_model->OnPageVisited("en");
1775 language_model->OnPageVisited("en"); 1773 language_model->OnPageVisited("en");
1776 language_model->OnPageVisited("es"); 1774 language_model->OnPageVisited("es");
1777 } 1775 }
1778 1776
1779 // Clearing a part of the history has no effect. 1777 // Clearing a part of the history has no effect.
1780 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), 1778 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(),
1781 BrowsingDataRemover::REMOVE_HISTORY, false); 1779 {&kBrowsingDataTypeHistory}, false);
1782 1780
1783 EXPECT_THAT(language_model->GetTopLanguages(), SizeIs(2)); 1781 EXPECT_THAT(language_model->GetTopLanguages(), SizeIs(2));
1784 EXPECT_THAT(language_model->GetLanguageFrequency("en"), FloatEq(0.75)); 1782 EXPECT_THAT(language_model->GetLanguageFrequency("en"), FloatEq(0.75));
1785 EXPECT_THAT(language_model->GetLanguageFrequency("es"), FloatEq(0.25)); 1783 EXPECT_THAT(language_model->GetLanguageFrequency("es"), FloatEq(0.25));
1786 1784
1787 // Clearing the full history does the trick. 1785 // Clearing the full history does the trick.
1788 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1786 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1789 BrowsingDataRemover::REMOVE_HISTORY, false); 1787 {&kBrowsingDataTypeHistory}, false);
1790 1788
1791 EXPECT_THAT(language_model->GetTopLanguages(), SizeIs(0)); 1789 EXPECT_THAT(language_model->GetTopLanguages(), SizeIs(0));
1792 EXPECT_THAT(language_model->GetLanguageFrequency("en"), FloatEq(0.0)); 1790 EXPECT_THAT(language_model->GetLanguageFrequency("en"), FloatEq(0.0));
1793 EXPECT_THAT(language_model->GetLanguageFrequency("es"), FloatEq(0.0)); 1791 EXPECT_THAT(language_model->GetLanguageFrequency("es"), FloatEq(0.0));
1794 } 1792 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698