| 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 e0a1be95153e1194e094d5044ca7a43d4472c821..c8e3cf09669213b2d2696a247760abaf25faa447 100644
|
| --- a/chrome/renderer/autofill/form_autofill_browsertest.cc
|
| +++ b/chrome/renderer/autofill/form_autofill_browsertest.cc
|
| @@ -3000,6 +3000,165 @@ 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, 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, 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, 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, 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, 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\"/>"
|
| @@ -3042,7 +3201,7 @@ TEST_F(FormAutofillTest, ClearPreviewedFormWithElement) {
|
| phone.setSuggestedValue(ASCIIToUTF16("650-777-9999"));
|
|
|
| // Clear the previewed fields.
|
| - EXPECT_TRUE(ClearPreviewedFormWithElement(lastname, false));
|
| + EXPECT_TRUE(ClearPreviewedFormWithElement(lastname, false, false));
|
|
|
| // Fields with empty suggestions suggestions are not modified.
|
| EXPECT_EQ(ASCIIToUTF16("Wyatt"), firstname.value());
|
| @@ -3112,7 +3271,7 @@ TEST_F(FormAutofillTest, ClearPreviewedFormWithNonEmptyInitiatingNode) {
|
| phone.setSuggestedValue(ASCIIToUTF16("650-777-9999"));
|
|
|
| // Clear the previewed fields.
|
| - EXPECT_TRUE(ClearPreviewedFormWithElement(firstname, false));
|
| + EXPECT_TRUE(ClearPreviewedFormWithElement(firstname, false, false));
|
|
|
| // Fields with non-empty values are restored.
|
| EXPECT_EQ(ASCIIToUTF16("W"), firstname.value());
|
| @@ -3179,7 +3338,7 @@ TEST_F(FormAutofillTest, ClearPreviewedFormWithAutofilledInitiatingNode) {
|
| phone.setSuggestedValue(ASCIIToUTF16("650-777-9999"));
|
|
|
| // Clear the previewed fields.
|
| - EXPECT_TRUE(ClearPreviewedFormWithElement(firstname, true));
|
| + EXPECT_TRUE(ClearPreviewedFormWithElement(firstname, true, false));
|
|
|
| // Fields with non-empty values are restored.
|
| EXPECT_EQ(ASCIIToUTF16("W"), firstname.value());
|
|
|