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

Side by Side Diff: chrome/browser/ui/passwords/manage_passwords_ui_controller_unittest.cc

Issue 2432483002: Do not try to pop up the account chooser if there is no browser window. (Closed)
Patch Set: Created 4 years, 2 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
« no previous file with comments | « chrome/browser/ui/passwords/manage_passwords_ui_controller.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 <map> 5 #include <map>
6 #include <memory> 6 #include <memory>
7 #include <utility> 7 #include <utility>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 content::WebContents* contents, 87 content::WebContents* contents,
88 password_manager::PasswordManagerClient* client); 88 password_manager::PasswordManagerClient* client);
89 ~TestManagePasswordsUIController() override; 89 ~TestManagePasswordsUIController() override;
90 90
91 bool opened_bubble() const { return opened_bubble_; } 91 bool opened_bubble() const { return opened_bubble_; }
92 92
93 MOCK_METHOD1(CreateAccountChooser, 93 MOCK_METHOD1(CreateAccountChooser,
94 AccountChooserPrompt*(PasswordDialogController*)); 94 AccountChooserPrompt*(PasswordDialogController*));
95 MOCK_METHOD1(CreateAutoSigninPrompt, 95 MOCK_METHOD1(CreateAutoSigninPrompt,
96 AutoSigninFirstRunPrompt*(PasswordDialogController*)); 96 AutoSigninFirstRunPrompt*(PasswordDialogController*));
97 MOCK_CONST_METHOD0(HasBrowserWindow, bool());
97 MOCK_METHOD0(OnUpdateBubbleAndIconVisibility, void()); 98 MOCK_METHOD0(OnUpdateBubbleAndIconVisibility, void());
98 using ManagePasswordsUIController::DidNavigateMainFrame; 99 using ManagePasswordsUIController::DidNavigateMainFrame;
99 100
100 private: 101 private:
101 void UpdateBubbleAndIconVisibility() override; 102 void UpdateBubbleAndIconVisibility() override;
102 void SavePasswordInternal() override {} 103 void SavePasswordInternal() override {}
103 void UpdatePasswordInternal( 104 void UpdatePasswordInternal(
104 const autofill::PasswordForm& password_form) override {} 105 const autofill::PasswordForm& password_form) override {}
105 void NeverSavePasswordInternal() override; 106 void NeverSavePasswordInternal() override;
106 107
(...skipping 410 matching lines...) Expand 10 before | Expand all | Expand 10 after
517 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialLocal) { 518 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialLocal) {
518 std::vector<std::unique_ptr<autofill::PasswordForm>> local_credentials; 519 std::vector<std::unique_ptr<autofill::PasswordForm>> local_credentials;
519 local_credentials.emplace_back(new autofill::PasswordForm(test_local_form())); 520 local_credentials.emplace_back(new autofill::PasswordForm(test_local_form()));
520 std::vector<std::unique_ptr<autofill::PasswordForm>> federated_credentials; 521 std::vector<std::unique_ptr<autofill::PasswordForm>> federated_credentials;
521 GURL origin("http://example.com"); 522 GURL origin("http://example.com");
522 PasswordDialogController* dialog_controller = nullptr; 523 PasswordDialogController* dialog_controller = nullptr;
523 EXPECT_CALL(*controller(), CreateAccountChooser(_)).WillOnce( 524 EXPECT_CALL(*controller(), CreateAccountChooser(_)).WillOnce(
524 DoAll(SaveArg<0>(&dialog_controller), Return(&dialog_prompt()))); 525 DoAll(SaveArg<0>(&dialog_controller), Return(&dialog_prompt())));
525 EXPECT_CALL(dialog_prompt(), ShowAccountChooser()); 526 EXPECT_CALL(dialog_prompt(), ShowAccountChooser());
526 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); 527 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility());
528 EXPECT_CALL(*controller(), HasBrowserWindow()).WillOnce(Return(true));
527 EXPECT_TRUE(controller()->OnChooseCredentials( 529 EXPECT_TRUE(controller()->OnChooseCredentials(
528 std::move(local_credentials), std::move(federated_credentials), origin, 530 std::move(local_credentials), std::move(federated_credentials), origin,
529 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback, 531 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback,
530 base::Unretained(this)))); 532 base::Unretained(this))));
531 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE, 533 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE,
532 controller()->GetState()); 534 controller()->GetState());
533 EXPECT_EQ(origin, controller()->GetOrigin()); 535 EXPECT_EQ(origin, controller()->GetOrigin());
534 EXPECT_THAT(controller()->GetCurrentForms(), 536 EXPECT_THAT(controller()->GetCurrentForms(),
535 ElementsAre(Pointee(test_local_form()))); 537 ElementsAre(Pointee(test_local_form())));
536 ASSERT_THAT(dialog_controller->GetLocalForms(), 538 ASSERT_THAT(dialog_controller->GetLocalForms(),
(...skipping 14 matching lines...) Expand all
551 std::vector<std::unique_ptr<autofill::PasswordForm>> local_credentials; 553 std::vector<std::unique_ptr<autofill::PasswordForm>> local_credentials;
552 local_credentials.emplace_back( 554 local_credentials.emplace_back(
553 new autofill::PasswordForm(test_federated_form())); 555 new autofill::PasswordForm(test_federated_form()));
554 std::vector<std::unique_ptr<autofill::PasswordForm>> federated_credentials; 556 std::vector<std::unique_ptr<autofill::PasswordForm>> federated_credentials;
555 GURL origin("http://example.com"); 557 GURL origin("http://example.com");
556 PasswordDialogController* dialog_controller = nullptr; 558 PasswordDialogController* dialog_controller = nullptr;
557 EXPECT_CALL(*controller(), CreateAccountChooser(_)).WillOnce( 559 EXPECT_CALL(*controller(), CreateAccountChooser(_)).WillOnce(
558 DoAll(SaveArg<0>(&dialog_controller), Return(&dialog_prompt()))); 560 DoAll(SaveArg<0>(&dialog_controller), Return(&dialog_prompt())));
559 EXPECT_CALL(dialog_prompt(), ShowAccountChooser()); 561 EXPECT_CALL(dialog_prompt(), ShowAccountChooser());
560 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); 562 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility());
563 EXPECT_CALL(*controller(), HasBrowserWindow()).WillOnce(Return(true));
561 EXPECT_TRUE(controller()->OnChooseCredentials( 564 EXPECT_TRUE(controller()->OnChooseCredentials(
562 std::move(local_credentials), std::move(federated_credentials), origin, 565 std::move(local_credentials), std::move(federated_credentials), origin,
563 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback, 566 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback,
564 base::Unretained(this)))); 567 base::Unretained(this))));
565 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE, 568 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE,
566 controller()->GetState()); 569 controller()->GetState());
567 EXPECT_EQ(origin, controller()->GetOrigin()); 570 EXPECT_EQ(origin, controller()->GetOrigin());
568 EXPECT_THAT(controller()->GetCurrentForms(), 571 EXPECT_THAT(controller()->GetCurrentForms(),
569 ElementsAre(Pointee(test_federated_form()))); 572 ElementsAre(Pointee(test_federated_form())));
570 ASSERT_THAT(dialog_controller->GetLocalForms(), 573 ASSERT_THAT(dialog_controller->GetLocalForms(),
(...skipping 13 matching lines...) Expand all
584 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialCancel) { 587 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialCancel) {
585 std::vector<std::unique_ptr<autofill::PasswordForm>> local_credentials; 588 std::vector<std::unique_ptr<autofill::PasswordForm>> local_credentials;
586 local_credentials.emplace_back(new autofill::PasswordForm(test_local_form())); 589 local_credentials.emplace_back(new autofill::PasswordForm(test_local_form()));
587 std::vector<std::unique_ptr<autofill::PasswordForm>> federated_credentials; 590 std::vector<std::unique_ptr<autofill::PasswordForm>> federated_credentials;
588 GURL origin("http://example.com"); 591 GURL origin("http://example.com");
589 PasswordDialogController* dialog_controller = nullptr; 592 PasswordDialogController* dialog_controller = nullptr;
590 EXPECT_CALL(*controller(), CreateAccountChooser(_)).WillOnce( 593 EXPECT_CALL(*controller(), CreateAccountChooser(_)).WillOnce(
591 DoAll(SaveArg<0>(&dialog_controller), Return(&dialog_prompt()))); 594 DoAll(SaveArg<0>(&dialog_controller), Return(&dialog_prompt())));
592 EXPECT_CALL(dialog_prompt(), ShowAccountChooser()); 595 EXPECT_CALL(dialog_prompt(), ShowAccountChooser());
593 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); 596 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility());
597 EXPECT_CALL(*controller(), HasBrowserWindow()).WillOnce(Return(true));
594 EXPECT_TRUE(controller()->OnChooseCredentials( 598 EXPECT_TRUE(controller()->OnChooseCredentials(
595 std::move(local_credentials), std::move(federated_credentials), origin, 599 std::move(local_credentials), std::move(federated_credentials), origin,
596 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback, 600 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback,
597 base::Unretained(this)))); 601 base::Unretained(this))));
598 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE, 602 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE,
599 controller()->GetState()); 603 controller()->GetState());
600 EXPECT_EQ(origin, controller()->GetOrigin()); 604 EXPECT_EQ(origin, controller()->GetOrigin());
601 605
602 EXPECT_CALL(dialog_prompt(), ControllerGone()).Times(0); 606 EXPECT_CALL(dialog_prompt(), ControllerGone()).Times(0);
603 EXPECT_CALL(*this, CredentialCallback(nullptr)); 607 EXPECT_CALL(*this, CredentialCallback(nullptr));
604 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); 608 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility());
605 dialog_controller->OnCloseDialog(); 609 dialog_controller->OnCloseDialog();
606 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->GetState()); 610 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->GetState());
607 } 611 }
608 612
613 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialPrefetch) {
614 std::vector<std::unique_ptr<autofill::PasswordForm>> local_credentials;
615 local_credentials.emplace_back(new autofill::PasswordForm(test_local_form()));
616 std::vector<std::unique_ptr<autofill::PasswordForm>> federated_credentials;
617 GURL origin("http://example.com");
618
619 // Simulate requesting a credential during prefetch. The tab has no associated
620 // browser. Nothing should happen.
621 EXPECT_CALL(*controller(), HasBrowserWindow()).WillOnce(Return(false));
622 EXPECT_FALSE(controller()->OnChooseCredentials(
623 std::move(local_credentials), std::move(federated_credentials), origin,
624 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback,
625 base::Unretained(this))));
626 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState());
627 }
628
609 TEST_F(ManagePasswordsUIControllerTest, AutoSignin) { 629 TEST_F(ManagePasswordsUIControllerTest, AutoSignin) {
610 std::vector<std::unique_ptr<autofill::PasswordForm>> local_credentials; 630 std::vector<std::unique_ptr<autofill::PasswordForm>> local_credentials;
611 local_credentials.emplace_back(new autofill::PasswordForm(test_local_form())); 631 local_credentials.emplace_back(new autofill::PasswordForm(test_local_form()));
612 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); 632 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility());
613 controller()->OnAutoSignin(std::move(local_credentials), 633 controller()->OnAutoSignin(std::move(local_credentials),
614 test_local_form().origin); 634 test_local_form().origin);
615 EXPECT_EQ(password_manager::ui::AUTO_SIGNIN_STATE, controller()->GetState()); 635 EXPECT_EQ(password_manager::ui::AUTO_SIGNIN_STATE, controller()->GetState());
616 EXPECT_EQ(test_local_form().origin, controller()->GetOrigin()); 636 EXPECT_EQ(test_local_form().origin, controller()->GetOrigin());
617 ASSERT_FALSE(controller()->GetCurrentForms().empty()); 637 ASSERT_FALSE(controller()->GetCurrentForms().empty());
618 EXPECT_EQ(test_local_form(), *controller()->GetCurrentForms()[0]); 638 EXPECT_EQ(test_local_form(), *controller()->GetCurrentForms()[0]);
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
753 // Open the bubble again. 773 // Open the bubble again.
754 local_credentials.emplace_back(new autofill::PasswordForm(test_local_form())); 774 local_credentials.emplace_back(new autofill::PasswordForm(test_local_form()));
755 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); 775 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility());
756 controller()->OnAutoSignin(std::move(local_credentials), 776 controller()->OnAutoSignin(std::move(local_credentials),
757 test_local_form().origin); 777 test_local_form().origin);
758 EXPECT_EQ(password_manager::ui::AUTO_SIGNIN_STATE, controller()->GetState()); 778 EXPECT_EQ(password_manager::ui::AUTO_SIGNIN_STATE, controller()->GetState());
759 // Check the delegate is destroyed. Thus, the first bubble has no way to mess 779 // Check the delegate is destroyed. Thus, the first bubble has no way to mess
760 // up with the controller's state. 780 // up with the controller's state.
761 EXPECT_FALSE(proxy_delegate); 781 EXPECT_FALSE(proxy_delegate);
762 } 782 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/passwords/manage_passwords_ui_controller.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698