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

Unified Diff: components/password_manager/core/browser/password_manager_unittest.cc

Issue 1014683006: [Password manager] Recognise squashed login+sign-up forms (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix failing PasswordManagerTest Created 5 years, 9 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 side-by-side diff with in-line comments
Download patch
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) {

Powered by Google App Engine
This is Rietveld 408576698