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

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

Issue 2708923006: [Password Manager] New criteria for submission detection. (Closed)
Patch Set: Removed debugging logging Created 3 years, 10 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
« no previous file with comments | « components/password_manager/core/browser/password_manager.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 da9feefaf9d6650bea3bfe799bea0003ca0fd88d..b0b4e53355c8b8c7568bf077467903e94ee4d76f 100644
--- a/components/password_manager/core/browser/password_manager_unittest.cc
+++ b/components/password_manager/core/browser/password_manager_unittest.cc
@@ -1683,4 +1683,45 @@ TEST_F(PasswordManagerTest, UpdatePasswordOfAffiliatedCredential) {
EXPECT_THAT(saved_form, FormMatches(expected_form));
}
+TEST_F(PasswordManagerTest, ClearedFieldsSuccessCriteria) {
+ // Test that a submission is considered to be successful on a change password
+ // form without username when fields valued are cleared.
+ PasswordForm form(MakeFormWithOnlyNewPasswordField());
+ form.username_element.clear();
+ form.username_value.clear();
+ std::vector<PasswordForm> observed;
+ observed.push_back(form);
+
+ // Emulate page load.
+ EXPECT_CALL(*store_, GetLogins(_, _)).Times(2);
+ manager()->OnPasswordFormsParsed(&driver_, observed);
+ manager()->OnPasswordFormsRendered(&driver_, observed, true);
+ ASSERT_EQ(1u, manager()->pending_login_managers().size());
+ EXPECT_CALL(client_, IsSavingAndFillingEnabledForCurrentPage())
+ .WillRepeatedly(Return(true));
+
+ // Returning result from the store.
+ PasswordFormManager* form_manager =
+ manager()->pending_login_managers().front().get();
+ ASSERT_TRUE(form_manager);
+ static_cast<FormFetcherImpl*>(form_manager->form_fetcher())
+ ->OnGetPasswordStoreResults(std::vector<std::unique_ptr<PasswordForm>>());
+
+ OnPasswordFormSubmitted(form);
+
+ // JavaScript cleared field values.
+ observed[0].password_value.clear();
+ observed[0].new_password_value.clear();
+
+ // Check success of the submission.
+ std::unique_ptr<PasswordFormManager> form_manager_to_save;
+ EXPECT_CALL(client_,
+ PromptUserToSaveOrUpdatePasswordPtr(
+ _, CredentialSourceType::CREDENTIAL_SOURCE_PASSWORD_MANAGER))
+ .WillOnce(WithArg<0>(SaveToScopedPtr(&form_manager_to_save)));
+
+ manager()->OnPasswordFormsParsed(&driver_, observed);
+ manager()->OnPasswordFormsRendered(&driver_, observed, true);
+}
+
} // namespace password_manager
« no previous file with comments | « components/password_manager/core/browser/password_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698