OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 <memory> | 5 #include <memory> |
6 #include <utility> | 6 #include <utility> |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/macros.h" | 10 #include "base/macros.h" |
(...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
302 map.insert(std::make_pair(kTestUsername, std::move(test_form))); | 302 map.insert(std::make_pair(kTestUsername, std::move(test_form))); |
303 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); | 303 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
304 controller()->OnPasswordAutofilled(map, map.begin()->second->origin, nullptr); | 304 controller()->OnPasswordAutofilled(map, map.begin()->second->origin, nullptr); |
305 | 305 |
306 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->GetState()); | 306 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->GetState()); |
307 EXPECT_EQ(test_form_ptr->origin, controller()->GetOrigin()); | 307 EXPECT_EQ(test_form_ptr->origin, controller()->GetOrigin()); |
308 ASSERT_EQ(1u, controller()->GetCurrentForms().size()); | 308 ASSERT_EQ(1u, controller()->GetCurrentForms().size()); |
309 EXPECT_EQ(kTestUsername, controller()->GetCurrentForms()[0]->username_value); | 309 EXPECT_EQ(kTestUsername, controller()->GetCurrentForms()[0]->username_value); |
310 | 310 |
311 // Controller should store a separate copy of the form as it doesn't own it. | 311 // Controller should store a separate copy of the form as it doesn't own it. |
312 EXPECT_NE(test_form_ptr, controller()->GetCurrentForms()[0]); | 312 EXPECT_NE(test_form_ptr, controller()->GetCurrentForms()[0].get()); |
313 | 313 |
314 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); | 314 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); |
315 } | 315 } |
316 | 316 |
317 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmitted) { | 317 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmitted) { |
318 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( | 318 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( |
319 CreateFormManager()); | 319 CreateFormManager()); |
320 test_form_manager->ProvisionallySave( | 320 test_form_manager->ProvisionallySave( |
321 test_local_form(), | 321 test_local_form(), |
322 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); | 322 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
511 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); | 511 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
512 controller()->OnAutomaticPasswordSave(std::move(test_form_manager)); | 512 controller()->OnAutomaticPasswordSave(std::move(test_form_manager)); |
513 EXPECT_EQ(password_manager::ui::CONFIRMATION_STATE, controller()->GetState()); | 513 EXPECT_EQ(password_manager::ui::CONFIRMATION_STATE, controller()->GetState()); |
514 | 514 |
515 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); | 515 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
516 controller()->OnBubbleHidden(); | 516 controller()->OnBubbleHidden(); |
517 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); | 517 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); |
518 } | 518 } |
519 | 519 |
520 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialLocal) { | 520 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialLocal) { |
521 ScopedVector<autofill::PasswordForm> local_credentials; | 521 std::vector<std::unique_ptr<autofill::PasswordForm>> local_credentials; |
522 local_credentials.push_back(new autofill::PasswordForm(test_local_form())); | 522 local_credentials.emplace_back(new autofill::PasswordForm(test_local_form())); |
523 ScopedVector<autofill::PasswordForm> federated_credentials; | 523 std::vector<std::unique_ptr<autofill::PasswordForm>> federated_credentials; |
524 GURL origin("http://example.com"); | 524 GURL origin("http://example.com"); |
525 PasswordDialogController* dialog_controller = nullptr; | 525 PasswordDialogController* dialog_controller = nullptr; |
526 EXPECT_CALL(*controller(), CreateAccountChooser(_)).WillOnce( | 526 EXPECT_CALL(*controller(), CreateAccountChooser(_)).WillOnce( |
527 DoAll(SaveArg<0>(&dialog_controller), Return(&dialog_prompt()))); | 527 DoAll(SaveArg<0>(&dialog_controller), Return(&dialog_prompt()))); |
528 EXPECT_CALL(dialog_prompt(), ShowAccountChooser()); | 528 EXPECT_CALL(dialog_prompt(), ShowAccountChooser()); |
529 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); | 529 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
530 EXPECT_TRUE(controller()->OnChooseCredentials( | 530 EXPECT_TRUE(controller()->OnChooseCredentials( |
531 std::move(local_credentials), std::move(federated_credentials), origin, | 531 std::move(local_credentials), std::move(federated_credentials), origin, |
532 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback, | 532 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback, |
533 base::Unretained(this)))); | 533 base::Unretained(this)))); |
(...skipping 10 matching lines...) Expand all Loading... |
544 EXPECT_CALL(dialog_prompt(), ControllerGone()); | 544 EXPECT_CALL(dialog_prompt(), ControllerGone()); |
545 EXPECT_CALL(*this, CredentialCallback(Pointee(test_local_form()))); | 545 EXPECT_CALL(*this, CredentialCallback(Pointee(test_local_form()))); |
546 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); | 546 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
547 dialog_controller->OnChooseCredentials( | 547 dialog_controller->OnChooseCredentials( |
548 *dialog_controller->GetLocalForms()[0], | 548 *dialog_controller->GetLocalForms()[0], |
549 password_manager::CredentialType::CREDENTIAL_TYPE_PASSWORD); | 549 password_manager::CredentialType::CREDENTIAL_TYPE_PASSWORD); |
550 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->GetState()); | 550 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->GetState()); |
551 } | 551 } |
552 | 552 |
553 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialLocalButFederated) { | 553 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialLocalButFederated) { |
554 ScopedVector<autofill::PasswordForm> local_credentials; | 554 std::vector<std::unique_ptr<autofill::PasswordForm>> local_credentials; |
555 local_credentials.push_back( | 555 local_credentials.emplace_back( |
556 new autofill::PasswordForm(test_federated_form())); | 556 new autofill::PasswordForm(test_federated_form())); |
557 ScopedVector<autofill::PasswordForm> federated_credentials; | 557 std::vector<std::unique_ptr<autofill::PasswordForm>> federated_credentials; |
558 GURL origin("http://example.com"); | 558 GURL origin("http://example.com"); |
559 PasswordDialogController* dialog_controller = nullptr; | 559 PasswordDialogController* dialog_controller = nullptr; |
560 EXPECT_CALL(*controller(), CreateAccountChooser(_)).WillOnce( | 560 EXPECT_CALL(*controller(), CreateAccountChooser(_)).WillOnce( |
561 DoAll(SaveArg<0>(&dialog_controller), Return(&dialog_prompt()))); | 561 DoAll(SaveArg<0>(&dialog_controller), Return(&dialog_prompt()))); |
562 EXPECT_CALL(dialog_prompt(), ShowAccountChooser()); | 562 EXPECT_CALL(dialog_prompt(), ShowAccountChooser()); |
563 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); | 563 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
564 EXPECT_TRUE(controller()->OnChooseCredentials( | 564 EXPECT_TRUE(controller()->OnChooseCredentials( |
565 std::move(local_credentials), std::move(federated_credentials), origin, | 565 std::move(local_credentials), std::move(federated_credentials), origin, |
566 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback, | 566 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback, |
567 base::Unretained(this)))); | 567 base::Unretained(this)))); |
(...skipping 10 matching lines...) Expand all Loading... |
578 EXPECT_CALL(dialog_prompt(), ControllerGone()); | 578 EXPECT_CALL(dialog_prompt(), ControllerGone()); |
579 EXPECT_CALL(*this, CredentialCallback(Pointee(test_federated_form()))); | 579 EXPECT_CALL(*this, CredentialCallback(Pointee(test_federated_form()))); |
580 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); | 580 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
581 dialog_controller->OnChooseCredentials( | 581 dialog_controller->OnChooseCredentials( |
582 *dialog_controller->GetLocalForms()[0], | 582 *dialog_controller->GetLocalForms()[0], |
583 password_manager::CredentialType::CREDENTIAL_TYPE_PASSWORD); | 583 password_manager::CredentialType::CREDENTIAL_TYPE_PASSWORD); |
584 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->GetState()); | 584 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->GetState()); |
585 } | 585 } |
586 | 586 |
587 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialCancel) { | 587 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialCancel) { |
588 ScopedVector<autofill::PasswordForm> local_credentials; | 588 std::vector<std::unique_ptr<autofill::PasswordForm>> local_credentials; |
589 local_credentials.push_back(new autofill::PasswordForm(test_local_form())); | 589 local_credentials.emplace_back(new autofill::PasswordForm(test_local_form())); |
590 ScopedVector<autofill::PasswordForm> federated_credentials; | 590 std::vector<std::unique_ptr<autofill::PasswordForm>> federated_credentials; |
591 GURL origin("http://example.com"); | 591 GURL origin("http://example.com"); |
592 PasswordDialogController* dialog_controller = nullptr; | 592 PasswordDialogController* dialog_controller = nullptr; |
593 EXPECT_CALL(*controller(), CreateAccountChooser(_)).WillOnce( | 593 EXPECT_CALL(*controller(), CreateAccountChooser(_)).WillOnce( |
594 DoAll(SaveArg<0>(&dialog_controller), Return(&dialog_prompt()))); | 594 DoAll(SaveArg<0>(&dialog_controller), Return(&dialog_prompt()))); |
595 EXPECT_CALL(dialog_prompt(), ShowAccountChooser()); | 595 EXPECT_CALL(dialog_prompt(), ShowAccountChooser()); |
596 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); | 596 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
597 EXPECT_TRUE(controller()->OnChooseCredentials( | 597 EXPECT_TRUE(controller()->OnChooseCredentials( |
598 std::move(local_credentials), std::move(federated_credentials), origin, | 598 std::move(local_credentials), std::move(federated_credentials), origin, |
599 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback, | 599 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback, |
600 base::Unretained(this)))); | 600 base::Unretained(this)))); |
601 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE, | 601 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE, |
602 controller()->GetState()); | 602 controller()->GetState()); |
603 EXPECT_EQ(origin, controller()->GetOrigin()); | 603 EXPECT_EQ(origin, controller()->GetOrigin()); |
604 | 604 |
605 EXPECT_CALL(dialog_prompt(), ControllerGone()).Times(0); | 605 EXPECT_CALL(dialog_prompt(), ControllerGone()).Times(0); |
606 EXPECT_CALL(*this, CredentialCallback(nullptr)); | 606 EXPECT_CALL(*this, CredentialCallback(nullptr)); |
607 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); | 607 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
608 dialog_controller->OnCloseDialog(); | 608 dialog_controller->OnCloseDialog(); |
609 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->GetState()); | 609 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->GetState()); |
610 } | 610 } |
611 | 611 |
612 TEST_F(ManagePasswordsUIControllerTest, AutoSignin) { | 612 TEST_F(ManagePasswordsUIControllerTest, AutoSignin) { |
613 ScopedVector<autofill::PasswordForm> local_credentials; | 613 std::vector<std::unique_ptr<autofill::PasswordForm>> local_credentials; |
614 local_credentials.push_back(new autofill::PasswordForm(test_local_form())); | 614 local_credentials.emplace_back(new autofill::PasswordForm(test_local_form())); |
615 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); | 615 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
616 controller()->OnAutoSignin(std::move(local_credentials), | 616 controller()->OnAutoSignin(std::move(local_credentials), |
617 test_local_form().origin); | 617 test_local_form().origin); |
618 EXPECT_EQ(password_manager::ui::AUTO_SIGNIN_STATE, controller()->GetState()); | 618 EXPECT_EQ(password_manager::ui::AUTO_SIGNIN_STATE, controller()->GetState()); |
619 EXPECT_EQ(test_local_form().origin, controller()->GetOrigin()); | 619 EXPECT_EQ(test_local_form().origin, controller()->GetOrigin()); |
620 ASSERT_FALSE(controller()->GetCurrentForms().empty()); | 620 ASSERT_FALSE(controller()->GetCurrentForms().empty()); |
621 EXPECT_EQ(test_local_form(), *controller()->GetCurrentForms()[0]); | 621 EXPECT_EQ(test_local_form(), *controller()->GetCurrentForms()[0]); |
622 ExpectIconStateIs(password_manager::ui::AUTO_SIGNIN_STATE); | 622 ExpectIconStateIs(password_manager::ui::AUTO_SIGNIN_STATE); |
623 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); | 623 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
624 controller()->OnBubbleHidden(); | 624 controller()->OnBubbleHidden(); |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
671 EXPECT_CALL(dialog_prompt(), ControllerGone()).Times(0); | 671 EXPECT_CALL(dialog_prompt(), ControllerGone()).Times(0); |
672 content::FrameNavigateParams params; | 672 content::FrameNavigateParams params; |
673 params.transition = ui::PAGE_TRANSITION_LINK; | 673 params.transition = ui::PAGE_TRANSITION_LINK; |
674 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); | 674 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
675 controller()->DidNavigateMainFrame(content::LoadCommittedDetails(), params); | 675 controller()->DidNavigateMainFrame(content::LoadCommittedDetails(), params); |
676 ASSERT_TRUE(testing::Mock::VerifyAndClearExpectations(&dialog_prompt())); | 676 ASSERT_TRUE(testing::Mock::VerifyAndClearExpectations(&dialog_prompt())); |
677 EXPECT_CALL(dialog_prompt(), ControllerGone()); | 677 EXPECT_CALL(dialog_prompt(), ControllerGone()); |
678 } | 678 } |
679 | 679 |
680 TEST_F(ManagePasswordsUIControllerTest, AutofillDuringAutoSignin) { | 680 TEST_F(ManagePasswordsUIControllerTest, AutofillDuringAutoSignin) { |
681 ScopedVector<autofill::PasswordForm> local_credentials; | 681 std::vector<std::unique_ptr<autofill::PasswordForm>> local_credentials; |
682 local_credentials.push_back(new autofill::PasswordForm(test_local_form())); | 682 local_credentials.emplace_back(new autofill::PasswordForm(test_local_form())); |
683 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); | 683 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
684 controller()->OnAutoSignin(std::move(local_credentials), | 684 controller()->OnAutoSignin(std::move(local_credentials), |
685 test_local_form().origin); | 685 test_local_form().origin); |
686 ExpectIconAndControllerStateIs(password_manager::ui::AUTO_SIGNIN_STATE); | 686 ExpectIconAndControllerStateIs(password_manager::ui::AUTO_SIGNIN_STATE); |
687 std::unique_ptr<autofill::PasswordForm> test_form( | 687 std::unique_ptr<autofill::PasswordForm> test_form( |
688 new autofill::PasswordForm(test_local_form())); | 688 new autofill::PasswordForm(test_local_form())); |
689 autofill::PasswordFormMap map; | 689 autofill::PasswordFormMap map; |
690 base::string16 kTestUsername = test_form->username_value; | 690 base::string16 kTestUsername = test_form->username_value; |
691 map.insert(std::make_pair(kTestUsername, std::move(test_form))); | 691 map.insert(std::make_pair(kTestUsername, std::move(test_form))); |
692 controller()->OnPasswordAutofilled(map, map.begin()->second->origin, nullptr); | 692 controller()->OnPasswordAutofilled(map, map.begin()->second->origin, nullptr); |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
741 TestNotChangingStateOnAutofill( | 741 TestNotChangingStateOnAutofill( |
742 password_manager::ui::PENDING_PASSWORD_UPDATE_STATE); | 742 password_manager::ui::PENDING_PASSWORD_UPDATE_STATE); |
743 } | 743 } |
744 | 744 |
745 TEST_F(ManagePasswordsUIControllerTest, ConfirmationStatePasswordAutofilled) { | 745 TEST_F(ManagePasswordsUIControllerTest, ConfirmationStatePasswordAutofilled) { |
746 TestNotChangingStateOnAutofill(password_manager::ui::CONFIRMATION_STATE); | 746 TestNotChangingStateOnAutofill(password_manager::ui::CONFIRMATION_STATE); |
747 } | 747 } |
748 | 748 |
749 TEST_F(ManagePasswordsUIControllerTest, OpenBubbleTwice) { | 749 TEST_F(ManagePasswordsUIControllerTest, OpenBubbleTwice) { |
750 // Open the autosignin bubble. | 750 // Open the autosignin bubble. |
751 ScopedVector<autofill::PasswordForm> local_credentials; | 751 std::vector<std::unique_ptr<autofill::PasswordForm>> local_credentials; |
752 local_credentials.push_back(new autofill::PasswordForm(test_local_form())); | 752 local_credentials.emplace_back(new autofill::PasswordForm(test_local_form())); |
753 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); | 753 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
754 controller()->OnAutoSignin(std::move(local_credentials), | 754 controller()->OnAutoSignin(std::move(local_credentials), |
755 test_local_form().origin); | 755 test_local_form().origin); |
756 EXPECT_EQ(password_manager::ui::AUTO_SIGNIN_STATE, controller()->GetState()); | 756 EXPECT_EQ(password_manager::ui::AUTO_SIGNIN_STATE, controller()->GetState()); |
757 // The delegate used by the bubble for communicating with the controller. | 757 // The delegate used by the bubble for communicating with the controller. |
758 base::WeakPtr<PasswordsModelDelegate> proxy_delegate = | 758 base::WeakPtr<PasswordsModelDelegate> proxy_delegate = |
759 controller()->GetModelDelegateProxy(); | 759 controller()->GetModelDelegateProxy(); |
760 | 760 |
761 // Open the bubble again. | 761 // Open the bubble again. |
762 local_credentials.push_back(new autofill::PasswordForm(test_local_form())); | 762 local_credentials.emplace_back(new autofill::PasswordForm(test_local_form())); |
763 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); | 763 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
764 controller()->OnAutoSignin(std::move(local_credentials), | 764 controller()->OnAutoSignin(std::move(local_credentials), |
765 test_local_form().origin); | 765 test_local_form().origin); |
766 EXPECT_EQ(password_manager::ui::AUTO_SIGNIN_STATE, controller()->GetState()); | 766 EXPECT_EQ(password_manager::ui::AUTO_SIGNIN_STATE, controller()->GetState()); |
767 // Check the delegate is destroyed. Thus, the first bubble has no way to mess | 767 // Check the delegate is destroyed. Thus, the first bubble has no way to mess |
768 // up with the controller's state. | 768 // up with the controller's state. |
769 EXPECT_FALSE(proxy_delegate); | 769 EXPECT_FALSE(proxy_delegate); |
770 } | 770 } |
OLD | NEW |