| 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 9b14dc096d85328e9b7a3c2d1e061187a1abc51c..25a0b57f4f79ecbaa7951c4fa068149d41f77e34 100644
|
| --- a/chrome/renderer/autofill/password_autofill_agent_browsertest.cc
|
| +++ b/chrome/renderer/autofill/password_autofill_agent_browsertest.cc
|
| @@ -363,11 +363,6 @@ class PasswordAutofillAgentTest : public ChromeRenderViewTest {
|
| password_element_.setAutofilled(false);
|
| }
|
|
|
| - void SimulateDidEndEditing(WebFrame* input_frame, WebInputElement& input) {
|
| - static_cast<blink::WebAutofillClient*>(autofill_agent_)
|
| - ->textFieldDidEndEditing(input);
|
| - }
|
| -
|
| void SimulateSuggestionChoice(WebInputElement& username_input) {
|
| base::string16 username(base::ASCIIToUTF16(kAliceUsername));
|
| base::string16 password(base::ASCIIToUTF16(kAlicePassword));
|
| @@ -755,8 +750,8 @@ TEST_F(PasswordAutofillAgentTest, PasswordNotClearedOnEdit) {
|
| CheckTextFieldsDOMState("alicia", false, kAlicePassword, true);
|
| }
|
|
|
| -// Tests that we only autocomplete on focus lost and with a full username match
|
| -// when |wait_for_username| is true.
|
| +// Tests that lost focus does not trigger filling when |wait_for_username| is
|
| +// true.
|
| TEST_F(PasswordAutofillAgentTest, WaitUsername) {
|
| // Simulate the browser sending back the login info.
|
| fill_data_.wait_for_username = true;
|
| @@ -765,32 +760,12 @@ TEST_F(PasswordAutofillAgentTest, WaitUsername) {
|
| // No auto-fill should have taken place.
|
| CheckTextFieldsState(std::string(), false, std::string(), false);
|
|
|
| - // No autocomplete should happen when text is entered in the username.
|
| - SimulateUsernameChange("a");
|
| - CheckTextFieldsState("a", false, std::string(), false);
|
| - SimulateUsernameChange("al");
|
| - CheckTextFieldsState("al", false, std::string(), false);
|
| SimulateUsernameChange(kAliceUsername);
|
| + // Change focus in between to make sure blur events don't trigger filling.
|
| + SetFocused(password_element_);
|
| + SetFocused(username_element_);
|
| + // No autocomplete should happen when text is entered in the username.
|
| CheckTextFieldsState(kAliceUsername, false, std::string(), false);
|
| -
|
| - // Autocomplete should happen only when the username textfield is blurred with
|
| - // a full match.
|
| - SimulateUsernameChange("a");
|
| - static_cast<blink::WebAutofillClient*>(autofill_agent_)
|
| - ->textFieldDidEndEditing(username_element_);
|
| - CheckTextFieldsState("a", false, std::string(), false);
|
| - SimulateUsernameChange("al");
|
| - static_cast<blink::WebAutofillClient*>(autofill_agent_)
|
| - ->textFieldDidEndEditing(username_element_);
|
| - CheckTextFieldsState("al", false, std::string(), false);
|
| - SimulateUsernameChange("alices");
|
| - static_cast<blink::WebAutofillClient*>(autofill_agent_)
|
| - ->textFieldDidEndEditing(username_element_);
|
| - CheckTextFieldsState("alices", false, std::string(), false);
|
| - SimulateUsernameChange(kAliceUsername);
|
| - static_cast<blink::WebAutofillClient*>(autofill_agent_)
|
| - ->textFieldDidEndEditing(username_element_);
|
| - CheckTextFieldsDOMState(kAliceUsername, true, kAlicePassword, true);
|
| }
|
|
|
| TEST_F(PasswordAutofillAgentTest, IsWebNodeVisibleTest) {
|
| @@ -1468,18 +1443,13 @@ TEST_F(PasswordAutofillAgentTest,
|
| }
|
|
|
| // The user first accepts a suggestion, but then overwrites the password. This
|
| -// test checks that the overwritten password is not reverted back if the user
|
| -// triggers autofill through focusing (but not changing) the username again.
|
| +// test checks that the overwritten password is not reverted back.
|
| TEST_F(PasswordAutofillAgentTest,
|
| NoopEditingDoesNotOverwriteManuallyEditedPassword) {
|
| - // Simulate having credentials which needed to wait until the user starts
|
| - // typing the username to be filled (e.g., PSL-matched credentials). Those are
|
| - // the ones which can be filled as a result of TextFieldDidEndEditing.
|
| fill_data_.wait_for_username = true;
|
| - SimulateOnFillPasswordForm(fill_data_);
|
| - // Simulate that the user typed their name to make the autofill work.
|
| SimulateUsernameChange(kAliceUsername);
|
| - SimulateDidEndEditing(GetMainFrame(), username_element_);
|
| + SimulateOnFillPasswordForm(fill_data_);
|
| + SimulateSuggestionChoice(username_element_);
|
| const std::string old_username(username_element_.value().utf8());
|
| const std::string old_password(password_element_.value().utf8());
|
| const std::string new_password(old_password + "modify");
|
| @@ -1487,9 +1457,9 @@ TEST_F(PasswordAutofillAgentTest,
|
| // The user changes the password.
|
| SimulatePasswordChange(new_password);
|
|
|
| - // The user switches back into the username field, but leaves that without
|
| - // changes.
|
| - SimulateDidEndEditing(GetMainFrame(), username_element_);
|
| + // Change focus in between to make sure blur events don't trigger filling.
|
| + SetFocused(password_element_);
|
| + SetFocused(username_element_);
|
|
|
| // The password should have stayed as the user changed it.
|
| CheckTextFieldsDOMState(old_username, true, new_password, false);
|
|
|