Index: components/password_manager/core/browser/password_manager_unittest.cc |
diff --git a/components/password_manager/core/browser/password_manager_unittest.cc b/components/password_manager/core/browser/password_manager_unittest.cc |
index a3cc8fc2cd5e185535fcbbe8030a4773d8b52119..5266521fa165fd61e8266494203c3c37e63ad2a9 100644 |
--- a/components/password_manager/core/browser/password_manager_unittest.cc |
+++ b/components/password_manager/core/browser/password_manager_unittest.cc |
@@ -42,6 +42,8 @@ class MockPasswordManagerClient : public StubPasswordManagerClient { |
bool(const std::string&, const std::string&)); |
MOCK_CONST_METHOD0(GetPasswordStore, PasswordStore*()); |
MOCK_CONST_METHOD0(DidLastPageLoadEncounterSSLErrors, bool()); |
+ // The code inside EXPECT_CALL for PromptUserToSavePasswordPtr owns the |
+ // PasswordFormManager* argument. |
MOCK_METHOD2(PromptUserToSavePasswordPtr, |
void(PasswordFormManager*, CredentialSourceType type)); |
MOCK_METHOD1(AutomaticPasswordSavePtr, void(PasswordFormManager*)); |
@@ -823,10 +825,11 @@ TEST_F(PasswordManagerTest, |
} |
// Create a form with a new_password_element. Submit the form with the empty |
-// new password value. It shouldn't overwrite the existing password. |
+// new password value. It shouldn't attempt to save the empty password. |
TEST_F(PasswordManagerTest, DoNotUpdateWithEmptyPassword) { |
std::vector<PasswordForm> observed; |
PasswordForm form(MakeSimpleForm()); |
+ ASSERT_FALSE(form.password_value.empty()); |
form.new_password_element = ASCIIToUTF16("new_password_element"); |
form.new_password_value.clear(); |
observed.push_back(form); |
@@ -837,10 +840,11 @@ TEST_F(PasswordManagerTest, DoNotUpdateWithEmptyPassword) { |
// And the form submit contract is to call ProvisionallySavePassword. |
OnPasswordFormSubmitted(form); |
+ scoped_ptr<PasswordFormManager> form_to_save; |
EXPECT_CALL(client_, |
PromptUserToSavePasswordPtr( |
_, CredentialSourceType::CREDENTIAL_SOURCE_PASSWORD_MANAGER)) |
- .Times(0); |
+ .WillOnce(WithArg<0>(SaveToScopedPtr(&form_to_save))); |
// Now the password manager waits for the login to complete successfully. |
observed.clear(); |
@@ -848,6 +852,8 @@ TEST_F(PasswordManagerTest, DoNotUpdateWithEmptyPassword) { |
observed); // The post-navigation load. |
manager()->OnPasswordFormsRendered(&driver_, observed, |
true); // The post-navigation layout. |
+ EXPECT_FALSE(PasswordFormManager::PasswordToSave( |
Garrett Casto
2015/03/17 22:49:37
What caused this change?
vabr (Chromium)
2015/03/18 16:51:03
Previously, if there was a "new password" field, i
|
+ form_to_save->pending_credentials()).empty()); |
} |
TEST_F(PasswordManagerTest, FormSubmitWithOnlyPassowrdField) { |