| Index: chrome/renderer/autofill/form_autofill_browsertest.cc
|
| diff --git a/chrome/renderer/autofill/form_autofill_browsertest.cc b/chrome/renderer/autofill/form_autofill_browsertest.cc
|
| index 419545d58668d7f6515f5c562b9e1d987d8b25ce..6fcef53cde7c07dc0171239c590e467da4fbfa1b 100644
|
| --- a/chrome/renderer/autofill/form_autofill_browsertest.cc
|
| +++ b/chrome/renderer/autofill/form_autofill_browsertest.cc
|
| @@ -2837,6 +2837,170 @@ TEST_F(FormAutofillTest, ClearFormWithNodeContainingSelectOne) {
|
| EXPECT_EQ(0, firstname.selectionEnd());
|
| }
|
|
|
| +TEST_F(FormAutofillTest, ClearPreviewedPasswordWithPasswordAutofilled) {
|
| + LoadHTML("<FORM name=\"TestForm\" action=\"http://buh.com\" method=\"post\">"
|
| + " <INPUT type=\"text\" id=\"username\"/>"
|
| + " <INPUT type=\"password\" id=\"password\" value=\"s\"/>"
|
| + " <INPUT type=\"submit\" value=\"Send\"/>"
|
| + "</FORM>");
|
| +
|
| + WebFrame* web_frame = GetMainFrame();
|
| + ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame);
|
| +
|
| + // Set the auto-filled attribute.
|
| + WebInputElement username =
|
| + web_frame->document().getElementById("username").to<WebInputElement>();
|
| + username.setAutofilled(true);
|
| + WebInputElement password =
|
| + web_frame->document().getElementById("password").to<WebInputElement>();
|
| + password.setAutofilled(true);
|
| +
|
| + username.setSuggestedValue(ASCIIToUTF16("Wyatt"));
|
| + password.setSuggestedValue(ASCIIToUTF16("secret"));
|
| +
|
| + EXPECT_TRUE(ClearPreviewedFormWithElement(username, REQUIRE_NONE, false,
|
| + true));
|
| +
|
| + EXPECT_TRUE(username.value().isEmpty());
|
| + EXPECT_TRUE(username.suggestedValue().isEmpty());
|
| + EXPECT_FALSE(username.isAutofilled());
|
| +
|
| + EXPECT_EQ(ASCIIToUTF16("s"), password.value());
|
| + EXPECT_TRUE(password.suggestedValue().isEmpty());
|
| + EXPECT_TRUE(password.isAutofilled());
|
| +}
|
| +
|
| +TEST_F(FormAutofillTest, ClearPreviewedPasswordWithUserNameAutofilled) {
|
| + LoadHTML("<FORM name=\"TestForm\" action=\"http://buh.com\" method=\"post\">"
|
| + " <INPUT type=\"text\" id=\"username\" value=\"W\"/>"
|
| + " <INPUT type=\"password\" id=\"password\"/>"
|
| + " <INPUT type=\"submit\" value=\"Send\"/>"
|
| + "</FORM>");
|
| +
|
| + WebFrame* web_frame = GetMainFrame();
|
| + ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame);
|
| +
|
| + WebInputElement username =
|
| + web_frame->document().getElementById("username").to<WebInputElement>();
|
| + username.setAutofilled(true);
|
| + WebInputElement password =
|
| + web_frame->document().getElementById("password").to<WebInputElement>();
|
| + password.setAutofilled(true);
|
| +
|
| + username.setSuggestedValue(ASCIIToUTF16("Wyatt"));
|
| + password.setSuggestedValue(ASCIIToUTF16("secret"));
|
| +
|
| + EXPECT_TRUE(ClearPreviewedFormWithElement(username, REQUIRE_NONE, true,
|
| + false));
|
| +
|
| + EXPECT_EQ(ASCIIToUTF16("W"), username.value());
|
| + EXPECT_TRUE(username.suggestedValue().isEmpty());
|
| + EXPECT_TRUE(username.isAutofilled());
|
| +
|
| + EXPECT_TRUE(password.value().isEmpty());
|
| + EXPECT_TRUE(password.suggestedValue().isEmpty());
|
| + EXPECT_FALSE(password.isAutofilled());
|
| +}
|
| +
|
| +TEST_F(FormAutofillTest,
|
| + ClearPreviewedPasswordWithAutofilledUserNameAndPassword) {
|
| + LoadHTML("<FORM name=\"TestForm\" action=\"http://buh.com\" method=\"post\">"
|
| + " <INPUT type=\"text\" id=\"username\" value=\"W\"/>"
|
| + " <INPUT type=\"password\" id=\"password\" value=\"s\"/>"
|
| + " <INPUT type=\"submit\" value=\"Send\"/>"
|
| + "</FORM>");
|
| +
|
| + WebFrame* web_frame = GetMainFrame();
|
| + ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame);
|
| +
|
| + WebInputElement username =
|
| + web_frame->document().getElementById("username").to<WebInputElement>();
|
| + username.setAutofilled(true);
|
| + WebInputElement password =
|
| + web_frame->document().getElementById("password").to<WebInputElement>();
|
| + password.setAutofilled(true);
|
| +
|
| + username.setSuggestedValue(ASCIIToUTF16("Wyatt"));
|
| + password.setSuggestedValue(ASCIIToUTF16("secret"));
|
| +
|
| + EXPECT_TRUE(ClearPreviewedFormWithElement(username, REQUIRE_NONE, true,
|
| + true));
|
| +
|
| + EXPECT_EQ(ASCIIToUTF16("W"), username.value());
|
| + EXPECT_TRUE(username.suggestedValue().isEmpty());
|
| + EXPECT_TRUE(username.isAutofilled());
|
| +
|
| + EXPECT_EQ(ASCIIToUTF16("s"), password.value());
|
| + EXPECT_TRUE(password.suggestedValue().isEmpty());
|
| + EXPECT_TRUE(password.isAutofilled());
|
| +}
|
| +
|
| +TEST_F(FormAutofillTest,
|
| + ClearPreviewedPasswordWithNotAutofilledUserNameAndPassword) {
|
| + LoadHTML("<FORM name=\"TestForm\" action=\"http://buh.com\" method=\"post\">"
|
| + " <INPUT type=\"text\" id=\"username\"/>"
|
| + " <INPUT type=\"password\" id=\"password\"/>"
|
| + " <INPUT type=\"submit\" value=\"Send\"/>"
|
| + "</FORM>");
|
| +
|
| + WebFrame* web_frame = GetMainFrame();
|
| + ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame);
|
| +
|
| + // Set the auto-filled attribute.
|
| + WebInputElement username =
|
| + web_frame->document().getElementById("username").to<WebInputElement>();
|
| + username.setAutofilled(true);
|
| + WebInputElement password =
|
| + web_frame->document().getElementById("password").to<WebInputElement>();
|
| + password.setAutofilled(true);
|
| +
|
| + username.setSuggestedValue(ASCIIToUTF16("Wyatt"));
|
| + password.setSuggestedValue(ASCIIToUTF16("secret"));
|
| +
|
| + // Clear the previewed fields.
|
| + EXPECT_TRUE(ClearPreviewedFormWithElement(username, REQUIRE_NONE, false,
|
| + false));
|
| +
|
| + EXPECT_TRUE(username.value().isEmpty());
|
| + EXPECT_TRUE(username.suggestedValue().isEmpty());
|
| + EXPECT_FALSE(username.isAutofilled());
|
| +
|
| + EXPECT_TRUE(password.value().isEmpty());
|
| + EXPECT_TRUE(password.suggestedValue().isEmpty());
|
| + EXPECT_FALSE(password.isAutofilled());
|
| +}
|
| +
|
| +TEST_F(FormAutofillTest,
|
| + ClearPreviewedPasswordWithEmptyUserNameSuggestion) {
|
| + LoadHTML("<FORM name=\"TestForm\" action=\"http://buh.com\" method=\"post\">"
|
| + " <INPUT type=\"text\" id=\"username\"/>"
|
| + " <INPUT type=\"password\" id=\"password\"/>"
|
| + " <INPUT type=\"submit\" value=\"Send\"/>"
|
| + "</FORM>");
|
| +
|
| + WebFrame* web_frame = GetMainFrame();
|
| + ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame);
|
| +
|
| + WebInputElement username =
|
| + web_frame->document().getElementById("username").to<WebInputElement>();
|
| + username.setAutofilled(true);
|
| + WebInputElement password =
|
| + web_frame->document().getElementById("password").to<WebInputElement>();
|
| + password.setAutofilled(true);
|
| +
|
| + username.setSuggestedValue(base::string16());
|
| +
|
| + EXPECT_TRUE(ClearPreviewedFormWithElement(username, REQUIRE_NONE, false,
|
| + false));
|
| + EXPECT_TRUE(username.value().isEmpty());
|
| + EXPECT_TRUE(username.suggestedValue().isEmpty());
|
| + EXPECT_TRUE(username.isAutofilled());
|
| +
|
| + EXPECT_TRUE(password.value().isEmpty());
|
| + EXPECT_TRUE(password.suggestedValue().isEmpty());
|
| + EXPECT_TRUE(password.isAutofilled());
|
| +}
|
| +
|
| TEST_F(FormAutofillTest, ClearPreviewedFormWithElement) {
|
| LoadHTML("<FORM name=\"TestForm\" action=\"http://buh.com\" method=\"post\">"
|
| " <INPUT type=\"text\" id=\"firstname\" value=\"Wyatt\"/>"
|
| @@ -2879,7 +3043,8 @@ TEST_F(FormAutofillTest, ClearPreviewedFormWithElement) {
|
| phone.setSuggestedValue(ASCIIToUTF16("650-777-9999"));
|
|
|
| // Clear the previewed fields.
|
| - EXPECT_TRUE(ClearPreviewedFormWithElement(lastname, false));
|
| + EXPECT_TRUE(ClearPreviewedFormWithElement(lastname, REQUIRE_AUTOCOMPLETE,
|
| + false, false));
|
|
|
| // Fields with empty suggestions suggestions are not modified.
|
| EXPECT_EQ(ASCIIToUTF16("Wyatt"), firstname.value());
|
| @@ -2949,7 +3114,8 @@ TEST_F(FormAutofillTest, ClearPreviewedFormWithNonEmptyInitiatingNode) {
|
| phone.setSuggestedValue(ASCIIToUTF16("650-777-9999"));
|
|
|
| // Clear the previewed fields.
|
| - EXPECT_TRUE(ClearPreviewedFormWithElement(firstname, false));
|
| + EXPECT_TRUE(ClearPreviewedFormWithElement(firstname, REQUIRE_AUTOCOMPLETE,
|
| + false, false));
|
|
|
| // Fields with non-empty values are restored.
|
| EXPECT_EQ(ASCIIToUTF16("W"), firstname.value());
|
| @@ -3016,7 +3182,8 @@ TEST_F(FormAutofillTest, ClearPreviewedFormWithAutofilledInitiatingNode) {
|
| phone.setSuggestedValue(ASCIIToUTF16("650-777-9999"));
|
|
|
| // Clear the previewed fields.
|
| - EXPECT_TRUE(ClearPreviewedFormWithElement(firstname, true));
|
| + EXPECT_TRUE(ClearPreviewedFormWithElement(firstname, REQUIRE_AUTOCOMPLETE,
|
| + true, false));
|
|
|
| // Fields with non-empty values are restored.
|
| EXPECT_EQ(ASCIIToUTF16("W"), firstname.value());
|
|
|