| Index: chrome/renderer/autofill/password_autofill_agent_browsertest.cc
|
| diff --git a/chrome/renderer/autofill/password_autofill_agent_browsertest.cc b/chrome/renderer/autofill/password_autofill_agent_browsertest.cc
|
| index 90b781f23f36ed7cf5417f91ca08b3f2cbadbd01..b5491808fe0ed521a073b11546e240425503b597 100644
|
| --- a/chrome/renderer/autofill/password_autofill_agent_browsertest.cc
|
| +++ b/chrome/renderer/autofill/password_autofill_agent_browsertest.cc
|
| @@ -2578,4 +2578,29 @@ TEST_F(PasswordAutofillAgentTest, SuggestWhenJavaScriptUpdatesFieldNames) {
|
| CheckSuggestions("", false);
|
| }
|
|
|
| +// Checks that an in-page navigation form submission could have an empty
|
| +// username.
|
| +TEST_F(PasswordAutofillAgentTest, InPageNavigationSubmissionUsernameIsEmpty) {
|
| + username_element_.setValue(WebString());
|
| + SimulatePasswordChange("random");
|
| +
|
| + // Simulate that JavaScript removes the submitted form from DOM. That means
|
| + // that a submission was successful.
|
| + std::string remove_form =
|
| + "var form = document.getElementById('LoginTestForm');"
|
| + "form.parentNode.removeChild(form);";
|
| + ExecuteJavaScriptForTests(remove_form.c_str());
|
| +
|
| + static_cast<content::RenderFrameObserver*>(password_autofill_agent_)
|
| + ->DidCommitProvisionalLoad(false, true);
|
| + base::RunLoop().RunUntilIdle();
|
| +
|
| + // Chect that the form was submitted with in-page navigation.
|
| + EXPECT_TRUE(fake_driver_.called_inpage_navigation());
|
| + EXPECT_EQ(base::string16(),
|
| + fake_driver_.password_form_inpage_navigation()->username_value);
|
| + EXPECT_EQ(ASCIIToUTF16("random"),
|
| + fake_driver_.password_form_inpage_navigation()->password_value);
|
| +}
|
| +
|
| } // namespace autofill
|
|
|