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

Side by Side Diff: components/password_manager/sync/browser/sync_credentials_filter_unittest.cc

Issue 2900693002: [Password Manager] Convert |pending_login_managers_| to an array of scoped_refptr (Closed)
Patch Set: Rebase Created 3 years, 6 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 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/password_manager/sync/browser/sync_credentials_filter.h" 5 #include "components/password_manager/sync/browser/sync_credentials_filter.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <memory> 9 #include <memory>
10 #include <utility> 10 #include <utility>
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 enum { FORM_FILTERED, FORM_NOT_FILTERED } is_form_filtered; 89 enum { FORM_FILTERED, FORM_NOT_FILTERED } is_form_filtered;
90 enum { NO_HISTOGRAM, HISTOGRAM_REPORTED } histogram_reported; 90 enum { NO_HISTOGRAM, HISTOGRAM_REPORTED } histogram_reported;
91 }; 91 };
92 92
93 // Flag for creating a PasswordFormManager, deciding its IsNewLogin() value. 93 // Flag for creating a PasswordFormManager, deciding its IsNewLogin() value.
94 enum class LoginState { NEW, EXISTING }; 94 enum class LoginState { NEW, EXISTING };
95 95
96 CredentialsFilterTest() 96 CredentialsFilterTest()
97 : password_manager_(&client_), 97 : password_manager_(&client_),
98 pending_(SimpleGaiaForm("user@gmail.com")), 98 pending_(SimpleGaiaForm("user@gmail.com")),
99 form_manager_(&password_manager_, 99 form_manager_(base::MakeRefCounted<PasswordFormManager>(
100 &client_, 100 &password_manager_,
101 driver_.AsWeakPtr(), 101 &client_,
102 pending_, 102 driver_.AsWeakPtr(),
103 base::MakeUnique<StubFormSaver>(), 103 pending_,
104 &fetcher_), 104 base::MakeUnique<StubFormSaver>(),
105 &fetcher_)),
105 filter_(&client_, 106 filter_(&client_,
106 base::Bind(&SyncUsernameTestBase::sync_service, 107 base::Bind(&SyncUsernameTestBase::sync_service,
107 base::Unretained(this)), 108 base::Unretained(this)),
108 base::Bind(&SyncUsernameTestBase::signin_manager, 109 base::Bind(&SyncUsernameTestBase::signin_manager,
109 base::Unretained(this))) { 110 base::Unretained(this))) {
110 fetcher_.Fetch(); 111 fetcher_.Fetch();
111 } 112 }
112 113
113 void CheckFilterResultsTestCase(const TestCase& test_case) { 114 void CheckFilterResultsTestCase(const TestCase& test_case) {
114 SetSyncingPasswords(test_case.password_sync == TestCase::SYNCING_PASSWORDS); 115 SetSyncingPasswords(test_case.password_sync == TestCase::SYNCING_PASSWORDS);
(...skipping 16 matching lines...) Expand all
131 // Makes |form_manager_| provisionally save |pending_|. Depending on 132 // Makes |form_manager_| provisionally save |pending_|. Depending on
132 // |login_state| being NEW or EXISTING, prepares |form_manager_| in a state in 133 // |login_state| being NEW or EXISTING, prepares |form_manager_| in a state in
133 // which |pending_| looks like a new or existing credential, respectively. 134 // which |pending_| looks like a new or existing credential, respectively.
134 void SavePending(LoginState login_state) { 135 void SavePending(LoginState login_state) {
135 std::vector<const PasswordForm*> matches; 136 std::vector<const PasswordForm*> matches;
136 if (login_state == LoginState::EXISTING) { 137 if (login_state == LoginState::EXISTING) {
137 matches.push_back(&pending_); 138 matches.push_back(&pending_);
138 } 139 }
139 fetcher_.SetNonFederated(matches, 0u); 140 fetcher_.SetNonFederated(matches, 0u);
140 141
141 form_manager_.ProvisionallySave( 142 form_manager_->ProvisionallySave(
142 pending_, PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); 143 pending_, PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES);
143 } 144 }
144 145
145 protected: 146 protected:
146 FakePasswordManagerClient client_; 147 FakePasswordManagerClient client_;
147 PasswordManager password_manager_; 148 PasswordManager password_manager_;
148 StubPasswordManagerDriver driver_; 149 StubPasswordManagerDriver driver_;
149 PasswordForm pending_; 150 PasswordForm pending_;
150 FakeFormFetcher fetcher_; 151 FakeFormFetcher fetcher_;
151 PasswordFormManager form_manager_; 152 scoped_refptr<PasswordFormManager> form_manager_;
152 153
153 SyncCredentialsFilter filter_; 154 SyncCredentialsFilter filter_;
154 }; 155 };
155 156
156 TEST_F(CredentialsFilterTest, FilterResults_AllowAll) { 157 TEST_F(CredentialsFilterTest, FilterResults_AllowAll) {
157 // By default, sync username is not filtered at all. 158 // By default, sync username is not filtered at all.
158 const TestCase kTestCases[] = { 159 const TestCase kTestCases[] = {
159 // Reauth URL, not sync username. 160 // Reauth URL, not sync username.
160 {TestCase::SYNCING_PASSWORDS, SimpleGaiaForm("user@example.org"), 161 {TestCase::SYNCING_PASSWORDS, SimpleGaiaForm("user@example.org"),
161 "another_user@example.org", 162 "another_user@example.org",
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
279 CheckFilterResultsTestCase(kTestCases[i]); 280 CheckFilterResultsTestCase(kTestCases[i]);
280 } 281 }
281 } 282 }
282 283
283 TEST_F(CredentialsFilterTest, ReportFormLoginSuccess_ExistingSyncCredentials) { 284 TEST_F(CredentialsFilterTest, ReportFormLoginSuccess_ExistingSyncCredentials) {
284 FakeSigninAs("user@gmail.com"); 285 FakeSigninAs("user@gmail.com");
285 SetSyncingPasswords(true); 286 SetSyncingPasswords(true);
286 287
287 base::UserActionTester tester; 288 base::UserActionTester tester;
288 SavePending(LoginState::EXISTING); 289 SavePending(LoginState::EXISTING);
289 filter_.ReportFormLoginSuccess(form_manager_); 290 filter_.ReportFormLoginSuccess(*form_manager_);
290 EXPECT_EQ(1, tester.GetActionCount(kFilledAndLoginActionName)); 291 EXPECT_EQ(1, tester.GetActionCount(kFilledAndLoginActionName));
291 } 292 }
292 293
293 TEST_F(CredentialsFilterTest, ReportFormLoginSuccess_NewSyncCredentials) { 294 TEST_F(CredentialsFilterTest, ReportFormLoginSuccess_NewSyncCredentials) {
294 FakeSigninAs("user@gmail.com"); 295 FakeSigninAs("user@gmail.com");
295 SetSyncingPasswords(true); 296 SetSyncingPasswords(true);
296 297
297 base::UserActionTester tester; 298 base::UserActionTester tester;
298 SavePending(LoginState::NEW); 299 SavePending(LoginState::NEW);
299 filter_.ReportFormLoginSuccess(form_manager_); 300 filter_.ReportFormLoginSuccess(*form_manager_);
300 EXPECT_EQ(0, tester.GetActionCount(kFilledAndLoginActionName)); 301 EXPECT_EQ(0, tester.GetActionCount(kFilledAndLoginActionName));
301 } 302 }
302 303
303 TEST_F(CredentialsFilterTest, ReportFormLoginSuccess_GAIANotSyncCredentials) { 304 TEST_F(CredentialsFilterTest, ReportFormLoginSuccess_GAIANotSyncCredentials) {
304 const char kOtherUsername[] = "other_user@gmail.com"; 305 const char kOtherUsername[] = "other_user@gmail.com";
305 FakeSigninAs(kOtherUsername); 306 FakeSigninAs(kOtherUsername);
306 ASSERT_NE(pending_.username_value, base::ASCIIToUTF16(kOtherUsername)); 307 ASSERT_NE(pending_.username_value, base::ASCIIToUTF16(kOtherUsername));
307 SetSyncingPasswords(true); 308 SetSyncingPasswords(true);
308 309
309 base::UserActionTester tester; 310 base::UserActionTester tester;
310 SavePending(LoginState::EXISTING); 311 SavePending(LoginState::EXISTING);
311 filter_.ReportFormLoginSuccess(form_manager_); 312 filter_.ReportFormLoginSuccess(*form_manager_);
312 EXPECT_EQ(0, tester.GetActionCount(kFilledAndLoginActionName)); 313 EXPECT_EQ(0, tester.GetActionCount(kFilledAndLoginActionName));
313 } 314 }
314 315
315 TEST_F(CredentialsFilterTest, ReportFormLoginSuccess_NotGAIACredentials) { 316 TEST_F(CredentialsFilterTest, ReportFormLoginSuccess_NotGAIACredentials) {
316 pending_ = SimpleNonGaiaForm("user@gmail.com"); 317 pending_ = SimpleNonGaiaForm("user@gmail.com");
317 FakeSigninAs("user@gmail.com"); 318 FakeSigninAs("user@gmail.com");
318 SetSyncingPasswords(true); 319 SetSyncingPasswords(true);
319 320
320 base::UserActionTester tester; 321 base::UserActionTester tester;
321 SavePending(LoginState::EXISTING); 322 SavePending(LoginState::EXISTING);
322 filter_.ReportFormLoginSuccess(form_manager_); 323 filter_.ReportFormLoginSuccess(*form_manager_);
323 EXPECT_EQ(0, tester.GetActionCount(kFilledAndLoginActionName)); 324 EXPECT_EQ(0, tester.GetActionCount(kFilledAndLoginActionName));
324 } 325 }
325 326
326 TEST_F(CredentialsFilterTest, ReportFormLoginSuccess_NotSyncing) { 327 TEST_F(CredentialsFilterTest, ReportFormLoginSuccess_NotSyncing) {
327 FakeSigninAs("user@gmail.com"); 328 FakeSigninAs("user@gmail.com");
328 SetSyncingPasswords(false); 329 SetSyncingPasswords(false);
329 330
330 base::UserActionTester tester; 331 base::UserActionTester tester;
331 SavePending(LoginState::EXISTING); 332 SavePending(LoginState::EXISTING);
332 filter_.ReportFormLoginSuccess(form_manager_); 333 filter_.ReportFormLoginSuccess(*form_manager_);
333 EXPECT_EQ(0, tester.GetActionCount(kFilledAndLoginActionName)); 334 EXPECT_EQ(0, tester.GetActionCount(kFilledAndLoginActionName));
334 } 335 }
335 336
336 TEST_F(CredentialsFilterTest, ShouldSave_NotSyncCredential) { 337 TEST_F(CredentialsFilterTest, ShouldSave_NotSyncCredential) {
337 PasswordForm form = SimpleGaiaForm("user@example.org"); 338 PasswordForm form = SimpleGaiaForm("user@example.org");
338 339
339 ASSERT_NE("user@example.org", 340 ASSERT_NE("user@example.org",
340 signin_manager()->GetAuthenticatedAccountInfo().email); 341 signin_manager()->GetAuthenticatedAccountInfo().email);
341 SetSyncingPasswords(true); 342 SetSyncingPasswords(true);
342 EXPECT_TRUE(filter_.ShouldSave(form)); 343 EXPECT_TRUE(filter_.ShouldSave(form));
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
375 376
376 FakeSigninAs("test1@gmail.com"); 377 FakeSigninAs("test1@gmail.com");
377 378
378 results = filter_.FilterResults(std::move(results)); 379 results = filter_.FilterResults(std::move(results));
379 380
380 ASSERT_EQ(1u, results.size()); 381 ASSERT_EQ(1u, results.size());
381 EXPECT_EQ(SimpleGaiaForm("test2@gmail.com"), *results[0]); 382 EXPECT_EQ(SimpleGaiaForm("test2@gmail.com"), *results[0]);
382 } 383 }
383 384
384 } // namespace password_manager 385 } // namespace password_manager
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698