| Index: chrome/browser/ui/passwords/manage_passwords_ui_controller_unittest.cc
|
| diff --git a/chrome/browser/ui/passwords/manage_passwords_ui_controller_unittest.cc b/chrome/browser/ui/passwords/manage_passwords_ui_controller_unittest.cc
|
| index ddf92ce36605aede411820972f9b8395244cbbc5..5478e0290e5928e06a5368a10d7739f10b748bc4 100644
|
| --- a/chrome/browser/ui/passwords/manage_passwords_ui_controller_unittest.cc
|
| +++ b/chrome/browser/ui/passwords/manage_passwords_ui_controller_unittest.cc
|
| @@ -51,7 +51,7 @@ class TestManagePasswordsUIController : public ManagePasswordsUIController {
|
| void UpdateBubbleAndIconVisibility() override;
|
| void UpdateAndroidAccountChooserInfoBarVisibility() override;
|
| void SavePasswordInternal() override {}
|
| - void NeverSavePasswordInternal() override {}
|
| + void NeverSavePasswordInternal() override;
|
|
|
| base::TimeDelta elapsed_;
|
| };
|
| @@ -84,6 +84,17 @@ void TestManagePasswordsUIController::
|
| OnBubbleShown();
|
| }
|
|
|
| +void TestManagePasswordsUIController::NeverSavePasswordInternal() {
|
| + autofill::PasswordForm blacklisted;
|
| + blacklisted.origin = this->origin();
|
| + blacklisted.signon_realm = blacklisted.origin.spec();
|
| + blacklisted.blacklisted_by_user = true;
|
| + password_manager::PasswordStoreChange change(
|
| + password_manager::PasswordStoreChange::ADD, blacklisted);
|
| + password_manager::PasswordStoreChangeList list(1, change);
|
| + OnLoginsChanged(list);
|
| +}
|
| +
|
| } // namespace
|
|
|
| class ManagePasswordsUIControllerTest : public ChromeRenderViewHostTestHarness {
|
| @@ -126,6 +137,10 @@ class ManagePasswordsUIControllerTest : public ChromeRenderViewHostTestHarness {
|
| credential_info_.reset(new password_manager::CredentialInfo(info));
|
| }
|
|
|
| + password_manager::StubPasswordManagerClient* client() {
|
| + return &client_;
|
| + }
|
| +
|
| scoped_ptr<password_manager::PasswordFormManager> CreateFormManager();
|
|
|
| private:
|
| @@ -293,67 +308,41 @@ TEST_F(ManagePasswordsUIControllerTest, PasswordSubmittedToNonWebbyURL) {
|
| TEST_F(ManagePasswordsUIControllerTest, BlacklistBlockedAutofill) {
|
| scoped_ptr<autofill::PasswordForm> test_form(
|
| new autofill::PasswordForm(test_local_form()));
|
| - autofill::PasswordForm* test_form_ptr = test_form.get();
|
| test_form->blacklisted_by_user = true;
|
| base::string16 kTestUsername = test_form->username_value;
|
| autofill::PasswordFormMap map;
|
| map.insert(kTestUsername, test_form.Pass());
|
| controller()->OnBlacklistBlockedAutofill(map);
|
|
|
| - EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, controller()->state());
|
| + EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->state());
|
| EXPECT_FALSE(controller()->PasswordPendingUserDecision());
|
| - EXPECT_EQ(test_form_ptr->origin, controller()->origin());
|
| - ASSERT_EQ(1u, controller()->GetCurrentForms().size());
|
| - EXPECT_EQ(kTestUsername, controller()->GetCurrentForms()[0]->username_value);
|
| -
|
| - // Controller should store a separate copy of the form as it doesn't own it.
|
| - EXPECT_NE(test_form_ptr, controller()->GetCurrentForms()[0]);
|
|
|
| ManagePasswordsIconMock mock;
|
| controller()->UpdateIconAndBubbleState(&mock);
|
| - EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, mock.state());
|
| + EXPECT_EQ(password_manager::ui::INACTIVE_STATE, mock.state());
|
| }
|
|
|
| TEST_F(ManagePasswordsUIControllerTest, ClickedUnblacklist) {
|
| - base::string16 kTestUsername = base::ASCIIToUTF16("test_username");
|
| - autofill::PasswordFormMap map;
|
| - scoped_ptr<autofill::PasswordForm> test_form(
|
| - new autofill::PasswordForm(test_local_form()));
|
| - autofill::PasswordForm& test_form_ref = *test_form;
|
| - map.insert(kTestUsername, test_form.Pass());
|
| - test_form_ref.blacklisted_by_user = true;
|
| - controller()->OnBlacklistBlockedAutofill(map);
|
| - controller()->UnblacklistSite();
|
| -
|
| - EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->state());
|
| - EXPECT_FALSE(controller()->PasswordPendingUserDecision());
|
| + scoped_ptr<password_manager::PasswordFormManager> test_form_manager(
|
| + ManagePasswordsUIControllerMock::CreateFormManager(
|
| + client(), test_local_form(), ScopedVector<autofill::PasswordForm>()));
|
| + test_form_manager->ProvisionallySave(
|
| + test_local_form(),
|
| + password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES);
|
| + controller()->OnPasswordSubmitted(test_form_manager.Pass());
|
| EXPECT_EQ(test_local_form().origin, controller()->origin());
|
| -
|
| + controller()->NeverSavePassword();
|
| ManagePasswordsIconMock mock;
|
| controller()->UpdateIconAndBubbleState(&mock);
|
| - EXPECT_EQ(password_manager::ui::MANAGE_STATE, mock.state());
|
| -}
|
| -
|
| -TEST_F(ManagePasswordsUIControllerTest, UnblacklistedElsewhere) {
|
| - test_local_form().blacklisted_by_user = true;
|
| - base::string16 kTestUsername = base::ASCIIToUTF16("test_username");
|
| - autofill::PasswordFormMap map;
|
| - map.insert(kTestUsername,
|
| - make_scoped_ptr(new autofill::PasswordForm(test_local_form())));
|
| - controller()->OnBlacklistBlockedAutofill(map);
|
| -
|
| - password_manager::PasswordStoreChange change(
|
| - password_manager::PasswordStoreChange::REMOVE, test_local_form());
|
| - password_manager::PasswordStoreChangeList list(1, change);
|
| - controller()->OnLoginsChanged(list);
|
| -
|
| - EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->state());
|
| - EXPECT_FALSE(controller()->PasswordPendingUserDecision());
|
| + EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, mock.state());
|
| EXPECT_EQ(test_local_form().origin, controller()->origin());
|
|
|
| - ManagePasswordsIconMock mock;
|
| + controller()->UnblacklistSite();
|
| controller()->UpdateIconAndBubbleState(&mock);
|
| EXPECT_EQ(password_manager::ui::MANAGE_STATE, mock.state());
|
| + EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->state());
|
| + EXPECT_FALSE(controller()->PasswordPendingUserDecision());
|
| + EXPECT_EQ(test_local_form().origin, controller()->origin());
|
| }
|
|
|
| TEST_F(ManagePasswordsUIControllerTest, BlacklistedElsewhere) {
|
|
|