| 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 1eb16c2f927e6a5e8711dcfff8df8878fb955526..6182fdb71bf49206c02d68269c1d8d0594a17898 100644
|
| --- a/chrome/browser/ui/passwords/manage_passwords_ui_controller_unittest.cc
|
| +++ b/chrome/browser/ui/passwords/manage_passwords_ui_controller_unittest.cc
|
| @@ -2,6 +2,7 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| +#include "base/bind.h"
|
| #include "base/prefs/pref_service.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "base/time/time.h"
|
| @@ -13,6 +14,7 @@
|
| #include "chrome/test/base/chrome_render_view_host_test_harness.h"
|
| #include "chrome/test/base/testing_profile.h"
|
| #include "components/autofill/core/common/password_form.h"
|
| +#include "components/password_manager/content/common/credential_manager_types.h"
|
| #include "components/password_manager/core/browser/password_form_manager.h"
|
| #include "components/password_manager/core/browser/stub_password_manager_client.h"
|
| #include "components/password_manager/core/browser/stub_password_manager_driver.h"
|
| @@ -55,6 +57,8 @@ class ManagePasswordsUIControllerTest : public ChromeRenderViewHostTestHarness {
|
| new ManagePasswordsUIControllerMock(web_contents());
|
|
|
| test_form_.origin = GURL("http://example.com");
|
| + test_form_.username_value = base::ASCIIToUTF16("username");
|
| + test_form_.password_value = base::ASCIIToUTF16("12345");
|
|
|
| // We need to be on a "webby" URL for most tests.
|
| content::WebContentsTester::For(web_contents())
|
| @@ -62,14 +66,22 @@ class ManagePasswordsUIControllerTest : public ChromeRenderViewHostTestHarness {
|
| }
|
|
|
| autofill::PasswordForm& test_form() { return test_form_; }
|
| + password_manager::CredentialInfo* credential_info() const {
|
| + return credential_info_.get();
|
| + }
|
|
|
| ManagePasswordsUIControllerMock* controller() {
|
| return static_cast<ManagePasswordsUIControllerMock*>(
|
| ManagePasswordsUIController::FromWebContents(web_contents()));
|
| }
|
|
|
| + void CredentialCallback(const password_manager::CredentialInfo& info) {
|
| + credential_info_.reset(new password_manager::CredentialInfo(info));
|
| + }
|
| +
|
| private:
|
| autofill::PasswordForm test_form_;
|
| + scoped_ptr<password_manager::CredentialInfo> credential_info_;
|
| };
|
|
|
| TEST_F(ManagePasswordsUIControllerTest, DefaultState) {
|
| @@ -324,3 +336,47 @@ TEST_F(ManagePasswordsUIControllerTest, AutomaticPasswordSave) {
|
| controller()->UpdateIconAndBubbleState(&mock);
|
| EXPECT_EQ(password_manager::ui::MANAGE_STATE, mock.state());
|
| }
|
| +
|
| +TEST_F(ManagePasswordsUIControllerTest, ChooseCredential) {
|
| + ScopedVector<autofill::PasswordForm> credentials;
|
| + credentials.push_back(new autofill::PasswordForm(test_form()));
|
| + EXPECT_TRUE(controller()->OnChooseCredentials(
|
| + credentials.Pass(),
|
| + base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback,
|
| + base::Unretained(this))));
|
| + EXPECT_EQ(password_manager::ui::PENDING_CREDENTIALS_AND_BUBBLE_STATE,
|
| + controller()->state());
|
| + EXPECT_FALSE(controller()->PasswordPendingUserDecision());
|
| + EXPECT_EQ(test_form().origin, controller()->origin());
|
| + EXPECT_EQ(autofill::ConstPasswordFormMap(), controller()->best_matches());
|
| +
|
| + ManagePasswordsIconMock mock;
|
| + controller()->UpdateIconAndBubbleState(&mock);
|
| + EXPECT_EQ(password_manager::ui::PENDING_CREDENTIALS_AND_BUBBLE_STATE,
|
| + mock.state());
|
| +
|
| + controller()->ManagePasswordsUIController::ChooseCredential(true,
|
| + test_form());
|
| + EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->state());
|
| + ASSERT_TRUE(credential_info());
|
| + EXPECT_EQ(test_form().username_value, credential_info()->id);
|
| + EXPECT_EQ(test_form().password_value, credential_info()->password);
|
| + EXPECT_EQ(password_manager::CREDENTIAL_TYPE_LOCAL, credential_info()->type);
|
| +}
|
| +
|
| +TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialCancel) {
|
| + ScopedVector<autofill::PasswordForm> credentials;
|
| + credentials.push_back(new autofill::PasswordForm(test_form()));
|
| + EXPECT_TRUE(controller()->OnChooseCredentials(
|
| + credentials.Pass(),
|
| + base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback,
|
| + base::Unretained(this))));
|
| + EXPECT_EQ(password_manager::ui::PENDING_CREDENTIALS_AND_BUBBLE_STATE,
|
| + controller()->state());
|
| +
|
| + controller()->ManagePasswordsUIController::ChooseCredential(false,
|
| + test_form());
|
| + EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->state());
|
| + ASSERT_TRUE(credential_info());
|
| + EXPECT_EQ(password_manager::CREDENTIAL_TYPE_EMPTY, credential_info()->type);
|
| +}
|
|
|