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" |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
75 #if defined(OS_CHROMEOS) | 75 #if defined(OS_CHROMEOS) |
76 #include "chrome/browser/chromeos/login/users/mock_user_manager.h" | 76 #include "chrome/browser/chromeos/login/users/mock_user_manager.h" |
77 #include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" | 77 #include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" |
78 #include "chrome/browser/chromeos/settings/cros_settings.h" | 78 #include "chrome/browser/chromeos/settings/cros_settings.h" |
79 #include "chrome/browser/chromeos/settings/device_settings_service.h" | 79 #include "chrome/browser/chromeos/settings/device_settings_service.h" |
80 #include "chromeos/dbus/dbus_thread_manager.h" | 80 #include "chromeos/dbus/dbus_thread_manager.h" |
81 #include "chromeos/dbus/mock_cryptohome_client.h" | 81 #include "chromeos/dbus/mock_cryptohome_client.h" |
82 #include "components/signin/core/account_id/account_id.h" | 82 #include "components/signin/core/account_id/account_id.h" |
83 #endif | 83 #endif |
84 | 84 |
| 85 #if BUILDFLAG(ENABLE_EXTENSIONS) |
| 86 #include "chrome/browser/extensions/mock_extension_special_storage_policy.h" |
| 87 #endif |
| 88 |
85 #if BUILDFLAG(ENABLE_PLUGINS) | 89 #if BUILDFLAG(ENABLE_PLUGINS) |
86 #include "chrome/browser/browsing_data/mock_browsing_data_flash_lso_helper.h" | 90 #include "chrome/browser/browsing_data/mock_browsing_data_flash_lso_helper.h" |
87 #endif | 91 #endif |
88 | 92 |
89 using content::BrowsingDataFilterBuilder; | 93 using content::BrowsingDataFilterBuilder; |
90 using domain_reliability::CLEAR_BEACONS; | 94 using domain_reliability::CLEAR_BEACONS; |
91 using domain_reliability::CLEAR_CONTEXTS; | 95 using domain_reliability::CLEAR_CONTEXTS; |
92 using domain_reliability::DomainReliabilityClearMode; | 96 using domain_reliability::DomainReliabilityClearMode; |
93 using domain_reliability::DomainReliabilityMonitor; | 97 using domain_reliability::DomainReliabilityMonitor; |
94 using domain_reliability::DomainReliabilityService; | 98 using domain_reliability::DomainReliabilityService; |
(...skipping 14 matching lines...) Expand all Loading... |
109 using testing::WithArgs; | 113 using testing::WithArgs; |
110 | 114 |
111 namespace { | 115 namespace { |
112 | 116 |
113 const char kTestOrigin1[] = "http://host1.com:1/"; | 117 const char kTestOrigin1[] = "http://host1.com:1/"; |
114 const char kTestRegisterableDomain1[] = "host1.com"; | 118 const char kTestRegisterableDomain1[] = "host1.com"; |
115 const char kTestOrigin2[] = "http://host2.com:1/"; | 119 const char kTestOrigin2[] = "http://host2.com:1/"; |
116 const char kTestOrigin3[] = "http://host3.com:1/"; | 120 const char kTestOrigin3[] = "http://host3.com:1/"; |
117 const char kTestRegisterableDomain3[] = "host3.com"; | 121 const char kTestRegisterableDomain3[] = "host3.com"; |
118 const char kTestOrigin4[] = "https://host3.com:1/"; | 122 const char kTestOrigin4[] = "https://host3.com:1/"; |
| 123 const char kTestOriginExt[] = "chrome-extension://abcdefghijklmnopqrstuvwxyz/"; |
| 124 const char kTestOriginDevTools[] = "chrome-devtools://abcdefghijklmnopqrstuvw/"; |
119 | 125 |
120 // For HTTP auth. | 126 // For HTTP auth. |
121 const char kTestRealm[] = "TestRealm"; | 127 const char kTestRealm[] = "TestRealm"; |
122 | 128 |
123 // For Autofill. | 129 // For Autofill. |
124 const char kWebOrigin[] = "https://www.example.com/"; | 130 const char kWebOrigin[] = "https://www.example.com/"; |
125 | 131 |
126 const GURL kOrigin1(kTestOrigin1); | 132 const GURL kOrigin1(kTestOrigin1); |
127 const GURL kOrigin2(kTestOrigin2); | 133 const GURL kOrigin2(kTestOrigin2); |
128 const GURL kOrigin3(kTestOrigin3); | 134 const GURL kOrigin3(kTestOrigin3); |
129 const GURL kOrigin4(kTestOrigin4); | 135 const GURL kOrigin4(kTestOrigin4); |
130 | 136 |
| 137 const GURL kOriginExt(kTestOriginExt); |
| 138 const GURL kOriginDevTools(kTestOriginDevTools); |
| 139 |
| 140 // Shorthands for origin types. |
| 141 #if BUILDFLAG(ENABLE_EXTENSIONS) |
| 142 const int kExtension = ChromeBrowsingDataRemoverDelegate::ORIGIN_TYPE_EXTENSION; |
| 143 #endif |
| 144 const int kProtected = BrowsingDataRemover::ORIGIN_TYPE_PROTECTED_WEB; |
| 145 const int kUnprotected = BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB; |
| 146 |
131 // Testers -------------------------------------------------------------------- | 147 // Testers -------------------------------------------------------------------- |
132 | 148 |
133 #if defined(OS_ANDROID) | 149 #if defined(OS_ANDROID) |
134 class TestWebappRegistry : public WebappRegistry { | 150 class TestWebappRegistry : public WebappRegistry { |
135 public: | 151 public: |
136 TestWebappRegistry() : WebappRegistry() { } | 152 TestWebappRegistry() : WebappRegistry() { } |
137 | 153 |
138 void UnregisterWebappsForUrls( | 154 void UnregisterWebappsForUrls( |
139 const base::Callback<bool(const GURL&)>& url_filter) override { | 155 const base::Callback<bool(const GURL&)>& url_filter) override { |
140 // Mocks out a JNI call. | 156 // Mocks out a JNI call. |
(...skipping 710 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
851 | 867 |
852 TestingBrowserProcess::GetGlobal()->SetLocalState(nullptr); | 868 TestingBrowserProcess::GetGlobal()->SetLocalState(nullptr); |
853 } | 869 } |
854 | 870 |
855 ~ChromeBrowsingDataRemoverDelegateTest() override {} | 871 ~ChromeBrowsingDataRemoverDelegateTest() override {} |
856 | 872 |
857 void BlockUntilBrowsingDataRemoved(const base::Time& delete_begin, | 873 void BlockUntilBrowsingDataRemoved(const base::Time& delete_begin, |
858 const base::Time& delete_end, | 874 const base::Time& delete_end, |
859 int remove_mask, | 875 int remove_mask, |
860 bool include_protected_origins) { | 876 bool include_protected_origins) { |
861 int origin_type_mask = BrowsingDataHelper::UNPROTECTED_WEB; | 877 int origin_type_mask = BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB; |
862 if (include_protected_origins) | 878 if (include_protected_origins) { |
863 origin_type_mask |= BrowsingDataHelper::PROTECTED_WEB; | 879 origin_type_mask |= BrowsingDataRemover::ORIGIN_TYPE_PROTECTED_WEB; |
| 880 } |
864 | 881 |
865 BrowsingDataRemoverCompletionObserver completion_observer(remover_); | 882 BrowsingDataRemoverCompletionObserver completion_observer(remover_); |
866 remover_->RemoveAndReply( | 883 remover_->RemoveAndReply( |
867 delete_begin, delete_end, remove_mask, origin_type_mask, | 884 delete_begin, delete_end, remove_mask, origin_type_mask, |
868 &completion_observer); | 885 &completion_observer); |
869 completion_observer.BlockUntilCompletion(); | 886 completion_observer.BlockUntilCompletion(); |
870 } | 887 } |
871 | 888 |
872 void BlockUntilOriginDataRemoved( | 889 void BlockUntilOriginDataRemoved( |
873 const base::Time& delete_begin, | 890 const base::Time& delete_begin, |
874 const base::Time& delete_end, | 891 const base::Time& delete_end, |
875 int remove_mask, | 892 int remove_mask, |
876 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder) { | 893 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder) { |
877 BrowsingDataRemoverCompletionObserver completion_observer(remover_); | 894 BrowsingDataRemoverCompletionObserver completion_observer(remover_); |
878 static_cast<BrowsingDataRemoverImpl*>(remover_) | 895 static_cast<BrowsingDataRemoverImpl*>(remover_)->RemoveWithFilterAndReply( |
879 ->RemoveWithFilterAndReply(delete_begin, delete_end, remove_mask, | 896 delete_begin, delete_end, remove_mask, |
880 BrowsingDataHelper::UNPROTECTED_WEB, | 897 BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB, |
881 std::move(filter_builder), | 898 std::move(filter_builder), &completion_observer); |
882 &completion_observer); | |
883 completion_observer.BlockUntilCompletion(); | 899 completion_observer.BlockUntilCompletion(); |
884 } | 900 } |
885 | 901 |
886 const base::Time& GetBeginTime() { | 902 const base::Time& GetBeginTime() { |
887 return remover_->GetLastUsedBeginTime(); | 903 return remover_->GetLastUsedBeginTime(); |
888 } | 904 } |
889 | 905 |
890 int GetRemovalMask() { | 906 int GetRemovalMask() { |
891 return remover_->GetLastUsedRemovalMask(); | 907 return remover_->GetLastUsedRemovalMask(); |
892 } | 908 } |
893 | 909 |
894 int GetOriginTypeMask() { | 910 int GetOriginTypeMask() { |
895 return remover_->GetLastUsedOriginTypeMask(); | 911 return remover_->GetLastUsedOriginTypeMask(); |
896 } | 912 } |
897 | 913 |
898 TestingProfile* GetProfile() { | 914 TestingProfile* GetProfile() { |
899 return profile_.get(); | 915 return profile_.get(); |
900 } | 916 } |
901 | 917 |
902 const ClearDomainReliabilityTester& clear_domain_reliability_tester() { | 918 const ClearDomainReliabilityTester& clear_domain_reliability_tester() { |
903 return clear_domain_reliability_tester_; | 919 return clear_domain_reliability_tester_; |
904 } | 920 } |
905 | 921 |
| 922 bool Match(const GURL& origin, |
| 923 int mask, |
| 924 storage::SpecialStoragePolicy* policy) { |
| 925 return remover_->DoesOriginMatchMask(mask, origin, policy); |
| 926 } |
| 927 |
906 private: | 928 private: |
907 // Cached pointer to BrowsingDataRemoverImpl for access to testing methods. | 929 // Cached pointer to BrowsingDataRemoverImpl for access to testing methods. |
908 BrowsingDataRemover* remover_; | 930 BrowsingDataRemover* remover_; |
909 | 931 |
910 content::TestBrowserThreadBundle thread_bundle_; | 932 content::TestBrowserThreadBundle thread_bundle_; |
911 std::unique_ptr<TestingProfile> profile_; | 933 std::unique_ptr<TestingProfile> profile_; |
912 | 934 |
913 // Needed to mock out DomainReliabilityService, even for unrelated tests. | 935 // Needed to mock out DomainReliabilityService, even for unrelated tests. |
914 ClearDomainReliabilityTester clear_domain_reliability_tester_; | 936 ClearDomainReliabilityTester clear_domain_reliability_tester_; |
915 | 937 |
916 DISALLOW_COPY_AND_ASSIGN(ChromeBrowsingDataRemoverDelegateTest); | 938 DISALLOW_COPY_AND_ASSIGN(ChromeBrowsingDataRemoverDelegateTest); |
917 }; | 939 }; |
918 | 940 |
919 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveSafeBrowsingCookieForever) { | 941 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveSafeBrowsingCookieForever) { |
920 RemoveSafeBrowsingCookieTester tester; | 942 RemoveSafeBrowsingCookieTester tester; |
921 | 943 |
922 tester.AddCookie(); | 944 tester.AddCookie(); |
923 ASSERT_TRUE(tester.ContainsCookie()); | 945 ASSERT_TRUE(tester.ContainsCookie()); |
924 | 946 |
925 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), | 947 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), |
926 BrowsingDataRemover::REMOVE_COOKIES, false); | 948 BrowsingDataRemover::DATA_TYPE_COOKIES, false); |
927 | 949 |
928 EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask()); | 950 EXPECT_EQ(BrowsingDataRemover::DATA_TYPE_COOKIES, GetRemovalMask()); |
929 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); | 951 EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB, |
| 952 GetOriginTypeMask()); |
930 EXPECT_FALSE(tester.ContainsCookie()); | 953 EXPECT_FALSE(tester.ContainsCookie()); |
931 } | 954 } |
932 | 955 |
933 TEST_F(ChromeBrowsingDataRemoverDelegateTest, | 956 TEST_F(ChromeBrowsingDataRemoverDelegateTest, |
934 RemoveSafeBrowsingCookieLastHour) { | 957 RemoveSafeBrowsingCookieLastHour) { |
935 RemoveSafeBrowsingCookieTester tester; | 958 RemoveSafeBrowsingCookieTester tester; |
936 | 959 |
937 tester.AddCookie(); | 960 tester.AddCookie(); |
938 ASSERT_TRUE(tester.ContainsCookie()); | 961 ASSERT_TRUE(tester.ContainsCookie()); |
939 | 962 |
940 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), | 963 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), |
941 BrowsingDataRemover::REMOVE_COOKIES, false); | 964 BrowsingDataRemover::DATA_TYPE_COOKIES, false); |
942 | 965 |
943 EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask()); | 966 EXPECT_EQ(BrowsingDataRemover::DATA_TYPE_COOKIES, GetRemovalMask()); |
944 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); | 967 EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB, |
| 968 GetOriginTypeMask()); |
945 // Removing with time period other than all time should not clear safe | 969 // Removing with time period other than all time should not clear safe |
946 // browsing cookies. | 970 // browsing cookies. |
947 EXPECT_TRUE(tester.ContainsCookie()); | 971 EXPECT_TRUE(tester.ContainsCookie()); |
948 } | 972 } |
949 | 973 |
950 TEST_F(ChromeBrowsingDataRemoverDelegateTest, | 974 TEST_F(ChromeBrowsingDataRemoverDelegateTest, |
951 RemoveSafeBrowsingCookieForeverWithPredicate) { | 975 RemoveSafeBrowsingCookieForeverWithPredicate) { |
952 RemoveSafeBrowsingCookieTester tester; | 976 RemoveSafeBrowsingCookieTester tester; |
953 | 977 |
954 tester.AddCookie(); | 978 tester.AddCookie(); |
955 ASSERT_TRUE(tester.ContainsCookie()); | 979 ASSERT_TRUE(tester.ContainsCookie()); |
956 std::unique_ptr<BrowsingDataFilterBuilder> filter( | 980 std::unique_ptr<BrowsingDataFilterBuilder> filter( |
957 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST)); | 981 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST)); |
958 filter->AddRegisterableDomain(kTestRegisterableDomain1); | 982 filter->AddRegisterableDomain(kTestRegisterableDomain1); |
959 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), | 983 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), |
960 BrowsingDataRemover::REMOVE_COOKIES, | 984 BrowsingDataRemover::DATA_TYPE_COOKIES, |
961 std::move(filter)); | 985 std::move(filter)); |
962 | 986 |
963 EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask()); | 987 EXPECT_EQ(BrowsingDataRemover::DATA_TYPE_COOKIES, GetRemovalMask()); |
964 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); | 988 EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB, |
| 989 GetOriginTypeMask()); |
965 EXPECT_TRUE(tester.ContainsCookie()); | 990 EXPECT_TRUE(tester.ContainsCookie()); |
966 | 991 |
967 std::unique_ptr<BrowsingDataFilterBuilder> filter2( | 992 std::unique_ptr<BrowsingDataFilterBuilder> filter2( |
968 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); | 993 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); |
969 filter2->AddRegisterableDomain(kTestRegisterableDomain1); | 994 filter2->AddRegisterableDomain(kTestRegisterableDomain1); |
970 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), | 995 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), |
971 BrowsingDataRemover::REMOVE_COOKIES, | 996 BrowsingDataRemover::DATA_TYPE_COOKIES, |
972 std::move(filter2)); | 997 std::move(filter2)); |
973 EXPECT_FALSE(tester.ContainsCookie()); | 998 EXPECT_FALSE(tester.ContainsCookie()); |
974 } | 999 } |
975 | 1000 |
976 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveHistoryForever) { | 1001 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveHistoryForever) { |
977 RemoveHistoryTester tester; | 1002 RemoveHistoryTester tester; |
978 ASSERT_TRUE(tester.Init(GetProfile())); | 1003 ASSERT_TRUE(tester.Init(GetProfile())); |
979 | 1004 |
980 tester.AddHistory(kOrigin1, base::Time::Now()); | 1005 tester.AddHistory(kOrigin1, base::Time::Now()); |
981 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); | 1006 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); |
982 | 1007 |
983 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), | 1008 BlockUntilBrowsingDataRemoved( |
984 BrowsingDataRemover::REMOVE_HISTORY, false); | 1009 base::Time(), base::Time::Max(), |
| 1010 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, false); |
985 | 1011 |
986 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); | 1012 EXPECT_EQ(ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, |
987 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); | 1013 GetRemovalMask()); |
| 1014 EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB, |
| 1015 GetOriginTypeMask()); |
988 EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1)); | 1016 EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1)); |
989 } | 1017 } |
990 | 1018 |
991 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveHistoryForLastHour) { | 1019 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveHistoryForLastHour) { |
992 RemoveHistoryTester tester; | 1020 RemoveHistoryTester tester; |
993 ASSERT_TRUE(tester.Init(GetProfile())); | 1021 ASSERT_TRUE(tester.Init(GetProfile())); |
994 | 1022 |
995 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); |
996 | 1024 |
997 tester.AddHistory(kOrigin1, base::Time::Now()); | 1025 tester.AddHistory(kOrigin1, base::Time::Now()); |
998 tester.AddHistory(kOrigin2, two_hours_ago); | 1026 tester.AddHistory(kOrigin2, two_hours_ago); |
999 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); | 1027 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); |
1000 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2)); | 1028 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2)); |
1001 | 1029 |
1002 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), | 1030 BlockUntilBrowsingDataRemoved( |
1003 BrowsingDataRemover::REMOVE_HISTORY, false); | 1031 AnHourAgo(), base::Time::Max(), |
| 1032 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, false); |
1004 | 1033 |
1005 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); | 1034 EXPECT_EQ(ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, |
1006 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); | 1035 GetRemovalMask()); |
| 1036 EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB, |
| 1037 GetOriginTypeMask()); |
1007 EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1)); | 1038 EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1)); |
1008 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2)); | 1039 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2)); |
1009 } | 1040 } |
1010 | 1041 |
1011 // This should crash (DCHECK) in Debug, but death tests don't work properly | 1042 // This should crash (DCHECK) in Debug, but death tests don't work properly |
1012 // here. | 1043 // here. |
1013 // TODO(msramek): To make this testable, the refusal to delete history should | 1044 // TODO(msramek): To make this testable, the refusal to delete history should |
1014 // be made a part of interface (e.g. a success value) as opposed to a DCHECK. | 1045 // be made a part of interface (e.g. a success value) as opposed to a DCHECK. |
1015 #if defined(NDEBUG) && !defined(DCHECK_ALWAYS_ON) | 1046 #if defined(NDEBUG) && !defined(DCHECK_ALWAYS_ON) |
1016 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveHistoryProhibited) { | 1047 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveHistoryProhibited) { |
1017 RemoveHistoryTester tester; | 1048 RemoveHistoryTester tester; |
1018 ASSERT_TRUE(tester.Init(GetProfile())); | 1049 ASSERT_TRUE(tester.Init(GetProfile())); |
1019 PrefService* prefs = GetProfile()->GetPrefs(); | 1050 PrefService* prefs = GetProfile()->GetPrefs(); |
1020 prefs->SetBoolean(prefs::kAllowDeletingBrowserHistory, false); | 1051 prefs->SetBoolean(prefs::kAllowDeletingBrowserHistory, false); |
1021 | 1052 |
1022 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); | 1053 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); |
1023 | 1054 |
1024 tester.AddHistory(kOrigin1, base::Time::Now()); | 1055 tester.AddHistory(kOrigin1, base::Time::Now()); |
1025 tester.AddHistory(kOrigin2, two_hours_ago); | 1056 tester.AddHistory(kOrigin2, two_hours_ago); |
1026 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); | 1057 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); |
1027 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2)); | 1058 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2)); |
1028 | 1059 |
1029 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), | 1060 BlockUntilBrowsingDataRemoved( |
1030 BrowsingDataRemover::REMOVE_HISTORY, false); | 1061 AnHourAgo(), base::Time::Max(), |
1031 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); | 1062 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, false); |
1032 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); | 1063 EXPECT_EQ(ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, |
| 1064 GetRemovalMask()); |
| 1065 EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB, |
| 1066 GetOriginTypeMask()); |
1033 | 1067 |
1034 // Nothing should have been deleted. | 1068 // Nothing should have been deleted. |
1035 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin1)); | 1069 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin1)); |
1036 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2)); | 1070 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2)); |
1037 } | 1071 } |
1038 | 1072 |
1039 TEST_F(ChromeBrowsingDataRemoverDelegateTest, | 1073 TEST_F(ChromeBrowsingDataRemoverDelegateTest, |
1040 RemoveMultipleTypesHistoryProhibited) { | 1074 RemoveMultipleTypesHistoryProhibited) { |
1041 PrefService* prefs = GetProfile()->GetPrefs(); | 1075 PrefService* prefs = GetProfile()->GetPrefs(); |
1042 prefs->SetBoolean(prefs::kAllowDeletingBrowserHistory, false); | 1076 prefs->SetBoolean(prefs::kAllowDeletingBrowserHistory, false); |
1043 | 1077 |
1044 // Add some history. | 1078 // Add some history. |
1045 RemoveHistoryTester history_tester; | 1079 RemoveHistoryTester history_tester; |
1046 ASSERT_TRUE(history_tester.Init(GetProfile())); | 1080 ASSERT_TRUE(history_tester.Init(GetProfile())); |
1047 history_tester.AddHistory(kOrigin1, base::Time::Now()); | 1081 history_tester.AddHistory(kOrigin1, base::Time::Now()); |
1048 ASSERT_TRUE(history_tester.HistoryContainsURL(kOrigin1)); | 1082 ASSERT_TRUE(history_tester.HistoryContainsURL(kOrigin1)); |
1049 | 1083 |
1050 // Expect that passwords will be deleted, as they do not depend | 1084 // Expect that passwords will be deleted, as they do not depend |
1051 // on |prefs::kAllowDeletingBrowserHistory|. | 1085 // on |prefs::kAllowDeletingBrowserHistory|. |
1052 RemovePasswordsTester tester(GetProfile()); | 1086 RemovePasswordsTester tester(GetProfile()); |
1053 EXPECT_CALL(*tester.store(), RemoveLoginsByURLAndTimeImpl(_, _, _)); | 1087 EXPECT_CALL(*tester.store(), RemoveLoginsByURLAndTimeImpl(_, _, _)); |
1054 | 1088 |
1055 int removal_mask = BrowsingDataRemover::REMOVE_HISTORY | | 1089 int removal_mask = ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY | |
1056 BrowsingDataRemover::REMOVE_PASSWORDS; | 1090 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS; |
1057 | 1091 |
1058 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), | 1092 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), |
1059 removal_mask, false); | 1093 removal_mask, false); |
1060 EXPECT_EQ(removal_mask, GetRemovalMask()); | 1094 EXPECT_EQ(removal_mask, GetRemovalMask()); |
1061 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); | 1095 EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB, |
| 1096 GetOriginTypeMask()); |
1062 | 1097 |
1063 // Verify that history was not deleted. | 1098 // Verify that history was not deleted. |
1064 EXPECT_TRUE(history_tester.HistoryContainsURL(kOrigin1)); | 1099 EXPECT_TRUE(history_tester.HistoryContainsURL(kOrigin1)); |
1065 } | 1100 } |
1066 #endif | 1101 #endif |
1067 | 1102 |
1068 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveExternalProtocolData) { | 1103 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveExternalProtocolData) { |
1069 TestingProfile* profile = GetProfile(); | 1104 TestingProfile* profile = GetProfile(); |
1070 // Add external protocol data on profile. | 1105 // Add external protocol data on profile. |
1071 base::DictionaryValue prefs; | 1106 base::DictionaryValue prefs; |
1072 prefs.SetBoolean("tel", true); | 1107 prefs.SetBoolean("tel", true); |
1073 profile->GetPrefs()->Set(prefs::kExcludedSchemes, prefs); | 1108 profile->GetPrefs()->Set(prefs::kExcludedSchemes, prefs); |
1074 | 1109 |
1075 EXPECT_FALSE( | 1110 EXPECT_FALSE( |
1076 profile->GetPrefs()->GetDictionary(prefs::kExcludedSchemes)->empty()); | 1111 profile->GetPrefs()->GetDictionary(prefs::kExcludedSchemes)->empty()); |
1077 | 1112 |
1078 BlockUntilBrowsingDataRemoved( | 1113 BlockUntilBrowsingDataRemoved( |
1079 AnHourAgo(), base::Time::Max(), | 1114 AnHourAgo(), base::Time::Max(), |
1080 BrowsingDataRemover::REMOVE_EXTERNAL_PROTOCOL_DATA, false); | 1115 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_EXTERNAL_PROTOCOL_DATA, |
| 1116 false); |
1081 EXPECT_TRUE( | 1117 EXPECT_TRUE( |
1082 profile->GetPrefs()->GetDictionary(prefs::kExcludedSchemes)->empty()); | 1118 profile->GetPrefs()->GetDictionary(prefs::kExcludedSchemes)->empty()); |
1083 } | 1119 } |
1084 | 1120 |
1085 // Test that clearing history deletes favicons not associated with bookmarks. | 1121 // Test that clearing history deletes favicons not associated with bookmarks. |
1086 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveFaviconsForever) { | 1122 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveFaviconsForever) { |
1087 GURL page_url("http://a"); | 1123 GURL page_url("http://a"); |
1088 | 1124 |
1089 RemoveFaviconTester favicon_tester; | 1125 RemoveFaviconTester favicon_tester; |
1090 ASSERT_TRUE(favicon_tester.Init(GetProfile())); | 1126 ASSERT_TRUE(favicon_tester.Init(GetProfile())); |
1091 favicon_tester.VisitAndAddFavicon(page_url); | 1127 favicon_tester.VisitAndAddFavicon(page_url); |
1092 ASSERT_TRUE(favicon_tester.HasFaviconForPageURL(page_url)); | 1128 ASSERT_TRUE(favicon_tester.HasFaviconForPageURL(page_url)); |
1093 | 1129 |
1094 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), | 1130 BlockUntilBrowsingDataRemoved( |
1095 BrowsingDataRemover::REMOVE_HISTORY, false); | 1131 base::Time(), base::Time::Max(), |
1096 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); | 1132 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, false); |
| 1133 EXPECT_EQ(ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, |
| 1134 GetRemovalMask()); |
1097 EXPECT_FALSE(favicon_tester.HasFaviconForPageURL(page_url)); | 1135 EXPECT_FALSE(favicon_tester.HasFaviconForPageURL(page_url)); |
1098 } | 1136 } |
1099 | 1137 |
1100 // Test that a bookmark's favicon is expired and not deleted when clearing | 1138 // Test that a bookmark's favicon is expired and not deleted when clearing |
1101 // history. Expiring the favicon causes the bookmark's favicon to be updated | 1139 // history. Expiring the favicon causes the bookmark's favicon to be updated |
1102 // when the user next visits the bookmarked page. Expiring the bookmark's | 1140 // when the user next visits the bookmarked page. Expiring the bookmark's |
1103 // favicon is useful when the bookmark's favicon becomes incorrect (See | 1141 // favicon is useful when the bookmark's favicon becomes incorrect (See |
1104 // crbug.com/474421 for a sample bug which causes this). | 1142 // crbug.com/474421 for a sample bug which causes this). |
1105 TEST_F(ChromeBrowsingDataRemoverDelegateTest, ExpireBookmarkFavicons) { | 1143 TEST_F(ChromeBrowsingDataRemoverDelegateTest, ExpireBookmarkFavicons) { |
1106 GURL bookmarked_page("http://a"); | 1144 GURL bookmarked_page("http://a"); |
1107 | 1145 |
1108 TestingProfile* profile = GetProfile(); | 1146 TestingProfile* profile = GetProfile(); |
1109 profile->CreateBookmarkModel(true); | 1147 profile->CreateBookmarkModel(true); |
1110 bookmarks::BookmarkModel* bookmark_model = | 1148 bookmarks::BookmarkModel* bookmark_model = |
1111 BookmarkModelFactory::GetForBrowserContext(profile); | 1149 BookmarkModelFactory::GetForBrowserContext(profile); |
1112 bookmarks::test::WaitForBookmarkModelToLoad(bookmark_model); | 1150 bookmarks::test::WaitForBookmarkModelToLoad(bookmark_model); |
1113 bookmark_model->AddURL(bookmark_model->bookmark_bar_node(), 0, | 1151 bookmark_model->AddURL(bookmark_model->bookmark_bar_node(), 0, |
1114 base::ASCIIToUTF16("a"), bookmarked_page); | 1152 base::ASCIIToUTF16("a"), bookmarked_page); |
1115 | 1153 |
1116 RemoveFaviconTester favicon_tester; | 1154 RemoveFaviconTester favicon_tester; |
1117 ASSERT_TRUE(favicon_tester.Init(GetProfile())); | 1155 ASSERT_TRUE(favicon_tester.Init(GetProfile())); |
1118 favicon_tester.VisitAndAddFavicon(bookmarked_page); | 1156 favicon_tester.VisitAndAddFavicon(bookmarked_page); |
1119 ASSERT_TRUE(favicon_tester.HasFaviconForPageURL(bookmarked_page)); | 1157 ASSERT_TRUE(favicon_tester.HasFaviconForPageURL(bookmarked_page)); |
1120 | 1158 |
1121 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), | 1159 BlockUntilBrowsingDataRemoved( |
1122 BrowsingDataRemover::REMOVE_HISTORY, false); | 1160 base::Time(), base::Time::Max(), |
1123 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); | 1161 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, false); |
| 1162 EXPECT_EQ(ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, |
| 1163 GetRemovalMask()); |
1124 EXPECT_TRUE(favicon_tester.HasExpiredFaviconForPageURL(bookmarked_page)); | 1164 EXPECT_TRUE(favicon_tester.HasExpiredFaviconForPageURL(bookmarked_page)); |
1125 } | 1165 } |
1126 | 1166 |
1127 // TODO(crbug.com/589586): Disabled, since history is not yet marked as | 1167 // TODO(crbug.com/589586): Disabled, since history is not yet marked as |
1128 // a filterable datatype. | 1168 // a filterable datatype. |
1129 TEST_F(ChromeBrowsingDataRemoverDelegateTest, | 1169 TEST_F(ChromeBrowsingDataRemoverDelegateTest, |
1130 DISABLED_TimeBasedHistoryRemoval) { | 1170 DISABLED_TimeBasedHistoryRemoval) { |
1131 RemoveHistoryTester tester; | 1171 RemoveHistoryTester tester; |
1132 ASSERT_TRUE(tester.Init(GetProfile())); | 1172 ASSERT_TRUE(tester.Init(GetProfile())); |
1133 | 1173 |
1134 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); | 1174 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); |
1135 | 1175 |
1136 tester.AddHistory(kOrigin1, base::Time::Now()); | 1176 tester.AddHistory(kOrigin1, base::Time::Now()); |
1137 tester.AddHistory(kOrigin2, two_hours_ago); | 1177 tester.AddHistory(kOrigin2, two_hours_ago); |
1138 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); | 1178 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); |
1139 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2)); | 1179 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2)); |
1140 | 1180 |
1141 std::unique_ptr<BrowsingDataFilterBuilder> builder( | 1181 std::unique_ptr<BrowsingDataFilterBuilder> builder( |
1142 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST)); | 1182 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST)); |
1143 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), | 1183 BlockUntilOriginDataRemoved( |
1144 BrowsingDataRemover::REMOVE_HISTORY, | 1184 AnHourAgo(), base::Time::Max(), |
1145 std::move(builder)); | 1185 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, std::move(builder)); |
1146 | 1186 |
1147 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); | 1187 EXPECT_EQ(ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, |
1148 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); | 1188 GetRemovalMask()); |
| 1189 EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB, |
| 1190 GetOriginTypeMask()); |
1149 EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1)); | 1191 EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1)); |
1150 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2)); | 1192 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2)); |
1151 } | 1193 } |
1152 | 1194 |
1153 // Verify that clearing autofill form data works. | 1195 // Verify that clearing autofill form data works. |
1154 TEST_F(ChromeBrowsingDataRemoverDelegateTest, AutofillRemovalLastHour) { | 1196 TEST_F(ChromeBrowsingDataRemoverDelegateTest, AutofillRemovalLastHour) { |
1155 GetProfile()->CreateWebDataService(); | 1197 GetProfile()->CreateWebDataService(); |
1156 RemoveAutofillTester tester(GetProfile()); | 1198 RemoveAutofillTester tester(GetProfile()); |
1157 | 1199 |
1158 ASSERT_FALSE(tester.HasProfile()); | 1200 ASSERT_FALSE(tester.HasProfile()); |
1159 tester.AddProfilesAndCards(); | 1201 tester.AddProfilesAndCards(); |
1160 ASSERT_TRUE(tester.HasProfile()); | 1202 ASSERT_TRUE(tester.HasProfile()); |
1161 | 1203 |
1162 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), | 1204 BlockUntilBrowsingDataRemoved( |
1163 BrowsingDataRemover::REMOVE_FORM_DATA, false); | 1205 AnHourAgo(), base::Time::Max(), |
| 1206 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA, false); |
1164 | 1207 |
1165 EXPECT_EQ(BrowsingDataRemover::REMOVE_FORM_DATA, GetRemovalMask()); | 1208 EXPECT_EQ(ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA, |
1166 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); | 1209 GetRemovalMask()); |
| 1210 EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB, |
| 1211 GetOriginTypeMask()); |
1167 ASSERT_FALSE(tester.HasProfile()); | 1212 ASSERT_FALSE(tester.HasProfile()); |
1168 } | 1213 } |
1169 | 1214 |
1170 TEST_F(ChromeBrowsingDataRemoverDelegateTest, AutofillRemovalEverything) { | 1215 TEST_F(ChromeBrowsingDataRemoverDelegateTest, AutofillRemovalEverything) { |
1171 GetProfile()->CreateWebDataService(); | 1216 GetProfile()->CreateWebDataService(); |
1172 RemoveAutofillTester tester(GetProfile()); | 1217 RemoveAutofillTester tester(GetProfile()); |
1173 | 1218 |
1174 ASSERT_FALSE(tester.HasProfile()); | 1219 ASSERT_FALSE(tester.HasProfile()); |
1175 tester.AddProfilesAndCards(); | 1220 tester.AddProfilesAndCards(); |
1176 ASSERT_TRUE(tester.HasProfile()); | 1221 ASSERT_TRUE(tester.HasProfile()); |
1177 | 1222 |
1178 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), | 1223 BlockUntilBrowsingDataRemoved( |
1179 BrowsingDataRemover::REMOVE_FORM_DATA, false); | 1224 base::Time(), base::Time::Max(), |
| 1225 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA, false); |
1180 | 1226 |
1181 EXPECT_EQ(BrowsingDataRemover::REMOVE_FORM_DATA, GetRemovalMask()); | 1227 EXPECT_EQ(ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA, |
1182 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); | 1228 GetRemovalMask()); |
| 1229 EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB, |
| 1230 GetOriginTypeMask()); |
1183 ASSERT_FALSE(tester.HasProfile()); | 1231 ASSERT_FALSE(tester.HasProfile()); |
1184 } | 1232 } |
1185 | 1233 |
1186 // Verify that clearing autofill form data works. | 1234 // Verify that clearing autofill form data works. |
1187 TEST_F(ChromeBrowsingDataRemoverDelegateTest, | 1235 TEST_F(ChromeBrowsingDataRemoverDelegateTest, |
1188 AutofillOriginsRemovedWithHistory) { | 1236 AutofillOriginsRemovedWithHistory) { |
1189 GetProfile()->CreateWebDataService(); | 1237 GetProfile()->CreateWebDataService(); |
1190 RemoveAutofillTester tester(GetProfile()); | 1238 RemoveAutofillTester tester(GetProfile()); |
1191 | 1239 |
1192 tester.AddProfilesAndCards(); | 1240 tester.AddProfilesAndCards(); |
1193 EXPECT_FALSE(tester.HasOrigin(std::string())); | 1241 EXPECT_FALSE(tester.HasOrigin(std::string())); |
1194 EXPECT_TRUE(tester.HasOrigin(kWebOrigin)); | 1242 EXPECT_TRUE(tester.HasOrigin(kWebOrigin)); |
1195 EXPECT_TRUE(tester.HasOrigin(autofill::kSettingsOrigin)); | 1243 EXPECT_TRUE(tester.HasOrigin(autofill::kSettingsOrigin)); |
1196 | 1244 |
1197 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), | 1245 BlockUntilBrowsingDataRemoved( |
1198 BrowsingDataRemover::REMOVE_HISTORY, false); | 1246 AnHourAgo(), base::Time::Max(), |
| 1247 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, false); |
1199 | 1248 |
1200 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); | 1249 EXPECT_EQ(ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, |
1201 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); | 1250 GetRemovalMask()); |
| 1251 EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB, |
| 1252 GetOriginTypeMask()); |
1202 EXPECT_TRUE(tester.HasOrigin(std::string())); | 1253 EXPECT_TRUE(tester.HasOrigin(std::string())); |
1203 EXPECT_FALSE(tester.HasOrigin(kWebOrigin)); | 1254 EXPECT_FALSE(tester.HasOrigin(kWebOrigin)); |
1204 EXPECT_TRUE(tester.HasOrigin(autofill::kSettingsOrigin)); | 1255 EXPECT_TRUE(tester.HasOrigin(autofill::kSettingsOrigin)); |
1205 } | 1256 } |
1206 | 1257 |
1207 TEST_F(ChromeBrowsingDataRemoverDelegateTest, ZeroSuggestCacheClear) { | 1258 TEST_F(ChromeBrowsingDataRemoverDelegateTest, ZeroSuggestCacheClear) { |
1208 PrefService* prefs = GetProfile()->GetPrefs(); | 1259 PrefService* prefs = GetProfile()->GetPrefs(); |
1209 prefs->SetString(omnibox::kZeroSuggestCachedResults, | 1260 prefs->SetString(omnibox::kZeroSuggestCachedResults, |
1210 "[\"\", [\"foo\", \"bar\"]]"); | 1261 "[\"\", [\"foo\", \"bar\"]]"); |
1211 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), | 1262 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), |
1212 BrowsingDataRemover::REMOVE_COOKIES, false); | 1263 BrowsingDataRemover::DATA_TYPE_COOKIES, false); |
1213 | 1264 |
1214 // Expect the prefs to be cleared when cookies are removed. | 1265 // Expect the prefs to be cleared when cookies are removed. |
1215 EXPECT_TRUE(prefs->GetString(omnibox::kZeroSuggestCachedResults).empty()); | 1266 EXPECT_TRUE(prefs->GetString(omnibox::kZeroSuggestCachedResults).empty()); |
1216 EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask()); | 1267 EXPECT_EQ(BrowsingDataRemover::DATA_TYPE_COOKIES, GetRemovalMask()); |
1217 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); | 1268 EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB, |
| 1269 GetOriginTypeMask()); |
1218 } | 1270 } |
1219 | 1271 |
1220 #if defined(OS_CHROMEOS) | 1272 #if defined(OS_CHROMEOS) |
1221 TEST_F(ChromeBrowsingDataRemoverDelegateTest, | 1273 TEST_F(ChromeBrowsingDataRemoverDelegateTest, |
1222 ContentProtectionPlatformKeysRemoval) { | 1274 ContentProtectionPlatformKeysRemoval) { |
1223 chromeos::ScopedTestDeviceSettingsService test_device_settings_service; | 1275 chromeos::ScopedTestDeviceSettingsService test_device_settings_service; |
1224 chromeos::ScopedTestCrosSettings test_cros_settings; | 1276 chromeos::ScopedTestCrosSettings test_cros_settings; |
1225 chromeos::MockUserManager* mock_user_manager = | 1277 chromeos::MockUserManager* mock_user_manager = |
1226 new testing::NiceMock<chromeos::MockUserManager>(); | 1278 new testing::NiceMock<chromeos::MockUserManager>(); |
1227 mock_user_manager->SetActiveUser( | 1279 mock_user_manager->SetActiveUser( |
1228 AccountId::FromUserEmail("test@example.com")); | 1280 AccountId::FromUserEmail("test@example.com")); |
1229 chromeos::ScopedUserManagerEnabler user_manager_enabler(mock_user_manager); | 1281 chromeos::ScopedUserManagerEnabler user_manager_enabler(mock_user_manager); |
1230 | 1282 |
1231 std::unique_ptr<chromeos::DBusThreadManagerSetter> dbus_setter = | 1283 std::unique_ptr<chromeos::DBusThreadManagerSetter> dbus_setter = |
1232 chromeos::DBusThreadManager::GetSetterForTesting(); | 1284 chromeos::DBusThreadManager::GetSetterForTesting(); |
1233 chromeos::MockCryptohomeClient* cryptohome_client = | 1285 chromeos::MockCryptohomeClient* cryptohome_client = |
1234 new chromeos::MockCryptohomeClient; | 1286 new chromeos::MockCryptohomeClient; |
1235 dbus_setter->SetCryptohomeClient( | 1287 dbus_setter->SetCryptohomeClient( |
1236 std::unique_ptr<chromeos::CryptohomeClient>(cryptohome_client)); | 1288 std::unique_ptr<chromeos::CryptohomeClient>(cryptohome_client)); |
1237 | 1289 |
1238 // Expect exactly one call. No calls means no attempt to delete keys and more | 1290 // Expect exactly one call. No calls means no attempt to delete keys and more |
1239 // than one call means a significant performance problem. | 1291 // than one call means a significant performance problem. |
1240 EXPECT_CALL(*cryptohome_client, TpmAttestationDeleteKeys(_, _, _, _)) | 1292 EXPECT_CALL(*cryptohome_client, TpmAttestationDeleteKeys(_, _, _, _)) |
1241 .WillOnce(WithArgs<3>(Invoke(FakeDBusCall))); | 1293 .WillOnce(WithArgs<3>(Invoke(FakeDBusCall))); |
1242 | 1294 |
1243 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), | 1295 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), |
1244 BrowsingDataRemover::REMOVE_MEDIA_LICENSES, | 1296 BrowsingDataRemover::DATA_TYPE_MEDIA_LICENSES, |
1245 false); | 1297 false); |
1246 | 1298 |
1247 chromeos::DBusThreadManager::Shutdown(); | 1299 chromeos::DBusThreadManager::Shutdown(); |
1248 } | 1300 } |
1249 #endif | 1301 #endif |
1250 | 1302 |
1251 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_Null) { | 1303 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_Null) { |
1252 const ClearDomainReliabilityTester& tester = | 1304 const ClearDomainReliabilityTester& tester = |
1253 clear_domain_reliability_tester(); | 1305 clear_domain_reliability_tester(); |
1254 | 1306 |
1255 EXPECT_EQ(0u, tester.clear_count()); | 1307 EXPECT_EQ(0u, tester.clear_count()); |
1256 } | 1308 } |
1257 | 1309 |
1258 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_Beacons) { | 1310 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_Beacons) { |
1259 const ClearDomainReliabilityTester& tester = | 1311 const ClearDomainReliabilityTester& tester = |
1260 clear_domain_reliability_tester(); | 1312 clear_domain_reliability_tester(); |
1261 | 1313 |
1262 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), | 1314 BlockUntilBrowsingDataRemoved( |
1263 BrowsingDataRemover::REMOVE_HISTORY, false); | 1315 base::Time(), base::Time::Max(), |
| 1316 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, false); |
1264 EXPECT_EQ(1u, tester.clear_count()); | 1317 EXPECT_EQ(1u, tester.clear_count()); |
1265 EXPECT_EQ(CLEAR_BEACONS, tester.last_clear_mode()); | 1318 EXPECT_EQ(CLEAR_BEACONS, tester.last_clear_mode()); |
1266 EXPECT_TRUE(ProbablySameFilters( | 1319 EXPECT_TRUE(ProbablySameFilters( |
1267 BrowsingDataFilterBuilder::BuildNoopFilter(), tester.last_filter())); | 1320 BrowsingDataFilterBuilder::BuildNoopFilter(), tester.last_filter())); |
1268 } | 1321 } |
1269 | 1322 |
1270 // TODO(crbug.com/589586): Disabled, since history is not yet marked as | 1323 // TODO(crbug.com/589586): Disabled, since history is not yet marked as |
1271 // a filterable datatype. | 1324 // a filterable datatype. |
1272 TEST_F(ChromeBrowsingDataRemoverDelegateTest, | 1325 TEST_F(ChromeBrowsingDataRemoverDelegateTest, |
1273 DISABLED_DomainReliability_Beacons_WithFilter) { | 1326 DISABLED_DomainReliability_Beacons_WithFilter) { |
1274 const ClearDomainReliabilityTester& tester = | 1327 const ClearDomainReliabilityTester& tester = |
1275 clear_domain_reliability_tester(); | 1328 clear_domain_reliability_tester(); |
1276 | 1329 |
1277 std::unique_ptr<BrowsingDataFilterBuilder> builder( | 1330 std::unique_ptr<BrowsingDataFilterBuilder> builder( |
1278 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); | 1331 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); |
1279 builder->AddRegisterableDomain(kTestRegisterableDomain1); | 1332 builder->AddRegisterableDomain(kTestRegisterableDomain1); |
1280 | 1333 |
1281 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), | 1334 BlockUntilOriginDataRemoved( |
1282 BrowsingDataRemover::REMOVE_HISTORY, | 1335 base::Time(), base::Time::Max(), |
1283 builder->Copy()); | 1336 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, builder->Copy()); |
1284 EXPECT_EQ(1u, tester.clear_count()); | 1337 EXPECT_EQ(1u, tester.clear_count()); |
1285 EXPECT_EQ(CLEAR_BEACONS, tester.last_clear_mode()); | 1338 EXPECT_EQ(CLEAR_BEACONS, tester.last_clear_mode()); |
1286 EXPECT_TRUE(ProbablySameFilters( | 1339 EXPECT_TRUE(ProbablySameFilters( |
1287 builder->BuildGeneralFilter(), tester.last_filter())); | 1340 builder->BuildGeneralFilter(), tester.last_filter())); |
1288 } | 1341 } |
1289 | 1342 |
1290 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_Contexts) { | 1343 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_Contexts) { |
1291 const ClearDomainReliabilityTester& tester = | 1344 const ClearDomainReliabilityTester& tester = |
1292 clear_domain_reliability_tester(); | 1345 clear_domain_reliability_tester(); |
1293 | 1346 |
1294 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), | 1347 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), |
1295 BrowsingDataRemover::REMOVE_COOKIES, false); | 1348 BrowsingDataRemover::DATA_TYPE_COOKIES, false); |
1296 EXPECT_EQ(1u, tester.clear_count()); | 1349 EXPECT_EQ(1u, tester.clear_count()); |
1297 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode()); | 1350 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode()); |
1298 EXPECT_TRUE(ProbablySameFilters( | 1351 EXPECT_TRUE(ProbablySameFilters( |
1299 BrowsingDataFilterBuilder::BuildNoopFilter(), tester.last_filter())); | 1352 BrowsingDataFilterBuilder::BuildNoopFilter(), tester.last_filter())); |
1300 } | 1353 } |
1301 | 1354 |
1302 TEST_F(ChromeBrowsingDataRemoverDelegateTest, | 1355 TEST_F(ChromeBrowsingDataRemoverDelegateTest, |
1303 DomainReliability_Contexts_WithFilter) { | 1356 DomainReliability_Contexts_WithFilter) { |
1304 const ClearDomainReliabilityTester& tester = | 1357 const ClearDomainReliabilityTester& tester = |
1305 clear_domain_reliability_tester(); | 1358 clear_domain_reliability_tester(); |
1306 | 1359 |
1307 std::unique_ptr<BrowsingDataFilterBuilder> builder( | 1360 std::unique_ptr<BrowsingDataFilterBuilder> builder( |
1308 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); | 1361 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); |
1309 builder->AddRegisterableDomain(kTestRegisterableDomain1); | 1362 builder->AddRegisterableDomain(kTestRegisterableDomain1); |
1310 | 1363 |
1311 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), | 1364 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), |
1312 BrowsingDataRemover::REMOVE_COOKIES, | 1365 BrowsingDataRemover::DATA_TYPE_COOKIES, |
1313 builder->Copy()); | 1366 builder->Copy()); |
1314 EXPECT_EQ(1u, tester.clear_count()); | 1367 EXPECT_EQ(1u, tester.clear_count()); |
1315 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode()); | 1368 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode()); |
1316 EXPECT_TRUE(ProbablySameFilters( | 1369 EXPECT_TRUE(ProbablySameFilters( |
1317 builder->BuildGeneralFilter(), tester.last_filter())); | 1370 builder->BuildGeneralFilter(), tester.last_filter())); |
1318 } | 1371 } |
1319 | 1372 |
1320 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_ContextsWin) { | 1373 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_ContextsWin) { |
1321 const ClearDomainReliabilityTester& tester = | 1374 const ClearDomainReliabilityTester& tester = |
1322 clear_domain_reliability_tester(); | 1375 clear_domain_reliability_tester(); |
1323 | 1376 |
1324 BlockUntilBrowsingDataRemoved( | 1377 BlockUntilBrowsingDataRemoved( |
1325 base::Time(), base::Time::Max(), | 1378 base::Time(), base::Time::Max(), |
1326 BrowsingDataRemover::REMOVE_HISTORY | BrowsingDataRemover::REMOVE_COOKIES, | 1379 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY | |
| 1380 BrowsingDataRemover::DATA_TYPE_COOKIES, |
1327 false); | 1381 false); |
1328 EXPECT_EQ(1u, tester.clear_count()); | 1382 EXPECT_EQ(1u, tester.clear_count()); |
1329 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode()); | 1383 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode()); |
1330 } | 1384 } |
1331 | 1385 |
1332 TEST_F(ChromeBrowsingDataRemoverDelegateTest, | 1386 TEST_F(ChromeBrowsingDataRemoverDelegateTest, |
1333 DomainReliability_ProtectedOrigins) { | 1387 DomainReliability_ProtectedOrigins) { |
1334 const ClearDomainReliabilityTester& tester = | 1388 const ClearDomainReliabilityTester& tester = |
1335 clear_domain_reliability_tester(); | 1389 clear_domain_reliability_tester(); |
1336 | 1390 |
1337 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), | 1391 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), |
1338 BrowsingDataRemover::REMOVE_COOKIES, true); | 1392 BrowsingDataRemover::DATA_TYPE_COOKIES, true); |
1339 EXPECT_EQ(1u, tester.clear_count()); | 1393 EXPECT_EQ(1u, tester.clear_count()); |
1340 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode()); | 1394 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode()); |
1341 } | 1395 } |
1342 | 1396 |
1343 // TODO(juliatuttle): This isn't actually testing the no-monitor case, since | 1397 // TODO(juliatuttle): This isn't actually testing the no-monitor case, since |
1344 // BrowsingDataRemoverTest now creates one unconditionally, since it's needed | 1398 // BrowsingDataRemoverTest now creates one unconditionally, since it's needed |
1345 // for some unrelated test cases. This should be fixed so it tests the no- | 1399 // for some unrelated test cases. This should be fixed so it tests the no- |
1346 // monitor case again. | 1400 // monitor case again. |
1347 TEST_F(ChromeBrowsingDataRemoverDelegateTest, | 1401 TEST_F(ChromeBrowsingDataRemoverDelegateTest, |
1348 DISABLED_DomainReliability_NoMonitor) { | 1402 DISABLED_DomainReliability_NoMonitor) { |
1349 BlockUntilBrowsingDataRemoved( | 1403 BlockUntilBrowsingDataRemoved( |
1350 base::Time(), base::Time::Max(), | 1404 base::Time(), base::Time::Max(), |
1351 BrowsingDataRemover::REMOVE_HISTORY | BrowsingDataRemover::REMOVE_COOKIES, | 1405 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY | |
| 1406 BrowsingDataRemover::DATA_TYPE_COOKIES, |
1352 false); | 1407 false); |
1353 } | 1408 } |
1354 | 1409 |
1355 // Tests that the deletion of downloads completes successfully and that | 1410 // Tests that the deletion of downloads completes successfully and that |
1356 // ChromeDownloadManagerDelegate is correctly created and shut down. | 1411 // ChromeDownloadManagerDelegate is correctly created and shut down. |
1357 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveDownloads) { | 1412 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveDownloads) { |
1358 RemoveDownloadsTester tester(GetProfile()); | 1413 RemoveDownloadsTester tester(GetProfile()); |
1359 | 1414 |
1360 EXPECT_CALL( | 1415 EXPECT_CALL( |
1361 *tester.download_manager(), RemoveDownloadsByURLAndTime(_, _, _)); | 1416 *tester.download_manager(), RemoveDownloadsByURLAndTime(_, _, _)); |
1362 | 1417 |
1363 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), | 1418 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), |
1364 BrowsingDataRemover::REMOVE_DOWNLOADS, false); | 1419 BrowsingDataRemover::DATA_TYPE_DOWNLOADS, |
| 1420 false); |
1365 } | 1421 } |
1366 | 1422 |
1367 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemovePasswordStatistics) { | 1423 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemovePasswordStatistics) { |
1368 RemovePasswordsTester tester(GetProfile()); | 1424 RemovePasswordsTester tester(GetProfile()); |
1369 base::Callback<bool(const GURL&)> empty_filter; | 1425 base::Callback<bool(const GURL&)> empty_filter; |
1370 | 1426 |
1371 EXPECT_CALL(*tester.store(), RemoveStatisticsByOriginAndTimeImpl( | 1427 EXPECT_CALL(*tester.store(), RemoveStatisticsByOriginAndTimeImpl( |
1372 ProbablySameFilter(empty_filter), | 1428 ProbablySameFilter(empty_filter), |
1373 base::Time(), base::Time::Max())); | 1429 base::Time(), base::Time::Max())); |
1374 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), | 1430 BlockUntilBrowsingDataRemoved( |
1375 BrowsingDataRemover::REMOVE_HISTORY, false); | 1431 base::Time(), base::Time::Max(), |
| 1432 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, false); |
1376 } | 1433 } |
1377 | 1434 |
1378 // TODO(crbug.com/589586): Disabled, since history is not yet marked as | 1435 // TODO(crbug.com/589586): Disabled, since history is not yet marked as |
1379 // a filterable datatype. | 1436 // a filterable datatype. |
1380 TEST_F(ChromeBrowsingDataRemoverDelegateTest, | 1437 TEST_F(ChromeBrowsingDataRemoverDelegateTest, |
1381 DISABLED_RemovePasswordStatisticsByOrigin) { | 1438 DISABLED_RemovePasswordStatisticsByOrigin) { |
1382 RemovePasswordsTester tester(GetProfile()); | 1439 RemovePasswordsTester tester(GetProfile()); |
1383 | 1440 |
1384 std::unique_ptr<BrowsingDataFilterBuilder> builder( | 1441 std::unique_ptr<BrowsingDataFilterBuilder> builder( |
1385 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); | 1442 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); |
1386 builder->AddRegisterableDomain(kTestRegisterableDomain1); | 1443 builder->AddRegisterableDomain(kTestRegisterableDomain1); |
1387 base::Callback<bool(const GURL&)> filter = builder->BuildGeneralFilter(); | 1444 base::Callback<bool(const GURL&)> filter = builder->BuildGeneralFilter(); |
1388 | 1445 |
1389 EXPECT_CALL(*tester.store(), | 1446 EXPECT_CALL(*tester.store(), |
1390 RemoveStatisticsByOriginAndTimeImpl( | 1447 RemoveStatisticsByOriginAndTimeImpl( |
1391 ProbablySameFilter(filter), base::Time(), base::Time::Max())); | 1448 ProbablySameFilter(filter), base::Time(), base::Time::Max())); |
1392 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), | 1449 BlockUntilOriginDataRemoved( |
1393 BrowsingDataRemover::REMOVE_HISTORY, | 1450 base::Time(), base::Time::Max(), |
1394 std::move(builder)); | 1451 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, std::move(builder)); |
1395 } | 1452 } |
1396 | 1453 |
1397 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemovePasswordsByTimeOnly) { | 1454 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemovePasswordsByTimeOnly) { |
1398 RemovePasswordsTester tester(GetProfile()); | 1455 RemovePasswordsTester tester(GetProfile()); |
1399 base::Callback<bool(const GURL&)> filter = | 1456 base::Callback<bool(const GURL&)> filter = |
1400 BrowsingDataFilterBuilder::BuildNoopFilter(); | 1457 BrowsingDataFilterBuilder::BuildNoopFilter(); |
1401 | 1458 |
1402 EXPECT_CALL(*tester.store(), | 1459 EXPECT_CALL(*tester.store(), |
1403 RemoveLoginsByURLAndTimeImpl(ProbablySameFilter(filter), _, _)) | 1460 RemoveLoginsByURLAndTimeImpl(ProbablySameFilter(filter), _, _)) |
1404 .WillOnce(Return(password_manager::PasswordStoreChangeList())); | 1461 .WillOnce(Return(password_manager::PasswordStoreChangeList())); |
1405 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), | 1462 BlockUntilBrowsingDataRemoved( |
1406 BrowsingDataRemover::REMOVE_PASSWORDS, false); | 1463 base::Time(), base::Time::Max(), |
| 1464 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS, false); |
1407 } | 1465 } |
1408 | 1466 |
1409 // Disabled, since passwords are not yet marked as a filterable datatype. | 1467 // Disabled, since passwords are not yet marked as a filterable datatype. |
1410 TEST_F(ChromeBrowsingDataRemoverDelegateTest, | 1468 TEST_F(ChromeBrowsingDataRemoverDelegateTest, |
1411 DISABLED_RemovePasswordsByOrigin) { | 1469 DISABLED_RemovePasswordsByOrigin) { |
1412 RemovePasswordsTester tester(GetProfile()); | 1470 RemovePasswordsTester tester(GetProfile()); |
1413 std::unique_ptr<BrowsingDataFilterBuilder> builder( | 1471 std::unique_ptr<BrowsingDataFilterBuilder> builder( |
1414 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); | 1472 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); |
1415 builder->AddRegisterableDomain(kTestRegisterableDomain1); | 1473 builder->AddRegisterableDomain(kTestRegisterableDomain1); |
1416 base::Callback<bool(const GURL&)> filter = builder->BuildGeneralFilter(); | 1474 base::Callback<bool(const GURL&)> filter = builder->BuildGeneralFilter(); |
1417 | 1475 |
1418 EXPECT_CALL(*tester.store(), | 1476 EXPECT_CALL(*tester.store(), |
1419 RemoveLoginsByURLAndTimeImpl(ProbablySameFilter(filter), _, _)) | 1477 RemoveLoginsByURLAndTimeImpl(ProbablySameFilter(filter), _, _)) |
1420 .WillOnce(Return(password_manager::PasswordStoreChangeList())); | 1478 .WillOnce(Return(password_manager::PasswordStoreChangeList())); |
1421 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), | 1479 BlockUntilOriginDataRemoved( |
1422 BrowsingDataRemover::REMOVE_PASSWORDS, | 1480 base::Time(), base::Time::Max(), |
1423 std::move(builder)); | 1481 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS, |
| 1482 std::move(builder)); |
1424 } | 1483 } |
1425 | 1484 |
1426 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DisableAutoSignIn) { | 1485 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DisableAutoSignIn) { |
1427 RemovePasswordsTester tester(GetProfile()); | 1486 RemovePasswordsTester tester(GetProfile()); |
1428 base::Callback<bool(const GURL&)> empty_filter = | 1487 base::Callback<bool(const GURL&)> empty_filter = |
1429 BrowsingDataFilterBuilder::BuildNoopFilter(); | 1488 BrowsingDataFilterBuilder::BuildNoopFilter(); |
1430 | 1489 |
1431 EXPECT_CALL( | 1490 EXPECT_CALL( |
1432 *tester.store(), | 1491 *tester.store(), |
1433 DisableAutoSignInForOriginsImpl(ProbablySameFilter(empty_filter))) | 1492 DisableAutoSignInForOriginsImpl(ProbablySameFilter(empty_filter))) |
1434 .WillOnce(Return(password_manager::PasswordStoreChangeList())); | 1493 .WillOnce(Return(password_manager::PasswordStoreChangeList())); |
1435 | 1494 |
1436 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), | 1495 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), |
1437 BrowsingDataRemover::REMOVE_COOKIES, false); | 1496 BrowsingDataRemover::DATA_TYPE_COOKIES, false); |
1438 } | 1497 } |
1439 | 1498 |
1440 TEST_F(ChromeBrowsingDataRemoverDelegateTest, | 1499 TEST_F(ChromeBrowsingDataRemoverDelegateTest, |
1441 DisableAutoSignInAfterRemovingPasswords) { | 1500 DisableAutoSignInAfterRemovingPasswords) { |
1442 RemovePasswordsTester tester(GetProfile()); | 1501 RemovePasswordsTester tester(GetProfile()); |
1443 base::Callback<bool(const GURL&)> empty_filter = | 1502 base::Callback<bool(const GURL&)> empty_filter = |
1444 BrowsingDataFilterBuilder::BuildNoopFilter(); | 1503 BrowsingDataFilterBuilder::BuildNoopFilter(); |
1445 | 1504 |
1446 EXPECT_CALL(*tester.store(), RemoveLoginsByURLAndTimeImpl(_, _, _)) | 1505 EXPECT_CALL(*tester.store(), RemoveLoginsByURLAndTimeImpl(_, _, _)) |
1447 .WillOnce(Return(password_manager::PasswordStoreChangeList())); | 1506 .WillOnce(Return(password_manager::PasswordStoreChangeList())); |
1448 EXPECT_CALL( | 1507 EXPECT_CALL( |
1449 *tester.store(), | 1508 *tester.store(), |
1450 DisableAutoSignInForOriginsImpl(ProbablySameFilter(empty_filter))) | 1509 DisableAutoSignInForOriginsImpl(ProbablySameFilter(empty_filter))) |
1451 .WillOnce(Return(password_manager::PasswordStoreChangeList())); | 1510 .WillOnce(Return(password_manager::PasswordStoreChangeList())); |
1452 | 1511 |
1453 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), | 1512 BlockUntilBrowsingDataRemoved( |
1454 BrowsingDataRemover::REMOVE_COOKIES | | 1513 base::Time(), base::Time::Max(), |
1455 BrowsingDataRemover::REMOVE_PASSWORDS, | 1514 BrowsingDataRemover::DATA_TYPE_COOKIES | |
1456 false); | 1515 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS, |
| 1516 false); |
1457 } | 1517 } |
1458 | 1518 |
1459 TEST_F(ChromeBrowsingDataRemoverDelegateTest, | 1519 TEST_F(ChromeBrowsingDataRemoverDelegateTest, |
1460 RemoveContentSettingsWithBlacklist) { | 1520 RemoveContentSettingsWithBlacklist) { |
1461 // Add our settings. | 1521 // Add our settings. |
1462 HostContentSettingsMap* host_content_settings_map = | 1522 HostContentSettingsMap* host_content_settings_map = |
1463 HostContentSettingsMapFactory::GetForProfile(GetProfile()); | 1523 HostContentSettingsMapFactory::GetForProfile(GetProfile()); |
1464 host_content_settings_map->SetWebsiteSettingDefaultScope( | 1524 host_content_settings_map->SetWebsiteSettingDefaultScope( |
1465 kOrigin1, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), | 1525 kOrigin1, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), |
1466 base::MakeUnique<base::DictionaryValue>()); | 1526 base::MakeUnique<base::DictionaryValue>()); |
1467 host_content_settings_map->SetWebsiteSettingDefaultScope( | 1527 host_content_settings_map->SetWebsiteSettingDefaultScope( |
1468 kOrigin2, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), | 1528 kOrigin2, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), |
1469 base::MakeUnique<base::DictionaryValue>()); | 1529 base::MakeUnique<base::DictionaryValue>()); |
1470 host_content_settings_map->SetWebsiteSettingDefaultScope( | 1530 host_content_settings_map->SetWebsiteSettingDefaultScope( |
1471 kOrigin3, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), | 1531 kOrigin3, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), |
1472 base::MakeUnique<base::DictionaryValue>()); | 1532 base::MakeUnique<base::DictionaryValue>()); |
1473 host_content_settings_map->SetWebsiteSettingDefaultScope( | 1533 host_content_settings_map->SetWebsiteSettingDefaultScope( |
1474 kOrigin4, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), | 1534 kOrigin4, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), |
1475 base::MakeUnique<base::DictionaryValue>()); | 1535 base::MakeUnique<base::DictionaryValue>()); |
1476 | 1536 |
1477 // Clear all except for origin1 and origin3. | 1537 // Clear all except for origin1 and origin3. |
1478 std::unique_ptr<BrowsingDataFilterBuilder> filter( | 1538 std::unique_ptr<BrowsingDataFilterBuilder> filter( |
1479 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST)); | 1539 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST)); |
1480 filter->AddRegisterableDomain(kTestRegisterableDomain1); | 1540 filter->AddRegisterableDomain(kTestRegisterableDomain1); |
1481 filter->AddRegisterableDomain(kTestRegisterableDomain3); | 1541 filter->AddRegisterableDomain(kTestRegisterableDomain3); |
1482 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), | 1542 BlockUntilOriginDataRemoved( |
1483 BrowsingDataRemover::REMOVE_SITE_USAGE_DATA, | 1543 AnHourAgo(), base::Time::Max(), |
1484 std::move(filter)); | 1544 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_USAGE_DATA, |
| 1545 std::move(filter)); |
1485 | 1546 |
1486 EXPECT_EQ(BrowsingDataRemover::REMOVE_SITE_USAGE_DATA, GetRemovalMask()); | 1547 EXPECT_EQ(ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_USAGE_DATA, |
1487 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); | 1548 GetRemovalMask()); |
| 1549 EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB, |
| 1550 GetOriginTypeMask()); |
1488 | 1551 |
1489 // Verify we only have true, and they're origin1, origin3, and origin4. | 1552 // Verify we only have true, and they're origin1, origin3, and origin4. |
1490 ContentSettingsForOneType host_settings; | 1553 ContentSettingsForOneType host_settings; |
1491 host_content_settings_map->GetSettingsForOneType( | 1554 host_content_settings_map->GetSettingsForOneType( |
1492 CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), &host_settings); | 1555 CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), &host_settings); |
1493 EXPECT_EQ(3u, host_settings.size()); | 1556 EXPECT_EQ(3u, host_settings.size()); |
1494 EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(kOrigin1), | 1557 EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(kOrigin1), |
1495 host_settings[0].primary_pattern) | 1558 host_settings[0].primary_pattern) |
1496 << host_settings[0].primary_pattern.ToString(); | 1559 << host_settings[0].primary_pattern.ToString(); |
1497 EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(kOrigin4), | 1560 EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(kOrigin4), |
(...skipping 13 matching lines...) Expand all Loading... |
1511 durable_permission.UpdateContentSetting(kOrigin1, GURL(), | 1574 durable_permission.UpdateContentSetting(kOrigin1, GURL(), |
1512 CONTENT_SETTING_ALLOW); | 1575 CONTENT_SETTING_ALLOW); |
1513 durable_permission.UpdateContentSetting(kOrigin2, GURL(), | 1576 durable_permission.UpdateContentSetting(kOrigin2, GURL(), |
1514 CONTENT_SETTING_ALLOW); | 1577 CONTENT_SETTING_ALLOW); |
1515 | 1578 |
1516 // Clear all except for origin1 and origin3. | 1579 // Clear all except for origin1 and origin3. |
1517 std::unique_ptr<BrowsingDataFilterBuilder> filter( | 1580 std::unique_ptr<BrowsingDataFilterBuilder> filter( |
1518 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST)); | 1581 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST)); |
1519 filter->AddRegisterableDomain(kTestRegisterableDomain1); | 1582 filter->AddRegisterableDomain(kTestRegisterableDomain1); |
1520 filter->AddRegisterableDomain(kTestRegisterableDomain3); | 1583 filter->AddRegisterableDomain(kTestRegisterableDomain3); |
1521 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), | 1584 BlockUntilOriginDataRemoved( |
1522 BrowsingDataRemover::REMOVE_DURABLE_PERMISSION, | 1585 AnHourAgo(), base::Time::Max(), |
1523 std::move(filter)); | 1586 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_DURABLE_PERMISSION, |
| 1587 std::move(filter)); |
1524 | 1588 |
1525 EXPECT_EQ(BrowsingDataRemover::REMOVE_DURABLE_PERMISSION, GetRemovalMask()); | 1589 EXPECT_EQ(ChromeBrowsingDataRemoverDelegate::DATA_TYPE_DURABLE_PERMISSION, |
1526 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); | 1590 GetRemovalMask()); |
| 1591 EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB, |
| 1592 GetOriginTypeMask()); |
1527 | 1593 |
1528 // Verify we only have allow for the first origin. | 1594 // Verify we only have allow for the first origin. |
1529 ContentSettingsForOneType host_settings; | 1595 ContentSettingsForOneType host_settings; |
1530 host_content_settings_map->GetSettingsForOneType( | 1596 host_content_settings_map->GetSettingsForOneType( |
1531 CONTENT_SETTINGS_TYPE_DURABLE_STORAGE, std::string(), &host_settings); | 1597 CONTENT_SETTINGS_TYPE_DURABLE_STORAGE, std::string(), &host_settings); |
1532 | 1598 |
1533 ASSERT_EQ(2u, host_settings.size()); | 1599 ASSERT_EQ(2u, host_settings.size()); |
1534 // Only the first should should have a setting. | 1600 // Only the first should should have a setting. |
1535 EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(kOrigin1), | 1601 EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(kOrigin1), |
1536 host_settings[0].primary_pattern) | 1602 host_settings[0].primary_pattern) |
(...skipping 19 matching lines...) Expand all Loading... |
1556 | 1622 |
1557 net::HttpAuthCache* http_auth_cache = http_session->http_auth_cache(); | 1623 net::HttpAuthCache* http_auth_cache = http_session->http_auth_cache(); |
1558 http_auth_cache->Add(kOrigin1, kTestRealm, net::HttpAuth::AUTH_SCHEME_BASIC, | 1624 http_auth_cache->Add(kOrigin1, kTestRealm, net::HttpAuth::AUTH_SCHEME_BASIC, |
1559 "test challenge", | 1625 "test challenge", |
1560 net::AuthCredentials(base::ASCIIToUTF16("foo"), | 1626 net::AuthCredentials(base::ASCIIToUTF16("foo"), |
1561 base::ASCIIToUTF16("bar")), | 1627 base::ASCIIToUTF16("bar")), |
1562 "/"); | 1628 "/"); |
1563 CHECK(http_auth_cache->Lookup(kOrigin1, kTestRealm, | 1629 CHECK(http_auth_cache->Lookup(kOrigin1, kTestRealm, |
1564 net::HttpAuth::AUTH_SCHEME_BASIC)); | 1630 net::HttpAuth::AUTH_SCHEME_BASIC)); |
1565 | 1631 |
1566 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), | 1632 BlockUntilBrowsingDataRemoved( |
1567 BrowsingDataRemover::REMOVE_PASSWORDS, false); | 1633 base::Time(), base::Time::Max(), |
| 1634 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS, false); |
1568 | 1635 |
1569 EXPECT_EQ(nullptr, http_auth_cache->Lookup(kOrigin1, kTestRealm, | 1636 EXPECT_EQ(nullptr, http_auth_cache->Lookup(kOrigin1, kTestRealm, |
1570 net::HttpAuth::AUTH_SCHEME_BASIC)); | 1637 net::HttpAuth::AUTH_SCHEME_BASIC)); |
1571 } | 1638 } |
1572 | 1639 |
1573 TEST_F(ChromeBrowsingDataRemoverDelegateTest, ClearPermissionPromptCounts) { | 1640 TEST_F(ChromeBrowsingDataRemoverDelegateTest, ClearPermissionPromptCounts) { |
1574 RemovePermissionPromptCountsTest tester(GetProfile()); | 1641 RemovePermissionPromptCountsTest tester(GetProfile()); |
1575 | 1642 |
1576 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder_1( | 1643 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder_1( |
1577 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); | 1644 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); |
(...skipping 21 matching lines...) Expand all Loading... |
1599 CONTENT_SETTING_ASK); | 1666 CONTENT_SETTING_ASK); |
1600 EXPECT_FALSE(tester.RecordDismissAndEmbargo( | 1667 EXPECT_FALSE(tester.RecordDismissAndEmbargo( |
1601 kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); | 1668 kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); |
1602 EXPECT_FALSE(tester.RecordDismissAndEmbargo( | 1669 EXPECT_FALSE(tester.RecordDismissAndEmbargo( |
1603 kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); | 1670 kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); |
1604 EXPECT_TRUE(tester.RecordDismissAndEmbargo( | 1671 EXPECT_TRUE(tester.RecordDismissAndEmbargo( |
1605 kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); | 1672 kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); |
1606 tester.CheckEmbargo(kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, | 1673 tester.CheckEmbargo(kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, |
1607 CONTENT_SETTING_BLOCK); | 1674 CONTENT_SETTING_BLOCK); |
1608 | 1675 |
1609 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), | 1676 BlockUntilOriginDataRemoved( |
1610 BrowsingDataRemover::REMOVE_SITE_USAGE_DATA, | 1677 AnHourAgo(), base::Time::Max(), |
1611 std::move(filter_builder_1)); | 1678 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_USAGE_DATA, |
| 1679 std::move(filter_builder_1)); |
1612 | 1680 |
1613 // kOrigin1 should be gone, but kOrigin2 remains. | 1681 // kOrigin1 should be gone, but kOrigin2 remains. |
1614 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, | 1682 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, |
1615 CONTENT_SETTINGS_TYPE_GEOLOCATION)); | 1683 CONTENT_SETTINGS_TYPE_GEOLOCATION)); |
1616 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, | 1684 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, |
1617 CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); | 1685 CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); |
1618 EXPECT_EQ(0, tester.GetDismissCount(kOrigin1, | 1686 EXPECT_EQ(0, tester.GetDismissCount(kOrigin1, |
1619 CONTENT_SETTINGS_TYPE_MIDI_SYSEX)); | 1687 CONTENT_SETTINGS_TYPE_MIDI_SYSEX)); |
1620 EXPECT_EQ(1, tester.GetIgnoreCount( | 1688 EXPECT_EQ(1, tester.GetIgnoreCount( |
1621 kOrigin2, CONTENT_SETTINGS_TYPE_DURABLE_STORAGE)); | 1689 kOrigin2, CONTENT_SETTINGS_TYPE_DURABLE_STORAGE)); |
1622 EXPECT_EQ(3, tester.GetDismissCount(kOrigin2, | 1690 EXPECT_EQ(3, tester.GetDismissCount(kOrigin2, |
1623 CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); | 1691 CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); |
1624 tester.CheckEmbargo(kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, | 1692 tester.CheckEmbargo(kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, |
1625 CONTENT_SETTING_BLOCK); | 1693 CONTENT_SETTING_BLOCK); |
1626 | 1694 |
1627 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), | 1695 BlockUntilBrowsingDataRemoved( |
1628 BrowsingDataRemover::REMOVE_HISTORY, false); | 1696 AnHourAgo(), base::Time::Max(), |
| 1697 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, false); |
1629 | 1698 |
1630 // Everything should be gone. | 1699 // Everything should be gone. |
1631 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, | 1700 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, |
1632 CONTENT_SETTINGS_TYPE_GEOLOCATION)); | 1701 CONTENT_SETTINGS_TYPE_GEOLOCATION)); |
1633 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, | 1702 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, |
1634 CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); | 1703 CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); |
1635 EXPECT_EQ(0, tester.GetDismissCount(kOrigin1, | 1704 EXPECT_EQ(0, tester.GetDismissCount(kOrigin1, |
1636 CONTENT_SETTINGS_TYPE_MIDI_SYSEX)); | 1705 CONTENT_SETTINGS_TYPE_MIDI_SYSEX)); |
1637 EXPECT_EQ(0, tester.GetIgnoreCount( | 1706 EXPECT_EQ(0, tester.GetIgnoreCount( |
1638 kOrigin2, CONTENT_SETTINGS_TYPE_DURABLE_STORAGE)); | 1707 kOrigin2, CONTENT_SETTINGS_TYPE_DURABLE_STORAGE)); |
(...skipping 12 matching lines...) Expand all Loading... |
1651 CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); | 1720 CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); |
1652 EXPECT_FALSE(tester.RecordDismissAndEmbargo( | 1721 EXPECT_FALSE(tester.RecordDismissAndEmbargo( |
1653 kOrigin1, CONTENT_SETTINGS_TYPE_MIDI_SYSEX)); | 1722 kOrigin1, CONTENT_SETTINGS_TYPE_MIDI_SYSEX)); |
1654 tester.CheckEmbargo(kOrigin1, CONTENT_SETTINGS_TYPE_MIDI_SYSEX, | 1723 tester.CheckEmbargo(kOrigin1, CONTENT_SETTINGS_TYPE_MIDI_SYSEX, |
1655 CONTENT_SETTING_ASK); | 1724 CONTENT_SETTING_ASK); |
1656 EXPECT_EQ(1, tester.RecordIgnore(kOrigin2, | 1725 EXPECT_EQ(1, tester.RecordIgnore(kOrigin2, |
1657 CONTENT_SETTINGS_TYPE_DURABLE_STORAGE)); | 1726 CONTENT_SETTINGS_TYPE_DURABLE_STORAGE)); |
1658 EXPECT_FALSE(tester.RecordDismissAndEmbargo( | 1727 EXPECT_FALSE(tester.RecordDismissAndEmbargo( |
1659 kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); | 1728 kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); |
1660 | 1729 |
1661 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), | 1730 BlockUntilOriginDataRemoved( |
1662 BrowsingDataRemover::REMOVE_SITE_USAGE_DATA, | 1731 AnHourAgo(), base::Time::Max(), |
1663 std::move(filter_builder_2)); | 1732 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_USAGE_DATA, |
| 1733 std::move(filter_builder_2)); |
1664 | 1734 |
1665 // kOrigin2 should be gone, but kOrigin1 remains. | 1735 // kOrigin2 should be gone, but kOrigin1 remains. |
1666 EXPECT_EQ(2, tester.GetIgnoreCount(kOrigin1, | 1736 EXPECT_EQ(2, tester.GetIgnoreCount(kOrigin1, |
1667 CONTENT_SETTINGS_TYPE_GEOLOCATION)); | 1737 CONTENT_SETTINGS_TYPE_GEOLOCATION)); |
1668 EXPECT_EQ(1, tester.GetIgnoreCount(kOrigin1, | 1738 EXPECT_EQ(1, tester.GetIgnoreCount(kOrigin1, |
1669 CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); | 1739 CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); |
1670 EXPECT_EQ(1, tester.GetDismissCount(kOrigin1, | 1740 EXPECT_EQ(1, tester.GetDismissCount(kOrigin1, |
1671 CONTENT_SETTINGS_TYPE_MIDI_SYSEX)); | 1741 CONTENT_SETTINGS_TYPE_MIDI_SYSEX)); |
1672 EXPECT_EQ(0, tester.GetIgnoreCount( | 1742 EXPECT_EQ(0, tester.GetIgnoreCount( |
1673 kOrigin2, CONTENT_SETTINGS_TYPE_DURABLE_STORAGE)); | 1743 kOrigin2, CONTENT_SETTINGS_TYPE_DURABLE_STORAGE)); |
1674 EXPECT_EQ(0, tester.GetDismissCount( | 1744 EXPECT_EQ(0, tester.GetDismissCount( |
1675 kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); | 1745 kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); |
1676 | 1746 |
1677 EXPECT_FALSE(tester.RecordDismissAndEmbargo( | 1747 EXPECT_FALSE(tester.RecordDismissAndEmbargo( |
1678 kOrigin1, CONTENT_SETTINGS_TYPE_MIDI_SYSEX)); | 1748 kOrigin1, CONTENT_SETTINGS_TYPE_MIDI_SYSEX)); |
1679 EXPECT_TRUE(tester.RecordDismissAndEmbargo( | 1749 EXPECT_TRUE(tester.RecordDismissAndEmbargo( |
1680 kOrigin1, CONTENT_SETTINGS_TYPE_MIDI_SYSEX)); | 1750 kOrigin1, CONTENT_SETTINGS_TYPE_MIDI_SYSEX)); |
1681 EXPECT_EQ( | 1751 EXPECT_EQ( |
1682 3, tester.GetDismissCount(kOrigin1, CONTENT_SETTINGS_TYPE_MIDI_SYSEX)); | 1752 3, tester.GetDismissCount(kOrigin1, CONTENT_SETTINGS_TYPE_MIDI_SYSEX)); |
1683 tester.CheckEmbargo(kOrigin1, CONTENT_SETTINGS_TYPE_MIDI_SYSEX, | 1753 tester.CheckEmbargo(kOrigin1, CONTENT_SETTINGS_TYPE_MIDI_SYSEX, |
1684 CONTENT_SETTING_BLOCK); | 1754 CONTENT_SETTING_BLOCK); |
1685 | 1755 |
1686 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), | 1756 BlockUntilBrowsingDataRemoved( |
1687 BrowsingDataRemover::REMOVE_SITE_USAGE_DATA, | 1757 AnHourAgo(), base::Time::Max(), |
1688 false); | 1758 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_USAGE_DATA, false); |
1689 | 1759 |
1690 // Everything should be gone. | 1760 // Everything should be gone. |
1691 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, | 1761 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, |
1692 CONTENT_SETTINGS_TYPE_GEOLOCATION)); | 1762 CONTENT_SETTINGS_TYPE_GEOLOCATION)); |
1693 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, | 1763 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, |
1694 CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); | 1764 CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); |
1695 EXPECT_EQ(0, tester.GetDismissCount(kOrigin1, | 1765 EXPECT_EQ(0, tester.GetDismissCount(kOrigin1, |
1696 CONTENT_SETTINGS_TYPE_MIDI_SYSEX)); | 1766 CONTENT_SETTINGS_TYPE_MIDI_SYSEX)); |
1697 EXPECT_EQ(0, tester.GetIgnoreCount( | 1767 EXPECT_EQ(0, tester.GetIgnoreCount( |
1698 kOrigin2, CONTENT_SETTINGS_TYPE_DURABLE_STORAGE)); | 1768 kOrigin2, CONTENT_SETTINGS_TYPE_DURABLE_STORAGE)); |
(...skipping 13 matching lines...) Expand all Loading... |
1712 tester.AddDomain(kOrigin3.host()); | 1782 tester.AddDomain(kOrigin3.host()); |
1713 | 1783 |
1714 std::vector<std::string> expected = { | 1784 std::vector<std::string> expected = { |
1715 kOrigin1.host(), kOrigin2.host(), kOrigin3.host() }; | 1785 kOrigin1.host(), kOrigin2.host(), kOrigin3.host() }; |
1716 EXPECT_EQ(expected, tester.GetDomains()); | 1786 EXPECT_EQ(expected, tester.GetDomains()); |
1717 | 1787 |
1718 // Delete data with a filter for the registrable domain of |kOrigin3|. | 1788 // Delete data with a filter for the registrable domain of |kOrigin3|. |
1719 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder( | 1789 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder( |
1720 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); | 1790 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); |
1721 filter_builder->AddRegisterableDomain(kTestRegisterableDomain3); | 1791 filter_builder->AddRegisterableDomain(kTestRegisterableDomain3); |
1722 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), | 1792 BlockUntilOriginDataRemoved( |
1723 BrowsingDataRemover::REMOVE_PLUGIN_DATA, | 1793 base::Time(), base::Time::Max(), |
1724 std::move(filter_builder)); | 1794 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA, |
| 1795 std::move(filter_builder)); |
1725 | 1796 |
1726 // Plugin data for |kOrigin3.host()| should have been removed. | 1797 // Plugin data for |kOrigin3.host()| should have been removed. |
1727 expected.pop_back(); | 1798 expected.pop_back(); |
1728 EXPECT_EQ(expected, tester.GetDomains()); | 1799 EXPECT_EQ(expected, tester.GetDomains()); |
1729 | 1800 |
1730 // TODO(msramek): Mock PluginDataRemover and test the complete deletion | 1801 // TODO(msramek): Mock PluginDataRemover and test the complete deletion |
1731 // of plugin data as well. | 1802 // of plugin data as well. |
1732 } | 1803 } |
1733 #endif | 1804 #endif |
1734 | 1805 |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1777 bookmark_model, 2, base::Time::UnixEpoch(), | 1848 bookmark_model, 2, base::Time::UnixEpoch(), |
1778 /*consider_visits_from_desktop=*/false), | 1849 /*consider_visits_from_desktop=*/false), |
1779 Not(IsEmpty())); | 1850 Not(IsEmpty())); |
1780 | 1851 |
1781 // Inject the bookmark model into the remover. | 1852 // Inject the bookmark model into the remover. |
1782 BrowsingDataRemover* remover = | 1853 BrowsingDataRemover* remover = |
1783 BrowsingDataRemoverFactory::GetForBrowserContext(&profile); | 1854 BrowsingDataRemoverFactory::GetForBrowserContext(&profile); |
1784 | 1855 |
1785 BrowsingDataRemoverCompletionObserver completion_observer(remover); | 1856 BrowsingDataRemoverCompletionObserver completion_observer(remover); |
1786 remover->RemoveAndReply(delete_begin, base::Time::Max(), | 1857 remover->RemoveAndReply(delete_begin, base::Time::Max(), |
1787 BrowsingDataRemover::REMOVE_HISTORY, | 1858 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, |
1788 BrowsingDataHelper::ALL, &completion_observer); | 1859 ChromeBrowsingDataRemoverDelegate::ALL_ORIGIN_TYPES, |
| 1860 &completion_observer); |
1789 completion_observer.BlockUntilCompletion(); | 1861 completion_observer.BlockUntilCompletion(); |
1790 | 1862 |
1791 // There should be only 1 recently visited bookmarks. | 1863 // There should be only 1 recently visited bookmarks. |
1792 std::vector<const bookmarks::BookmarkNode*> remaining_nodes = | 1864 std::vector<const bookmarks::BookmarkNode*> remaining_nodes = |
1793 ntp_snippets::GetRecentlyVisitedBookmarks( | 1865 ntp_snippets::GetRecentlyVisitedBookmarks( |
1794 bookmark_model, 3, base::Time::UnixEpoch(), | 1866 bookmark_model, 3, base::Time::UnixEpoch(), |
1795 /*consider_visits_from_desktop=*/true); | 1867 /*consider_visits_from_desktop=*/true); |
1796 EXPECT_THAT(remaining_nodes, SizeIs(1)); | 1868 EXPECT_THAT(remaining_nodes, SizeIs(1)); |
1797 EXPECT_THAT(remaining_nodes[0]->url().spec(), Eq("http://foo-2.org/")); | 1869 EXPECT_THAT(remaining_nodes[0]->url().spec(), Eq("http://foo-2.org/")); |
1798 } | 1870 } |
1799 | 1871 |
1800 // Test that the remover clears language model data (normally added by the | 1872 // Test that the remover clears language model data (normally added by the |
1801 // ChromeTranslateClient). | 1873 // ChromeTranslateClient). |
1802 TEST_F(ChromeBrowsingDataRemoverDelegateTest, | 1874 TEST_F(ChromeBrowsingDataRemoverDelegateTest, |
1803 LanguageModelClearedOnClearingCompleteHistory) { | 1875 LanguageModelClearedOnClearingCompleteHistory) { |
1804 translate::LanguageModel* language_model = | 1876 translate::LanguageModel* language_model = |
1805 LanguageModelFactory::GetInstance()->GetForBrowserContext(GetProfile()); | 1877 LanguageModelFactory::GetInstance()->GetForBrowserContext(GetProfile()); |
1806 | 1878 |
1807 // Simulate browsing. | 1879 // Simulate browsing. |
1808 for (int i = 0; i < 100; i++) { | 1880 for (int i = 0; i < 100; i++) { |
1809 language_model->OnPageVisited("en"); | 1881 language_model->OnPageVisited("en"); |
1810 language_model->OnPageVisited("en"); | 1882 language_model->OnPageVisited("en"); |
1811 language_model->OnPageVisited("en"); | 1883 language_model->OnPageVisited("en"); |
1812 language_model->OnPageVisited("es"); | 1884 language_model->OnPageVisited("es"); |
1813 } | 1885 } |
1814 | 1886 |
1815 // Clearing a part of the history has no effect. | 1887 // Clearing a part of the history has no effect. |
1816 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), | 1888 BlockUntilBrowsingDataRemoved( |
1817 BrowsingDataRemover::REMOVE_HISTORY, false); | 1889 AnHourAgo(), base::Time::Max(), |
| 1890 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, false); |
1818 | 1891 |
1819 EXPECT_THAT(language_model->GetTopLanguages(), SizeIs(2)); | 1892 EXPECT_THAT(language_model->GetTopLanguages(), SizeIs(2)); |
1820 EXPECT_THAT(language_model->GetLanguageFrequency("en"), FloatEq(0.75)); | 1893 EXPECT_THAT(language_model->GetLanguageFrequency("en"), FloatEq(0.75)); |
1821 EXPECT_THAT(language_model->GetLanguageFrequency("es"), FloatEq(0.25)); | 1894 EXPECT_THAT(language_model->GetLanguageFrequency("es"), FloatEq(0.25)); |
1822 | 1895 |
1823 // Clearing the full history does the trick. | 1896 // Clearing the full history does the trick. |
1824 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), | 1897 BlockUntilBrowsingDataRemoved( |
1825 BrowsingDataRemover::REMOVE_HISTORY, false); | 1898 base::Time(), base::Time::Max(), |
| 1899 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, false); |
1826 | 1900 |
1827 EXPECT_THAT(language_model->GetTopLanguages(), SizeIs(0)); | 1901 EXPECT_THAT(language_model->GetTopLanguages(), SizeIs(0)); |
1828 EXPECT_THAT(language_model->GetLanguageFrequency("en"), FloatEq(0.0)); | 1902 EXPECT_THAT(language_model->GetLanguageFrequency("en"), FloatEq(0.0)); |
1829 EXPECT_THAT(language_model->GetLanguageFrequency("es"), FloatEq(0.0)); | 1903 EXPECT_THAT(language_model->GetLanguageFrequency("es"), FloatEq(0.0)); |
1830 } | 1904 } |
| 1905 |
| 1906 #if BUILDFLAG(ENABLE_EXTENSIONS) |
| 1907 TEST_F(ChromeBrowsingDataRemoverDelegateTest, OriginTypeMasks) { |
| 1908 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = |
| 1909 new MockExtensionSpecialStoragePolicy; |
| 1910 // Protect kOrigin1. |
| 1911 mock_policy->AddProtected(kOrigin1.GetOrigin()); |
| 1912 |
| 1913 EXPECT_FALSE(Match(kOrigin1, kUnprotected, mock_policy.get())); |
| 1914 EXPECT_TRUE(Match(kOrigin2, kUnprotected, mock_policy.get())); |
| 1915 EXPECT_FALSE(Match(kOriginExt, kUnprotected, mock_policy.get())); |
| 1916 EXPECT_FALSE(Match(kOriginDevTools, kUnprotected, mock_policy.get())); |
| 1917 |
| 1918 EXPECT_TRUE(Match(kOrigin1, kProtected, mock_policy.get())); |
| 1919 EXPECT_FALSE(Match(kOrigin2, kProtected, mock_policy.get())); |
| 1920 EXPECT_FALSE(Match(kOriginExt, kProtected, mock_policy.get())); |
| 1921 EXPECT_FALSE(Match(kOriginDevTools, kProtected, mock_policy.get())); |
| 1922 |
| 1923 EXPECT_FALSE(Match(kOrigin1, kExtension, mock_policy.get())); |
| 1924 EXPECT_FALSE(Match(kOrigin2, kExtension, mock_policy.get())); |
| 1925 EXPECT_TRUE(Match(kOriginExt, kExtension, mock_policy.get())); |
| 1926 EXPECT_FALSE(Match(kOriginDevTools, kExtension, mock_policy.get())); |
| 1927 |
| 1928 EXPECT_TRUE(Match(kOrigin1, kUnprotected | kProtected, mock_policy.get())); |
| 1929 EXPECT_TRUE(Match(kOrigin2, kUnprotected | kProtected, mock_policy.get())); |
| 1930 EXPECT_FALSE(Match(kOriginExt, kUnprotected | kProtected, mock_policy.get())); |
| 1931 EXPECT_FALSE( |
| 1932 Match(kOriginDevTools, kUnprotected | kProtected, mock_policy.get())); |
| 1933 |
| 1934 EXPECT_FALSE(Match(kOrigin1, kUnprotected | kExtension, mock_policy.get())); |
| 1935 EXPECT_TRUE(Match(kOrigin2, kUnprotected | kExtension, mock_policy.get())); |
| 1936 EXPECT_TRUE(Match(kOriginExt, kUnprotected | kExtension, mock_policy.get())); |
| 1937 EXPECT_FALSE( |
| 1938 Match(kOriginDevTools, kUnprotected | kExtension, mock_policy.get())); |
| 1939 |
| 1940 EXPECT_TRUE(Match(kOrigin1, kProtected | kExtension, mock_policy.get())); |
| 1941 EXPECT_FALSE(Match(kOrigin2, kProtected | kExtension, mock_policy.get())); |
| 1942 EXPECT_TRUE(Match(kOriginExt, kProtected | kExtension, mock_policy.get())); |
| 1943 EXPECT_FALSE( |
| 1944 Match(kOriginDevTools, kProtected | kExtension, mock_policy.get())); |
| 1945 |
| 1946 EXPECT_TRUE(Match(kOrigin1, kUnprotected | kProtected | kExtension, |
| 1947 mock_policy.get())); |
| 1948 EXPECT_TRUE(Match(kOrigin2, kUnprotected | kProtected | kExtension, |
| 1949 mock_policy.get())); |
| 1950 EXPECT_TRUE(Match(kOriginExt, kUnprotected | kProtected | kExtension, |
| 1951 mock_policy.get())); |
| 1952 EXPECT_FALSE(Match(kOriginDevTools, kUnprotected | kProtected | kExtension, |
| 1953 mock_policy.get())); |
| 1954 } |
| 1955 #endif |
| 1956 |
| 1957 // If extensions are disabled, there is no policy. |
| 1958 TEST_F(ChromeBrowsingDataRemoverDelegateTest, OriginTypeMasksNoPolicy) { |
| 1959 EXPECT_TRUE(Match(kOrigin1, kUnprotected, nullptr)); |
| 1960 EXPECT_FALSE(Match(kOriginExt, kUnprotected, nullptr)); |
| 1961 EXPECT_FALSE(Match(kOriginDevTools, kUnprotected, nullptr)); |
| 1962 |
| 1963 EXPECT_FALSE(Match(kOrigin1, kProtected, nullptr)); |
| 1964 EXPECT_FALSE(Match(kOriginExt, kProtected, nullptr)); |
| 1965 EXPECT_FALSE(Match(kOriginDevTools, kProtected, nullptr)); |
| 1966 |
| 1967 #if BUILDFLAG(ENABLE_EXTENSIONS) |
| 1968 EXPECT_FALSE(Match(kOrigin1, kExtension, nullptr)); |
| 1969 EXPECT_TRUE(Match(kOriginExt, kExtension, nullptr)); |
| 1970 EXPECT_FALSE(Match(kOriginDevTools, kExtension, nullptr)); |
| 1971 #endif |
| 1972 } |
OLD | NEW |