OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 } |
OLD | NEW |