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

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

Issue 2798243004: Show password sync status in CBD (Closed)
Patch Set: fix browser_tests and ios Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2015 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2015 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 "components/browsing_data/core/counters/passwords_counter.h" 5 #include "components/browsing_data/core/counters/passwords_counter.h"
6 6
7 #include "base/run_loop.h" 7 #include "base/run_loop.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "base/synchronization/waitable_event.h" 9 #include "base/synchronization/waitable_event.h"
10 #include "chrome/browser/password_manager/password_store_factory.h" 10 #include "chrome/browser/password_manager/password_store_factory.h"
11 #include "chrome/browser/sync/profile_sync_service_factory.h"
11 #include "chrome/browser/sync/test/integration/passwords_helper.h" 12 #include "chrome/browser/sync/test/integration/passwords_helper.h"
12 #include "chrome/browser/ui/browser.h" 13 #include "chrome/browser/ui/browser.h"
13 #include "chrome/test/base/in_process_browser_test.h" 14 #include "chrome/test/base/in_process_browser_test.h"
14 #include "components/autofill/core/common/password_form.h" 15 #include "components/autofill/core/common/password_form.h"
16 #include "components/browser_sync/profile_sync_service_mock.h"
15 #include "components/browsing_data/core/browsing_data_utils.h" 17 #include "components/browsing_data/core/browsing_data_utils.h"
16 #include "components/browsing_data/core/pref_names.h" 18 #include "components/browsing_data/core/pref_names.h"
17 #include "components/prefs/pref_service.h" 19 #include "components/prefs/pref_service.h"
18 #include "content/public/browser/browser_thread.h" 20 #include "content/public/browser/browser_thread.h"
19 21
20 namespace { 22 namespace {
21 23
22 using autofill::PasswordForm; 24 using autofill::PasswordForm;
23 25
24 class PasswordsCounterTest : public InProcessBrowserTest { 26 class PasswordsCounterTest : public InProcessBrowserTest {
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 // we get a finished result. 79 // we get a finished result.
78 run_loop_.reset(new base::RunLoop()); 80 run_loop_.reset(new base::RunLoop());
79 run_loop_->Run(); 81 run_loop_->Run();
80 } 82 }
81 83
82 browsing_data::BrowsingDataCounter::ResultInt GetResult() { 84 browsing_data::BrowsingDataCounter::ResultInt GetResult() {
83 DCHECK(finished_); 85 DCHECK(finished_);
84 return result_; 86 return result_;
85 } 87 }
86 88
89 bool HasSyncedPasswords() {
90 DCHECK(finished_);
91 return has_synced_passwords_;
92 }
93
87 void Callback( 94 void Callback(
88 std::unique_ptr<browsing_data::BrowsingDataCounter::Result> result) { 95 std::unique_ptr<browsing_data::BrowsingDataCounter::Result> result) {
89 finished_ = result->Finished(); 96 finished_ = result->Finished();
90 97
91 if (finished_) { 98 if (finished_) {
92 result_ = 99 auto* password_result =
93 static_cast<browsing_data::BrowsingDataCounter::FinishedResult*>( 100 static_cast<browsing_data::PasswordsCounter::PasswordResult*>(
94 result.get()) 101 result.get());
95 ->Value(); 102 result_ = password_result->Value();
103 has_synced_passwords_ = password_result->has_synced_passwords();
96 } 104 }
97 105
98 if (finished_) 106 if (finished_)
99 run_loop_->Quit(); 107 run_loop_->Quit();
100 } 108 }
101 109
102 void WaitForUICallbacksFromAddingLogins() { 110 void WaitForUICallbacksFromAddingLogins() {
103 base::RunLoop loop; 111 base::RunLoop loop;
104 loop.RunUntilIdle(); 112 loop.RunUntilIdle();
105 } 113 }
(...skipping 12 matching lines...) Expand all
118 return result; 126 return result;
119 } 127 }
120 128
121 scoped_refptr<password_manager::PasswordStore> store_; 129 scoped_refptr<password_manager::PasswordStore> store_;
122 130
123 std::unique_ptr<base::RunLoop> run_loop_; 131 std::unique_ptr<base::RunLoop> run_loop_;
124 base::Time time_; 132 base::Time time_;
125 133
126 bool finished_; 134 bool finished_;
127 browsing_data::BrowsingDataCounter::ResultInt result_; 135 browsing_data::BrowsingDataCounter::ResultInt result_;
136 bool has_synced_passwords_;
128 }; 137 };
129 138
130 // Tests that the counter correctly counts each individual credential on 139 // Tests that the counter correctly counts each individual credential on
131 // the same domain. 140 // the same domain.
132 IN_PROC_BROWSER_TEST_F(PasswordsCounterTest, SameDomain) { 141 IN_PROC_BROWSER_TEST_F(PasswordsCounterTest, SameDomain) {
133 AddLogin("https://www.google.com", "user1", false); 142 AddLogin("https://www.google.com", "user1", false);
134 AddLogin("https://www.google.com", "user2", false); 143 AddLogin("https://www.google.com", "user2", false);
135 AddLogin("https://www.google.com", "user3", false); 144 AddLogin("https://www.google.com", "user3", false);
136 AddLogin("https://www.chrome.com", "user1", false); 145 AddLogin("https://www.chrome.com", "user1", false);
137 AddLogin("https://www.chrome.com", "user2", false); 146 AddLogin("https://www.chrome.com", "user2", false);
138 WaitForUICallbacksFromAddingLogins(); 147 WaitForUICallbacksFromAddingLogins();
139 148
140 Profile* profile = browser()->profile(); 149 Profile* profile = browser()->profile();
141 browsing_data::PasswordsCounter counter(PasswordStoreFactory::GetForProfile( 150 browsing_data::PasswordsCounter counter(
142 profile, ServiceAccessType::EXPLICIT_ACCESS)); 151 PasswordStoreFactory::GetForProfile(profile,
152 ServiceAccessType::EXPLICIT_ACCESS),
153 ProfileSyncServiceFactory::GetForProfile(profile));
143 counter.Init( 154 counter.Init(
144 profile->GetPrefs(), browsing_data::ClearBrowsingDataTab::ADVANCED, 155 profile->GetPrefs(), browsing_data::ClearBrowsingDataTab::ADVANCED,
145 base::Bind(&PasswordsCounterTest::Callback, base::Unretained(this))); 156 base::Bind(&PasswordsCounterTest::Callback, base::Unretained(this)));
146 counter.Restart(); 157 counter.Restart();
147 158
148 WaitForCounting(); 159 WaitForCounting();
149 EXPECT_EQ(5u, GetResult()); 160 EXPECT_EQ(5u, GetResult());
161 EXPECT_EQ(false, HasSyncedPasswords());
150 } 162 }
151 163
152 // Tests that the counter doesn't count blacklisted entries. 164 // Tests that the counter doesn't count blacklisted entries.
153 IN_PROC_BROWSER_TEST_F(PasswordsCounterTest, Blacklisted) { 165 IN_PROC_BROWSER_TEST_F(PasswordsCounterTest, Blacklisted) {
154 AddLogin("https://www.google.com", "user1", false); 166 AddLogin("https://www.google.com", "user1", false);
155 AddLogin("https://www.google.com", "user2", true); 167 AddLogin("https://www.google.com", "user2", true);
156 AddLogin("https://www.chrome.com", "user3", true); 168 AddLogin("https://www.chrome.com", "user3", true);
157 WaitForUICallbacksFromAddingLogins(); 169 WaitForUICallbacksFromAddingLogins();
158 170
159 Profile* profile = browser()->profile(); 171 Profile* profile = browser()->profile();
160 browsing_data::PasswordsCounter counter(PasswordStoreFactory::GetForProfile( 172 browsing_data::PasswordsCounter counter(
161 profile, ServiceAccessType::EXPLICIT_ACCESS)); 173 PasswordStoreFactory::GetForProfile(profile,
174 ServiceAccessType::EXPLICIT_ACCESS),
175 ProfileSyncServiceFactory::GetForProfile(profile));
162 176
163 counter.Init( 177 counter.Init(
164 profile->GetPrefs(), browsing_data::ClearBrowsingDataTab::ADVANCED, 178 profile->GetPrefs(), browsing_data::ClearBrowsingDataTab::ADVANCED,
165 base::Bind(&PasswordsCounterTest::Callback, base::Unretained(this))); 179 base::Bind(&PasswordsCounterTest::Callback, base::Unretained(this)));
166 counter.Restart(); 180 counter.Restart();
167 181
168 WaitForCounting(); 182 WaitForCounting();
169 EXPECT_EQ(1u, GetResult()); 183 EXPECT_EQ(1u, GetResult());
184 EXPECT_EQ(false, HasSyncedPasswords());
170 } 185 }
171 186
172 // Tests that the counter starts counting automatically when the deletion 187 // Tests that the counter starts counting automatically when the deletion
173 // pref changes to true. 188 // pref changes to true.
174 IN_PROC_BROWSER_TEST_F(PasswordsCounterTest, PrefChanged) { 189 IN_PROC_BROWSER_TEST_F(PasswordsCounterTest, PrefChanged) {
175 SetPasswordsDeletionPref(false); 190 SetPasswordsDeletionPref(false);
176 AddLogin("https://www.google.com", "user", false); 191 AddLogin("https://www.google.com", "user", false);
177 AddLogin("https://www.chrome.com", "user", false); 192 AddLogin("https://www.chrome.com", "user", false);
178 WaitForUICallbacksFromAddingLogins(); 193 WaitForUICallbacksFromAddingLogins();
179 194
180 Profile* profile = browser()->profile(); 195 Profile* profile = browser()->profile();
181 browsing_data::PasswordsCounter counter(PasswordStoreFactory::GetForProfile( 196 browsing_data::PasswordsCounter counter(
182 profile, ServiceAccessType::EXPLICIT_ACCESS)); 197 PasswordStoreFactory::GetForProfile(profile,
198 ServiceAccessType::EXPLICIT_ACCESS),
199 ProfileSyncServiceFactory::GetForProfile(profile));
183 counter.Init( 200 counter.Init(
184 profile->GetPrefs(), browsing_data::ClearBrowsingDataTab::ADVANCED, 201 profile->GetPrefs(), browsing_data::ClearBrowsingDataTab::ADVANCED,
185 base::Bind(&PasswordsCounterTest::Callback, base::Unretained(this))); 202 base::Bind(&PasswordsCounterTest::Callback, base::Unretained(this)));
186 SetPasswordsDeletionPref(true); 203 SetPasswordsDeletionPref(true);
187 204
188 WaitForCounting(); 205 WaitForCounting();
189 EXPECT_EQ(2u, GetResult()); 206 EXPECT_EQ(2u, GetResult());
207 EXPECT_EQ(false, HasSyncedPasswords());
190 } 208 }
191 209
192 // Tests that the counter starts counting automatically when 210 // Tests that the counter starts counting automatically when
193 // the password store changes. 211 // the password store changes.
194 IN_PROC_BROWSER_TEST_F(PasswordsCounterTest, StoreChanged) { 212 IN_PROC_BROWSER_TEST_F(PasswordsCounterTest, StoreChanged) {
195 AddLogin("https://www.google.com", "user", false); 213 AddLogin("https://www.google.com", "user", false);
196 WaitForUICallbacksFromAddingLogins(); 214 WaitForUICallbacksFromAddingLogins();
197 215
198 Profile* profile = browser()->profile(); 216 Profile* profile = browser()->profile();
199 browsing_data::PasswordsCounter counter(PasswordStoreFactory::GetForProfile( 217 browsing_data::PasswordsCounter counter(
200 profile, ServiceAccessType::EXPLICIT_ACCESS)); 218 PasswordStoreFactory::GetForProfile(profile,
219 ServiceAccessType::EXPLICIT_ACCESS),
220 ProfileSyncServiceFactory::GetForProfile(profile));
201 counter.Init( 221 counter.Init(
202 profile->GetPrefs(), browsing_data::ClearBrowsingDataTab::ADVANCED, 222 profile->GetPrefs(), browsing_data::ClearBrowsingDataTab::ADVANCED,
203 base::Bind(&PasswordsCounterTest::Callback, base::Unretained(this))); 223 base::Bind(&PasswordsCounterTest::Callback, base::Unretained(this)));
204 counter.Restart(); 224 counter.Restart();
205 225
206 WaitForCounting(); 226 WaitForCounting();
207 EXPECT_EQ(1u, GetResult()); 227 EXPECT_EQ(1u, GetResult());
208 228
209 AddLogin("https://www.chrome.com", "user", false); 229 AddLogin("https://www.chrome.com", "user", false);
210 WaitForCounting(); 230 WaitForCounting();
(...skipping 10 matching lines...) Expand all
221 AddLogin("https://www.google.com", "user", false); 241 AddLogin("https://www.google.com", "user", false);
222 RevertTimeInDays(2); 242 RevertTimeInDays(2);
223 AddLogin("https://example.com", "user1", false); 243 AddLogin("https://example.com", "user1", false);
224 RevertTimeInDays(3); 244 RevertTimeInDays(3);
225 AddLogin("https://example.com", "user2", false); 245 AddLogin("https://example.com", "user2", false);
226 RevertTimeInDays(30); 246 RevertTimeInDays(30);
227 AddLogin("https://www.chrome.com", "user", false); 247 AddLogin("https://www.chrome.com", "user", false);
228 WaitForUICallbacksFromAddingLogins(); 248 WaitForUICallbacksFromAddingLogins();
229 249
230 Profile* profile = browser()->profile(); 250 Profile* profile = browser()->profile();
231 browsing_data::PasswordsCounter counter(PasswordStoreFactory::GetForProfile( 251 browsing_data::PasswordsCounter counter(
232 profile, ServiceAccessType::EXPLICIT_ACCESS)); 252 PasswordStoreFactory::GetForProfile(profile,
253 ServiceAccessType::EXPLICIT_ACCESS),
254 ProfileSyncServiceFactory::GetForProfile(profile));
233 counter.Init( 255 counter.Init(
234 profile->GetPrefs(), browsing_data::ClearBrowsingDataTab::ADVANCED, 256 profile->GetPrefs(), browsing_data::ClearBrowsingDataTab::ADVANCED,
235 base::Bind(&PasswordsCounterTest::Callback, base::Unretained(this))); 257 base::Bind(&PasswordsCounterTest::Callback, base::Unretained(this)));
236 258
237 SetDeletionPeriodPref(browsing_data::TimePeriod::LAST_HOUR); 259 SetDeletionPeriodPref(browsing_data::TimePeriod::LAST_HOUR);
238 WaitForCounting(); 260 WaitForCounting();
239 EXPECT_EQ(1u, GetResult()); 261 EXPECT_EQ(1u, GetResult());
240 262
241 SetDeletionPeriodPref(browsing_data::TimePeriod::LAST_DAY); 263 SetDeletionPeriodPref(browsing_data::TimePeriod::LAST_DAY);
242 WaitForCounting(); 264 WaitForCounting();
243 EXPECT_EQ(1u, GetResult()); 265 EXPECT_EQ(1u, GetResult());
244 266
245 SetDeletionPeriodPref(browsing_data::TimePeriod::LAST_WEEK); 267 SetDeletionPeriodPref(browsing_data::TimePeriod::LAST_WEEK);
246 WaitForCounting(); 268 WaitForCounting();
247 EXPECT_EQ(3u, GetResult()); 269 EXPECT_EQ(3u, GetResult());
248 270
249 SetDeletionPeriodPref(browsing_data::TimePeriod::FOUR_WEEKS); 271 SetDeletionPeriodPref(browsing_data::TimePeriod::FOUR_WEEKS);
250 WaitForCounting(); 272 WaitForCounting();
251 EXPECT_EQ(3u, GetResult()); 273 EXPECT_EQ(3u, GetResult());
252 274
253 SetDeletionPeriodPref(browsing_data::TimePeriod::ALL_TIME); 275 SetDeletionPeriodPref(browsing_data::TimePeriod::ALL_TIME);
254 WaitForCounting(); 276 WaitForCounting();
255 EXPECT_EQ(4u, GetResult()); 277 EXPECT_EQ(4u, GetResult());
256 } 278 }
257 279
258 } // namespace 280 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698