| 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 "base/strings/utf_string_conversions.h" | 7 #include "base/strings/utf_string_conversions.h" |
| 8 #include "components/password_manager/core/browser/password_form_manager.h" | 8 #include "components/password_manager/core/browser/password_form_manager.h" |
| 9 #include "components/password_manager/core/browser/stub_password_manager_client.
h" | 9 #include "components/password_manager/core/browser/stub_password_manager_client.
h" |
| 10 #include "components/password_manager/core/common/credential_manager_types.h" | 10 #include "components/password_manager/core/common/credential_manager_types.h" |
| (...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 317 EXPECT_THAT(passwords_data().GetCurrentForms(), | 317 EXPECT_THAT(passwords_data().GetCurrentForms(), |
| 318 ElementsAre(Pointee(test_local_form()))); | 318 ElementsAre(Pointee(test_local_form()))); |
| 319 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); | 319 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); |
| 320 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, passwords_data().state()); | 320 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, passwords_data().state()); |
| 321 EXPECT_EQ(test_submitted_form().origin, passwords_data().origin()); | 321 EXPECT_EQ(test_submitted_form().origin, passwords_data().origin()); |
| 322 TestAllUpdates(); | 322 TestAllUpdates(); |
| 323 } | 323 } |
| 324 | 324 |
| 325 TEST_F(ManagePasswordsStateTest, PasswordAutofilled) { | 325 TEST_F(ManagePasswordsStateTest, PasswordAutofilled) { |
| 326 autofill::PasswordFormMap password_form_map; | 326 autofill::PasswordFormMap password_form_map; |
| 327 password_form_map[test_local_form().username_value] = &test_local_form(); | 327 password_form_map.insert( |
| 328 test_local_form().username_value, |
| 329 make_scoped_ptr(new autofill::PasswordForm(test_local_form()))); |
| 328 passwords_data().OnPasswordAutofilled(password_form_map); | 330 passwords_data().OnPasswordAutofilled(password_form_map); |
| 329 | 331 |
| 330 EXPECT_THAT(passwords_data().GetCurrentForms(), | 332 EXPECT_THAT(passwords_data().GetCurrentForms(), |
| 331 ElementsAre(Pointee(test_local_form()))); | 333 ElementsAre(Pointee(test_local_form()))); |
| 332 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); | 334 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); |
| 333 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); | 335 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); |
| 334 EXPECT_EQ(test_local_form().origin, passwords_data().origin()); | 336 EXPECT_EQ(test_local_form().origin, passwords_data().origin()); |
| 335 | 337 |
| 336 // |passwords_data| should hold a separate copy of test_local_form(). | 338 // |passwords_data| should hold a separate copy of test_local_form(). |
| 337 EXPECT_THAT(passwords_data().GetCurrentForms(), | 339 EXPECT_THAT(passwords_data().GetCurrentForms(), |
| 338 Not(Contains(&test_local_form()))); | 340 Not(Contains(&test_local_form()))); |
| 339 TestAllUpdates(); | 341 TestAllUpdates(); |
| 340 } | 342 } |
| 341 | 343 |
| 342 TEST_F(ManagePasswordsStateTest, InactiveOnPSLMatched) { | 344 TEST_F(ManagePasswordsStateTest, InactiveOnPSLMatched) { |
| 343 autofill::PasswordForm psl_matched_test_form = test_local_form(); | 345 autofill::PasswordForm psl_matched_test_form = test_local_form(); |
| 344 psl_matched_test_form.original_signon_realm = "http://pslmatched.example.com"; | 346 psl_matched_test_form.original_signon_realm = "http://pslmatched.example.com"; |
| 345 autofill::PasswordFormMap password_form_map; | 347 autofill::PasswordFormMap password_form_map; |
| 346 password_form_map[psl_matched_test_form.username_value] = | 348 password_form_map.insert( |
| 347 &psl_matched_test_form; | 349 psl_matched_test_form.username_value, |
| 350 make_scoped_ptr(new autofill::PasswordForm(psl_matched_test_form))); |
| 348 passwords_data().OnPasswordAutofilled(password_form_map); | 351 passwords_data().OnPasswordAutofilled(password_form_map); |
| 349 | 352 |
| 350 EXPECT_THAT(passwords_data().GetCurrentForms(), IsEmpty()); | 353 EXPECT_THAT(passwords_data().GetCurrentForms(), IsEmpty()); |
| 351 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); | 354 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); |
| 352 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, passwords_data().state()); | 355 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, passwords_data().state()); |
| 353 EXPECT_EQ(GURL::EmptyGURL(), passwords_data().origin()); | 356 EXPECT_EQ(GURL::EmptyGURL(), passwords_data().origin()); |
| 354 EXPECT_FALSE(passwords_data().form_manager()); | 357 EXPECT_FALSE(passwords_data().form_manager()); |
| 355 } | 358 } |
| 356 | 359 |
| 357 TEST_F(ManagePasswordsStateTest, BlacklistBlockedAutofill) { | 360 TEST_F(ManagePasswordsStateTest, BlacklistBlockedAutofill) { |
| 358 autofill::PasswordForm blacklisted; | 361 scoped_ptr<autofill::PasswordForm> blacklisted(new autofill::PasswordForm); |
| 359 blacklisted.blacklisted_by_user = true; | 362 autofill::PasswordForm& blacklisted_ref = *blacklisted; |
| 360 blacklisted.origin = GURL("http://example.com/bad"); | 363 blacklisted_ref.blacklisted_by_user = true; |
| 364 blacklisted_ref.origin = GURL("http://example.com/bad"); |
| 361 autofill::PasswordFormMap password_form_map; | 365 autofill::PasswordFormMap password_form_map; |
| 362 password_form_map[blacklisted.username_value] = &blacklisted; | 366 password_form_map.insert(blacklisted_ref.username_value, blacklisted.Pass()); |
| 363 password_form_map[test_local_form().username_value] = &test_local_form(); | 367 scoped_ptr<autofill::PasswordForm> test_form( |
| 368 new autofill::PasswordForm(test_local_form())); |
| 369 autofill::PasswordForm* test_form_ptr = test_form.get(); |
| 370 password_form_map.insert(test_form_ptr->username_value, test_form.Pass()); |
| 364 passwords_data().OnBlacklistBlockedAutofill(password_form_map); | 371 passwords_data().OnBlacklistBlockedAutofill(password_form_map); |
| 365 | 372 |
| 366 EXPECT_THAT(passwords_data().GetCurrentForms(), | 373 EXPECT_THAT(passwords_data().GetCurrentForms(), |
| 367 ElementsAre(Pointee(blacklisted), Pointee(test_local_form()))); | 374 ElementsAre(Pointee(blacklisted_ref), Pointee(*test_form_ptr))); |
| 368 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); | 375 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); |
| 369 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, passwords_data().state()); | 376 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, passwords_data().state()); |
| 370 EXPECT_EQ(blacklisted.origin, passwords_data().origin()); | 377 EXPECT_EQ(blacklisted_ref.origin, passwords_data().origin()); |
| 371 | 378 |
| 372 // |passwords_data| should hold a separate copy of test_local_form(). | 379 // |passwords_data| should hold a separate copy of test_form. |
| 373 EXPECT_THAT(passwords_data().GetCurrentForms(), | 380 EXPECT_THAT(passwords_data().GetCurrentForms(), Not(Contains(test_form_ptr))); |
| 374 Not(Contains(&test_local_form()))); | |
| 375 TestAllUpdates(); | 381 TestAllUpdates(); |
| 376 } | 382 } |
| 377 | 383 |
| 378 TEST_F(ManagePasswordsStateTest, Unblacklist) { | 384 TEST_F(ManagePasswordsStateTest, Unblacklist) { |
| 379 autofill::PasswordForm blacklisted; | 385 scoped_ptr<autofill::PasswordForm> blacklisted(new autofill::PasswordForm); |
| 380 blacklisted.blacklisted_by_user = true; | 386 autofill::PasswordForm& blacklisted_ref = *blacklisted; |
| 381 blacklisted.origin = test_local_form().origin; | 387 blacklisted_ref.blacklisted_by_user = true; |
| 388 blacklisted_ref.origin = test_local_form().origin; |
| 382 autofill::PasswordFormMap password_form_map; | 389 autofill::PasswordFormMap password_form_map; |
| 383 password_form_map[blacklisted.username_value] = &blacklisted; | 390 password_form_map.insert(blacklisted_ref.username_value, blacklisted.Pass()); |
| 384 passwords_data().OnBlacklistBlockedAutofill(password_form_map); | 391 passwords_data().OnBlacklistBlockedAutofill(password_form_map); |
| 385 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, passwords_data().state()); | 392 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, passwords_data().state()); |
| 386 passwords_data().TransitionToState(password_manager::ui::MANAGE_STATE); | 393 passwords_data().TransitionToState(password_manager::ui::MANAGE_STATE); |
| 387 | 394 |
| 388 EXPECT_THAT(passwords_data().GetCurrentForms(), | 395 EXPECT_THAT(passwords_data().GetCurrentForms(), |
| 389 ElementsAre(Pointee(blacklisted))); | 396 ElementsAre(Pointee(blacklisted_ref))); |
| 390 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); | 397 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); |
| 391 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); | 398 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); |
| 392 EXPECT_EQ(blacklisted.origin, passwords_data().origin()); | 399 EXPECT_EQ(blacklisted_ref.origin, passwords_data().origin()); |
| 393 TestAllUpdates(); | 400 TestAllUpdates(); |
| 394 } | 401 } |
| 395 | 402 |
| 396 TEST_F(ManagePasswordsStateTest, OnInactive) { | 403 TEST_F(ManagePasswordsStateTest, OnInactive) { |
| 397 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( | 404 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( |
| 398 CreateFormManager()); | 405 CreateFormManager()); |
| 399 test_form_manager->ProvisionallySave( | 406 test_form_manager->ProvisionallySave( |
| 400 test_submitted_form(), | 407 test_submitted_form(), |
| 401 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); | 408 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
| 402 passwords_data().OnPendingPassword(test_form_manager.Pass()); | 409 passwords_data().OnPendingPassword(test_form_manager.Pass()); |
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 550 EXPECT_THAT(passwords_data().GetCurrentForms(), | 557 EXPECT_THAT(passwords_data().GetCurrentForms(), |
| 551 UnorderedElementsAre(Pointee(test_local_form()), | 558 UnorderedElementsAre(Pointee(test_local_form()), |
| 552 Pointee(test_submitted_form()))); | 559 Pointee(test_submitted_form()))); |
| 553 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); | 560 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); |
| 554 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); | 561 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); |
| 555 EXPECT_EQ(test_submitted_form().origin, passwords_data().origin()); | 562 EXPECT_EQ(test_submitted_form().origin, passwords_data().origin()); |
| 556 } | 563 } |
| 557 | 564 |
| 558 TEST_F(ManagePasswordsStateTest, BackgroundAutofilledToBlacklisted) { | 565 TEST_F(ManagePasswordsStateTest, BackgroundAutofilledToBlacklisted) { |
| 559 autofill::PasswordFormMap password_form_map; | 566 autofill::PasswordFormMap password_form_map; |
| 560 password_form_map[test_local_form().username_value] = &test_local_form(); | 567 password_form_map.insert( |
| 568 test_local_form().username_value, |
| 569 make_scoped_ptr(new autofill::PasswordForm(test_local_form()))); |
| 561 passwords_data().OnPasswordAutofilled(password_form_map); | 570 passwords_data().OnPasswordAutofilled(password_form_map); |
| 562 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); | 571 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); |
| 563 | 572 |
| 564 // Process the blacklisted form. | 573 // Process the blacklisted form. |
| 565 autofill::PasswordForm blacklisted = test_local_form(); | 574 autofill::PasswordForm blacklisted = test_local_form(); |
| 566 blacklisted.blacklisted_by_user = true; | 575 blacklisted.blacklisted_by_user = true; |
| 567 blacklisted.username_value = base::string16(); | 576 blacklisted.username_value = base::string16(); |
| 568 password_manager::PasswordStoreChange change( | 577 password_manager::PasswordStoreChange change( |
| 569 password_manager::PasswordStoreChange::ADD, blacklisted); | 578 password_manager::PasswordStoreChange::ADD, blacklisted); |
| 570 password_manager::PasswordStoreChangeList list(1, change); | 579 password_manager::PasswordStoreChangeList list(1, change); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 581 passwords_data().ProcessLoginsChanged(list); | 590 passwords_data().ProcessLoginsChanged(list); |
| 582 EXPECT_THAT(passwords_data().GetCurrentForms(), | 591 EXPECT_THAT(passwords_data().GetCurrentForms(), |
| 583 ElementsAre(Pointee(test_local_form()))); | 592 ElementsAre(Pointee(test_local_form()))); |
| 584 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); | 593 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); |
| 585 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); | 594 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); |
| 586 EXPECT_EQ(test_local_form().origin, passwords_data().origin()); | 595 EXPECT_EQ(test_local_form().origin, passwords_data().origin()); |
| 587 } | 596 } |
| 588 | 597 |
| 589 TEST_F(ManagePasswordsStateTest, BlacklistedToAutofilled) { | 598 TEST_F(ManagePasswordsStateTest, BlacklistedToAutofilled) { |
| 590 autofill::PasswordFormMap password_form_map; | 599 autofill::PasswordFormMap password_form_map; |
| 591 password_form_map[test_local_form().username_value] = &test_local_form(); | 600 password_form_map.insert( |
| 592 autofill::PasswordForm blacklisted; | 601 test_local_form().username_value, |
| 593 blacklisted.blacklisted_by_user = true; | 602 make_scoped_ptr(new autofill::PasswordForm(test_local_form()))); |
| 594 blacklisted.origin = GURL("http://example.com/bad"); | 603 scoped_ptr<autofill::PasswordForm> blacklisted(new autofill::PasswordForm); |
| 595 password_form_map[blacklisted.username_value] = &blacklisted; | 604 autofill::PasswordForm& blacklisted_ref = *blacklisted; |
| 605 blacklisted_ref.blacklisted_by_user = true; |
| 606 blacklisted_ref.origin = GURL("http://example.com/bad"); |
| 607 password_form_map.insert(blacklisted_ref.username_value, blacklisted.Pass()); |
| 596 passwords_data().OnBlacklistBlockedAutofill(password_form_map); | 608 passwords_data().OnBlacklistBlockedAutofill(password_form_map); |
| 597 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, passwords_data().state()); | 609 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, passwords_data().state()); |
| 598 EXPECT_EQ(blacklisted.origin, passwords_data().origin()); | 610 EXPECT_EQ(blacklisted_ref.origin, passwords_data().origin()); |
| 599 | 611 |
| 600 // Delete the blacklisted form. | 612 // Delete the blacklisted form. |
| 601 password_manager::PasswordStoreChangeList list; | 613 password_manager::PasswordStoreChangeList list; |
| 602 list.push_back(password_manager::PasswordStoreChange( | 614 list.push_back(password_manager::PasswordStoreChange( |
| 603 password_manager::PasswordStoreChange::REMOVE, blacklisted)); | 615 password_manager::PasswordStoreChange::REMOVE, blacklisted_ref)); |
| 604 passwords_data().ProcessLoginsChanged(list); | 616 passwords_data().ProcessLoginsChanged(list); |
| 605 EXPECT_THAT(passwords_data().GetCurrentForms(), | 617 EXPECT_THAT(passwords_data().GetCurrentForms(), |
| 606 ElementsAre(Pointee(test_local_form()))); | 618 ElementsAre(Pointee(test_local_form()))); |
| 607 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); | 619 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); |
| 608 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); | 620 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); |
| 609 EXPECT_EQ(blacklisted.origin, passwords_data().origin()); | 621 EXPECT_EQ(blacklisted_ref.origin, passwords_data().origin()); |
| 610 } | 622 } |
| 611 | 623 |
| 612 } // namespace | 624 } // namespace |
| OLD | NEW |