| OLD | NEW |
| 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 "chrome/browser/ui/passwords/manage_passwords_state.h" | 5 #include "chrome/browser/ui/passwords/manage_passwords_state.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 53 | 53 |
| 54 passwords_data_.set_client(&stub_client_); | 54 passwords_data_.set_client(&stub_client_); |
| 55 } | 55 } |
| 56 | 56 |
| 57 autofill::PasswordForm& test_local_form() { return test_local_form_; } | 57 autofill::PasswordForm& test_local_form() { return test_local_form_; } |
| 58 autofill::PasswordForm& test_submitted_form() { return test_submitted_form_; } | 58 autofill::PasswordForm& test_submitted_form() { return test_submitted_form_; } |
| 59 autofill::PasswordForm& test_local_federated_form() { | 59 autofill::PasswordForm& test_local_federated_form() { |
| 60 return test_local_federated_form_; | 60 return test_local_federated_form_; |
| 61 } | 61 } |
| 62 autofill::PasswordForm& test_federated_form() { return test_federated_form_; } | 62 autofill::PasswordForm& test_federated_form() { return test_federated_form_; } |
| 63 ScopedVector<autofill::PasswordForm>& test_stored_forms() { |
| 64 return test_stored_forms_; |
| 65 } |
| 63 ManagePasswordsState& passwords_data() { return passwords_data_; } | 66 ManagePasswordsState& passwords_data() { return passwords_data_; } |
| 64 | 67 |
| 65 // Returns a PasswordFormManager containing test_local_form() as a best match. | 68 // Returns a PasswordFormManager containing |test_stored_forms_| as the best |
| 69 // matches. |
| 66 scoped_ptr<password_manager::PasswordFormManager> CreateFormManager(); | 70 scoped_ptr<password_manager::PasswordFormManager> CreateFormManager(); |
| 67 | 71 |
| 68 // Returns a PasswordFormManager containing test_local_form() as a best match | 72 // Returns a PasswordFormManager containing test_federated_form() as a stored |
| 69 // and test_federated_form() as a stored federated credential. | 73 // federated credential. |
| 70 scoped_ptr<password_manager::PasswordFormManager> | 74 scoped_ptr<password_manager::PasswordFormManager> |
| 71 CreateFormManagerWithFederation(); | 75 CreateFormManagerWithFederation(); |
| 72 | 76 |
| 73 // Pushes irrelevant updates to |passwords_data_| and checks that they don't | 77 // Pushes irrelevant updates to |passwords_data_| and checks that they don't |
| 74 // affect the state. | 78 // affect the state. |
| 75 void TestNoisyUpdates(); | 79 void TestNoisyUpdates(); |
| 76 | 80 |
| 77 // Pushes both relevant and irrelevant updates to |passwords_data_|. | 81 // Pushes both relevant and irrelevant updates to |passwords_data_|. |
| 78 void TestAllUpdates(); | 82 void TestAllUpdates(); |
| 79 | 83 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 90 | 94 |
| 91 password_manager::StubPasswordManagerClient stub_client_; | 95 password_manager::StubPasswordManagerClient stub_client_; |
| 92 password_manager::StubPasswordManagerDriver driver_; | 96 password_manager::StubPasswordManagerDriver driver_; |
| 93 password_manager::PasswordManager password_manager_; | 97 password_manager::PasswordManager password_manager_; |
| 94 | 98 |
| 95 ManagePasswordsState passwords_data_; | 99 ManagePasswordsState passwords_data_; |
| 96 autofill::PasswordForm test_local_form_; | 100 autofill::PasswordForm test_local_form_; |
| 97 autofill::PasswordForm test_submitted_form_; | 101 autofill::PasswordForm test_submitted_form_; |
| 98 autofill::PasswordForm test_local_federated_form_; | 102 autofill::PasswordForm test_local_federated_form_; |
| 99 autofill::PasswordForm test_federated_form_; | 103 autofill::PasswordForm test_federated_form_; |
| 104 ScopedVector<autofill::PasswordForm> test_stored_forms_; |
| 100 }; | 105 }; |
| 101 | 106 |
| 102 scoped_ptr<password_manager::PasswordFormManager> | 107 scoped_ptr<password_manager::PasswordFormManager> |
| 103 ManagePasswordsStateTest::CreateFormManager() { | 108 ManagePasswordsStateTest::CreateFormManager() { |
| 104 return CreateFormManagerInternal(false); | 109 return CreateFormManagerInternal(false); |
| 105 } | 110 } |
| 106 | 111 |
| 107 scoped_ptr<password_manager::PasswordFormManager> | 112 scoped_ptr<password_manager::PasswordFormManager> |
| 108 ManagePasswordsStateTest::CreateFormManagerWithFederation() { | 113 ManagePasswordsStateTest::CreateFormManagerWithFederation() { |
| 109 return CreateFormManagerInternal(true); | 114 return CreateFormManagerInternal(true); |
| 110 } | 115 } |
| 111 | 116 |
| 112 scoped_ptr<password_manager::PasswordFormManager> | 117 scoped_ptr<password_manager::PasswordFormManager> |
| 113 ManagePasswordsStateTest::CreateFormManagerInternal(bool include_federated) { | 118 ManagePasswordsStateTest::CreateFormManagerInternal(bool include_federated) { |
| 114 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( | 119 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( |
| 115 new password_manager::PasswordFormManager( | 120 new password_manager::PasswordFormManager( |
| 116 &password_manager_, &stub_client_, driver_.AsWeakPtr(), | 121 &password_manager_, &stub_client_, driver_.AsWeakPtr(), |
| 117 test_local_form(), false)); | 122 test_local_form(), false)); |
| 118 test_form_manager->SimulateFetchMatchingLoginsFromPasswordStore(); | 123 test_form_manager->SimulateFetchMatchingLoginsFromPasswordStore(); |
| 119 ScopedVector<autofill::PasswordForm> stored_forms; | |
| 120 stored_forms.push_back(new autofill::PasswordForm(test_local_form())); | |
| 121 if (include_federated) { | 124 if (include_federated) { |
| 122 stored_forms.push_back( | 125 test_stored_forms_.push_back( |
| 123 new autofill::PasswordForm(test_local_federated_form())); | 126 new autofill::PasswordForm(test_local_federated_form())); |
| 124 } | 127 } |
| 125 test_form_manager->OnGetPasswordStoreResults(std::move(stored_forms)); | 128 test_form_manager->OnGetPasswordStoreResults(std::move(test_stored_forms_)); |
| 126 EXPECT_EQ(1u, test_form_manager->best_matches().size()); | |
| 127 EXPECT_EQ(test_local_form(), | |
| 128 *test_form_manager->best_matches().begin()->second); | |
| 129 EXPECT_EQ(include_federated ? 1u : 0u, | 129 EXPECT_EQ(include_federated ? 1u : 0u, |
| 130 test_form_manager->federated_matches().size()); | 130 test_form_manager->federated_matches().size()); |
| 131 if (include_federated) { | 131 if (include_federated) { |
| 132 EXPECT_EQ(test_local_federated_form(), | 132 EXPECT_EQ(test_local_federated_form(), |
| 133 *test_form_manager->federated_matches().front()); | 133 *test_form_manager->federated_matches().front()); |
| 134 } | 134 } |
| 135 return test_form_manager; | 135 return test_form_manager; |
| 136 } | 136 } |
| 137 | 137 |
| 138 void ManagePasswordsStateTest::TestNoisyUpdates() { | 138 void ManagePasswordsStateTest::TestNoisyUpdates() { |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 258 EXPECT_THAT(passwords_data().GetCurrentForms(), IsEmpty()); | 258 EXPECT_THAT(passwords_data().GetCurrentForms(), IsEmpty()); |
| 259 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); | 259 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); |
| 260 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, passwords_data().state()); | 260 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, passwords_data().state()); |
| 261 EXPECT_EQ(GURL::EmptyGURL(), passwords_data().origin()); | 261 EXPECT_EQ(GURL::EmptyGURL(), passwords_data().origin()); |
| 262 EXPECT_FALSE(passwords_data().form_manager()); | 262 EXPECT_FALSE(passwords_data().form_manager()); |
| 263 | 263 |
| 264 TestNoisyUpdates(); | 264 TestNoisyUpdates(); |
| 265 } | 265 } |
| 266 | 266 |
| 267 TEST_F(ManagePasswordsStateTest, PasswordSubmitted) { | 267 TEST_F(ManagePasswordsStateTest, PasswordSubmitted) { |
| 268 test_stored_forms().push_back(new autofill::PasswordForm(test_local_form())); |
| 268 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( | 269 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( |
| 269 CreateFormManager()); | 270 CreateFormManager()); |
| 270 test_form_manager->ProvisionallySave( | 271 test_form_manager->ProvisionallySave( |
| 271 test_submitted_form(), | 272 test_submitted_form(), |
| 272 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); | 273 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
| 273 passwords_data().OnPendingPassword(std::move(test_form_manager)); | 274 passwords_data().OnPendingPassword(std::move(test_form_manager)); |
| 274 | 275 |
| 275 EXPECT_THAT(passwords_data().GetCurrentForms(), | 276 EXPECT_THAT(passwords_data().GetCurrentForms(), |
| 276 ElementsAre(Pointee(test_local_form()))); | 277 ElementsAre(Pointee(test_local_form()))); |
| 277 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); | 278 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); |
| 278 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, | 279 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, |
| 279 passwords_data().state()); | 280 passwords_data().state()); |
| 280 EXPECT_EQ(test_submitted_form().origin, passwords_data().origin()); | 281 EXPECT_EQ(test_submitted_form().origin, passwords_data().origin()); |
| 281 ASSERT_TRUE(passwords_data().form_manager()); | 282 ASSERT_TRUE(passwords_data().form_manager()); |
| 282 EXPECT_EQ(test_submitted_form(), | 283 EXPECT_EQ(test_submitted_form(), |
| 283 passwords_data().form_manager()->pending_credentials()); | 284 passwords_data().form_manager()->pending_credentials()); |
| 284 TestAllUpdates(); | 285 TestAllUpdates(); |
| 285 } | 286 } |
| 286 | 287 |
| 287 TEST_F(ManagePasswordsStateTest, PasswordSaved) { | 288 TEST_F(ManagePasswordsStateTest, PasswordSaved) { |
| 289 test_stored_forms().push_back(new autofill::PasswordForm(test_local_form())); |
| 288 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( | 290 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( |
| 289 CreateFormManager()); | 291 CreateFormManager()); |
| 290 test_form_manager->ProvisionallySave( | 292 test_form_manager->ProvisionallySave( |
| 291 test_submitted_form(), | 293 test_submitted_form(), |
| 292 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); | 294 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
| 293 passwords_data().OnPendingPassword(std::move(test_form_manager)); | 295 passwords_data().OnPendingPassword(std::move(test_form_manager)); |
| 294 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, | 296 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, |
| 295 passwords_data().state()); | 297 passwords_data().state()); |
| 296 | 298 |
| 297 passwords_data().TransitionToState(password_manager::ui::MANAGE_STATE); | 299 passwords_data().TransitionToState(password_manager::ui::MANAGE_STATE); |
| 298 EXPECT_THAT(passwords_data().GetCurrentForms(), | 300 EXPECT_THAT(passwords_data().GetCurrentForms(), |
| 299 ElementsAre(Pointee(test_local_form()))); | 301 ElementsAre(Pointee(test_local_form()))); |
| 300 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); | 302 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); |
| 301 EXPECT_EQ(password_manager::ui::MANAGE_STATE, | 303 EXPECT_EQ(password_manager::ui::MANAGE_STATE, |
| 302 passwords_data().state()); | 304 passwords_data().state()); |
| 303 EXPECT_EQ(test_submitted_form().origin, passwords_data().origin()); | 305 EXPECT_EQ(test_submitted_form().origin, passwords_data().origin()); |
| 304 TestAllUpdates(); | 306 TestAllUpdates(); |
| 305 } | 307 } |
| 306 | 308 |
| 307 TEST_F(ManagePasswordsStateTest, PasswordSubmittedFederationsPresent) { | 309 TEST_F(ManagePasswordsStateTest, PasswordSubmittedFederationsPresent) { |
| 308 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( | 310 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( |
| 309 CreateFormManagerWithFederation()); | 311 CreateFormManagerWithFederation()); |
| 310 test_form_manager->ProvisionallySave( | 312 test_form_manager->ProvisionallySave( |
| 311 test_submitted_form(), | 313 test_submitted_form(), |
| 312 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); | 314 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
| 313 passwords_data().OnPendingPassword(std::move(test_form_manager)); | 315 passwords_data().OnPendingPassword(std::move(test_form_manager)); |
| 314 | 316 |
| 315 EXPECT_THAT(passwords_data().GetCurrentForms(), | 317 EXPECT_THAT(passwords_data().GetCurrentForms(), |
| 316 UnorderedElementsAre(Pointee(test_local_form()), | 318 ElementsAre(Pointee(test_local_federated_form()))); |
| 317 Pointee(test_local_federated_form()))); | |
| 318 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); | 319 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); |
| 319 } | 320 } |
| 320 | 321 |
| 321 TEST_F(ManagePasswordsStateTest, OnRequestCredentials) { | 322 TEST_F(ManagePasswordsStateTest, OnRequestCredentials) { |
| 322 ScopedVector<autofill::PasswordForm> local_credentials; | 323 ScopedVector<autofill::PasswordForm> local_credentials; |
| 323 local_credentials.push_back(new autofill::PasswordForm(test_local_form())); | 324 local_credentials.push_back(new autofill::PasswordForm(test_local_form())); |
| 324 ScopedVector<autofill::PasswordForm> federated_credentials; | 325 ScopedVector<autofill::PasswordForm> federated_credentials; |
| 325 federated_credentials.push_back( | 326 federated_credentials.push_back( |
| 326 new autofill::PasswordForm(test_federated_form())); | 327 new autofill::PasswordForm(test_federated_form())); |
| 327 const GURL origin = test_local_form().origin; | 328 const GURL origin = test_local_form().origin; |
| (...skipping 23 matching lines...) Expand all Loading... |
| 351 ElementsAre(Pointee(test_local_form()))); | 352 ElementsAre(Pointee(test_local_form()))); |
| 352 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); | 353 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); |
| 353 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); | 354 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); |
| 354 EXPECT_EQ(origin, passwords_data().origin()); | 355 EXPECT_EQ(origin, passwords_data().origin()); |
| 355 TestAllUpdates(); | 356 TestAllUpdates(); |
| 356 } | 357 } |
| 357 | 358 |
| 358 TEST_F(ManagePasswordsStateTest, AutoSignin) { | 359 TEST_F(ManagePasswordsStateTest, AutoSignin) { |
| 359 ScopedVector<autofill::PasswordForm> local_credentials; | 360 ScopedVector<autofill::PasswordForm> local_credentials; |
| 360 local_credentials.push_back(new autofill::PasswordForm(test_local_form())); | 361 local_credentials.push_back(new autofill::PasswordForm(test_local_form())); |
| 361 passwords_data().OnAutoSignin(std::move(local_credentials)); | 362 passwords_data().OnAutoSignin(std::move(local_credentials), |
| 363 test_local_form().origin); |
| 362 EXPECT_THAT(passwords_data().GetCurrentForms(), | 364 EXPECT_THAT(passwords_data().GetCurrentForms(), |
| 363 ElementsAre(Pointee(test_local_form()))); | 365 ElementsAre(Pointee(test_local_form()))); |
| 364 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); | 366 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); |
| 365 EXPECT_EQ(password_manager::ui::AUTO_SIGNIN_STATE, passwords_data().state()); | 367 EXPECT_EQ(password_manager::ui::AUTO_SIGNIN_STATE, passwords_data().state()); |
| 366 EXPECT_EQ(test_local_form().origin, passwords_data().origin()); | 368 EXPECT_EQ(test_local_form().origin, passwords_data().origin()); |
| 367 TestAllUpdates(); | 369 TestAllUpdates(); |
| 368 | 370 |
| 369 passwords_data().TransitionToState(password_manager::ui::MANAGE_STATE); | 371 passwords_data().TransitionToState(password_manager::ui::MANAGE_STATE); |
| 370 EXPECT_THAT(passwords_data().GetCurrentForms(), | 372 EXPECT_THAT(passwords_data().GetCurrentForms(), |
| 371 ElementsAre(Pointee(test_local_form()))); | 373 ElementsAre(Pointee(test_local_form()))); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 385 passwords_data().OnAutomaticPasswordSave(std::move(test_form_manager)); | 387 passwords_data().OnAutomaticPasswordSave(std::move(test_form_manager)); |
| 386 EXPECT_EQ(password_manager::ui::CONFIRMATION_STATE, passwords_data().state()); | 388 EXPECT_EQ(password_manager::ui::CONFIRMATION_STATE, passwords_data().state()); |
| 387 EXPECT_EQ(test_submitted_form().origin, passwords_data().origin()); | 389 EXPECT_EQ(test_submitted_form().origin, passwords_data().origin()); |
| 388 ASSERT_TRUE(passwords_data().form_manager()); | 390 ASSERT_TRUE(passwords_data().form_manager()); |
| 389 EXPECT_EQ(test_submitted_form(), | 391 EXPECT_EQ(test_submitted_form(), |
| 390 passwords_data().form_manager()->pending_credentials()); | 392 passwords_data().form_manager()->pending_credentials()); |
| 391 TestAllUpdates(); | 393 TestAllUpdates(); |
| 392 | 394 |
| 393 passwords_data().TransitionToState(password_manager::ui::MANAGE_STATE); | 395 passwords_data().TransitionToState(password_manager::ui::MANAGE_STATE); |
| 394 EXPECT_THAT(passwords_data().GetCurrentForms(), | 396 EXPECT_THAT(passwords_data().GetCurrentForms(), |
| 395 UnorderedElementsAre(Pointee(test_local_form()), | 397 ElementsAre(Pointee(test_submitted_form()))); |
| 396 Pointee(test_submitted_form()))); | |
| 397 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); | 398 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); |
| 398 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); | 399 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); |
| 399 EXPECT_EQ(test_submitted_form().origin, passwords_data().origin()); | 400 EXPECT_EQ(test_submitted_form().origin, passwords_data().origin()); |
| 400 TestAllUpdates(); | 401 TestAllUpdates(); |
| 401 } | 402 } |
| 402 | 403 |
| 403 TEST_F(ManagePasswordsStateTest, AutomaticPasswordSaveWithFederations) { | 404 TEST_F(ManagePasswordsStateTest, AutomaticPasswordSaveWithFederations) { |
| 404 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( | 405 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( |
| 405 CreateFormManagerWithFederation()); | 406 CreateFormManagerWithFederation()); |
| 406 test_form_manager->ProvisionallySave( | 407 test_form_manager->ProvisionallySave( |
| 407 test_submitted_form(), | 408 test_submitted_form(), |
| 408 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); | 409 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
| 409 | 410 |
| 410 passwords_data().OnAutomaticPasswordSave(std::move(test_form_manager)); | 411 passwords_data().OnAutomaticPasswordSave(std::move(test_form_manager)); |
| 411 EXPECT_THAT(passwords_data().GetCurrentForms(), | 412 EXPECT_THAT(passwords_data().GetCurrentForms(), |
| 412 UnorderedElementsAre(Pointee(test_local_form()), | 413 UnorderedElementsAre(Pointee(test_submitted_form()), |
| 413 Pointee(test_submitted_form()), | |
| 414 Pointee(test_local_federated_form()))); | 414 Pointee(test_local_federated_form()))); |
| 415 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); | 415 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); |
| 416 } | 416 } |
| 417 | 417 |
| 418 TEST_F(ManagePasswordsStateTest, PasswordAutofilled) { | 418 TEST_F(ManagePasswordsStateTest, PasswordAutofilled) { |
| 419 autofill::PasswordFormMap password_form_map; | 419 autofill::PasswordFormMap password_form_map; |
| 420 password_form_map.insert(std::make_pair( | 420 password_form_map.insert(std::make_pair( |
| 421 test_local_form().username_value, | 421 test_local_form().username_value, |
| 422 make_scoped_ptr(new autofill::PasswordForm(test_local_form())))); | 422 make_scoped_ptr(new autofill::PasswordForm(test_local_form())))); |
| 423 GURL origin("https://example.com"); | 423 GURL origin("https://example.com"); |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 542 &ManagePasswordsStateTest::CredentialCallback, base::Unretained(this))); | 542 &ManagePasswordsStateTest::CredentialCallback, base::Unretained(this))); |
| 543 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE, | 543 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE, |
| 544 passwords_data().state()); | 544 passwords_data().state()); |
| 545 | 545 |
| 546 TestBlacklistedUpdates(); | 546 TestBlacklistedUpdates(); |
| 547 } | 547 } |
| 548 | 548 |
| 549 TEST_F(ManagePasswordsStateTest, AutoSigninAddBlacklisted) { | 549 TEST_F(ManagePasswordsStateTest, AutoSigninAddBlacklisted) { |
| 550 ScopedVector<autofill::PasswordForm> local_credentials; | 550 ScopedVector<autofill::PasswordForm> local_credentials; |
| 551 local_credentials.push_back(new autofill::PasswordForm(test_local_form())); | 551 local_credentials.push_back(new autofill::PasswordForm(test_local_form())); |
| 552 passwords_data().OnAutoSignin(std::move(local_credentials)); | 552 passwords_data().OnAutoSignin(std::move(local_credentials), |
| 553 test_local_form().origin); |
| 553 EXPECT_EQ(password_manager::ui::AUTO_SIGNIN_STATE, passwords_data().state()); | 554 EXPECT_EQ(password_manager::ui::AUTO_SIGNIN_STATE, passwords_data().state()); |
| 554 | 555 |
| 555 TestBlacklistedUpdates(); | 556 TestBlacklistedUpdates(); |
| 556 } | 557 } |
| 557 | 558 |
| 558 TEST_F(ManagePasswordsStateTest, AutomaticPasswordSaveAddBlacklisted) { | 559 TEST_F(ManagePasswordsStateTest, AutomaticPasswordSaveAddBlacklisted) { |
| 559 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( | 560 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( |
| 560 CreateFormManager()); | 561 CreateFormManager()); |
| 561 test_form_manager->ProvisionallySave( | 562 test_form_manager->ProvisionallySave( |
| 562 test_submitted_form(), | 563 test_submitted_form(), |
| (...skipping 23 matching lines...) Expand all Loading... |
| 586 test_submitted_form(), | 587 test_submitted_form(), |
| 587 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); | 588 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
| 588 passwords_data().OnUpdatePassword(std::move(test_form_manager)); | 589 passwords_data().OnUpdatePassword(std::move(test_form_manager)); |
| 589 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE, | 590 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE, |
| 590 passwords_data().state()); | 591 passwords_data().state()); |
| 591 | 592 |
| 592 TestBlacklistedUpdates(); | 593 TestBlacklistedUpdates(); |
| 593 } | 594 } |
| 594 | 595 |
| 595 TEST_F(ManagePasswordsStateTest, PasswordUpdateSubmitted) { | 596 TEST_F(ManagePasswordsStateTest, PasswordUpdateSubmitted) { |
| 597 test_stored_forms().push_back(new autofill::PasswordForm(test_local_form())); |
| 596 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( | 598 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( |
| 597 CreateFormManager()); | 599 CreateFormManager()); |
| 598 test_form_manager->ProvisionallySave( | 600 test_form_manager->ProvisionallySave( |
| 599 test_submitted_form(), | 601 test_submitted_form(), |
| 600 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); | 602 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
| 601 passwords_data().OnUpdatePassword(std::move(test_form_manager)); | 603 passwords_data().OnUpdatePassword(std::move(test_form_manager)); |
| 602 | 604 |
| 603 EXPECT_THAT(passwords_data().GetCurrentForms(), | 605 EXPECT_THAT(passwords_data().GetCurrentForms(), |
| 604 ElementsAre(Pointee(test_local_form()))); | 606 ElementsAre(Pointee(test_local_form()))); |
| 605 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); | 607 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); |
| 606 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE, | 608 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE, |
| 607 passwords_data().state()); | 609 passwords_data().state()); |
| 608 EXPECT_EQ(test_submitted_form().origin, passwords_data().origin()); | 610 EXPECT_EQ(test_submitted_form().origin, passwords_data().origin()); |
| 609 ASSERT_TRUE(passwords_data().form_manager()); | 611 ASSERT_TRUE(passwords_data().form_manager()); |
| 610 EXPECT_EQ(test_submitted_form(), | 612 EXPECT_EQ(test_submitted_form(), |
| 611 passwords_data().form_manager()->pending_credentials()); | 613 passwords_data().form_manager()->pending_credentials()); |
| 612 TestAllUpdates(); | 614 TestAllUpdates(); |
| 613 } | 615 } |
| 614 | 616 |
| 617 TEST_F(ManagePasswordsStateTest, AndroidPasswordUpdateSubmitted) { |
| 618 autofill::PasswordForm android_form; |
| 619 android_form.signon_realm = "android://dHJhc2g=@com.example.android/"; |
| 620 android_form.origin = GURL(android_form.signon_realm); |
| 621 android_form.username_value = test_submitted_form().username_value; |
| 622 android_form.password_value = base::ASCIIToUTF16("old pass"); |
| 623 test_stored_forms().push_back(new autofill::PasswordForm(android_form)); |
| 624 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( |
| 625 CreateFormManager()); |
| 626 test_form_manager->ProvisionallySave( |
| 627 test_submitted_form(), |
| 628 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
| 629 passwords_data().OnUpdatePassword(std::move(test_form_manager)); |
| 630 |
| 631 EXPECT_THAT(passwords_data().GetCurrentForms(), |
| 632 ElementsAre(Pointee(android_form))); |
| 633 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); |
| 634 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE, |
| 635 passwords_data().state()); |
| 636 EXPECT_EQ(test_submitted_form().origin, passwords_data().origin()); |
| 637 ASSERT_TRUE(passwords_data().form_manager()); |
| 638 android_form.password_value = test_submitted_form().password_value; |
| 639 EXPECT_EQ(android_form, |
| 640 passwords_data().form_manager()->pending_credentials()); |
| 641 TestAllUpdates(); |
| 642 } |
| 643 |
| 615 TEST_F(ManagePasswordsStateTest, PasswordUpdateSubmittedWithFederations) { | 644 TEST_F(ManagePasswordsStateTest, PasswordUpdateSubmittedWithFederations) { |
| 645 test_stored_forms().push_back(new autofill::PasswordForm(test_local_form())); |
| 616 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( | 646 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( |
| 617 CreateFormManagerWithFederation()); | 647 CreateFormManagerWithFederation()); |
| 618 test_form_manager->ProvisionallySave( | 648 test_form_manager->ProvisionallySave( |
| 619 test_submitted_form(), | 649 test_submitted_form(), |
| 620 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); | 650 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
| 621 passwords_data().OnUpdatePassword(std::move(test_form_manager)); | 651 passwords_data().OnUpdatePassword(std::move(test_form_manager)); |
| 622 | 652 |
| 623 EXPECT_THAT(passwords_data().GetCurrentForms(), | 653 EXPECT_THAT(passwords_data().GetCurrentForms(), |
| 624 UnorderedElementsAre(Pointee(test_local_form()), | 654 UnorderedElementsAre(Pointee(test_local_form()), |
| 625 Pointee(test_local_federated_form()))); | 655 Pointee(test_local_federated_form()))); |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 681 passwords_data().set_credentials_callback(base::Bind( | 711 passwords_data().set_credentials_callback(base::Bind( |
| 682 &ManagePasswordsStateTest::CredentialCallback, base::Unretained(this))); | 712 &ManagePasswordsStateTest::CredentialCallback, base::Unretained(this))); |
| 683 password_manager::CredentialInfo credential_info( | 713 password_manager::CredentialInfo credential_info( |
| 684 form, password_manager::CredentialType::CREDENTIAL_TYPE_FEDERATED); | 714 form, password_manager::CredentialType::CREDENTIAL_TYPE_FEDERATED); |
| 685 EXPECT_CALL(*this, CredentialCallback(credential_info)); | 715 EXPECT_CALL(*this, CredentialCallback(credential_info)); |
| 686 passwords_data().ChooseCredential( | 716 passwords_data().ChooseCredential( |
| 687 form, password_manager::CredentialType::CREDENTIAL_TYPE_PASSWORD); | 717 form, password_manager::CredentialType::CREDENTIAL_TYPE_PASSWORD); |
| 688 } | 718 } |
| 689 | 719 |
| 690 } // namespace | 720 } // namespace |
| OLD | NEW |