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