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

Unified Diff: chrome/renderer/autofill/password_generation_agent_browsertest.cc

Issue 1817483002: [Password Manager] Presave the form with generated password till successful login (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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: chrome/renderer/autofill/password_generation_agent_browsertest.cc
diff --git a/chrome/renderer/autofill/password_generation_agent_browsertest.cc b/chrome/renderer/autofill/password_generation_agent_browsertest.cc
index 410b75b8ba8675c49412455c0a1286e1ade25051..333d34c5c354a6fb7835c1ade5a0c8023a6a955e 100644
--- a/chrome/renderer/autofill/password_generation_agent_browsertest.cc
+++ b/chrome/renderer/autofill/password_generation_agent_browsertest.cc
@@ -607,4 +607,37 @@ TEST_F(PasswordGenerationAgentTest, ManualGenerationChangeFocusTest) {
ExpectGenerationAvailable("second_password", false);
}
+TEST_F(PasswordGenerationAgentTest, PresavingGeneratedPassword) {
+ const char* const kForms[] = {kAccountCreationFormHTML,
+ kAccountCreationNoForm};
+ for (const char* const form : kForms) {
+ SCOPED_TRACE(testing::Message("form: ") << form);
+ LoadHTMLWithUserGesture(form);
+ // To be able to work with input elements outside <form>'s, use manual
+ // generation.
+ ShowGenerationPopUpManually("first_password");
+ ExpectGenerationAvailable("first_password", true);
+
+ base::string16 password = base::ASCIIToUTF16("random_password");
+ AutofillMsg_GeneratedPasswordAccepted msg(0, password);
+ password_generation_->OnMessageReceived(msg);
+ EXPECT_TRUE(render_thread_->sink().GetFirstMessageMatching(
+ AutofillHostMsg_PresaveGeneratedPassword::ID));
+ render_thread_->sink().ClearMessages();
+
+ FocusField("first_password");
+ SimulateUserTypingASCIICharacter('a', true);
+ EXPECT_TRUE(render_thread_->sink().GetFirstMessageMatching(
+ AutofillHostMsg_UpdatePresavedPassword::ID));
+ render_thread_->sink().ClearMessages();
+
+ for (size_t i = 0; i < password.length(); ++i)
+ SimulateUserTypingASCIICharacter(ui::VKEY_BACK, false);
+ SimulateUserTypingASCIICharacter(ui::VKEY_BACK, true);
+ EXPECT_TRUE(render_thread_->sink().GetFirstMessageMatching(
+ AutofillHostMsg_PasswordNoLongerGenerated::ID));
+ render_thread_->sink().ClearMessages();
+ }
+}
+
} // namespace autofill

Powered by Google App Engine
This is Rietveld 408576698