Chromium Code Reviews| 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 76dba7bbba239d7e59bdb14762e704dc99a63a55..7dda2788f7e242d280f18ffdbfab4f0bb5567832 100644 |
| --- a/chrome/renderer/autofill/form_autofill_browsertest.cc |
| +++ b/chrome/renderer/autofill/form_autofill_browsertest.cc |
| @@ -1019,7 +1019,7 @@ class FormAutofillTest : public ChromeRenderViewTest { |
| lastname.setAutofilled(true); |
| WebInputElement month = GetInputElementById("month"); |
| month.setAutofilled(true); |
| - WebInputElement textarea = GetInputElementById("textarea"); |
| + WebFormControlElement textarea = GetFormControlElementById("textarea"); |
| textarea.setAutofilled(true); |
| // Set the value of the disabled text input element. |
| @@ -2003,6 +2003,30 @@ TEST_F(FormAutofillTest, WebFormElementToFormData) { |
| EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields[5]); |
| } |
| +TEST_F(FormAutofillTest, WebFormElementConsiderNonControlLabelableElements) { |
|
Ilya Sherman
2015/09/25 06:18:23
Sorry, what is this test testing? That <progress>
esprehn
2015/09/25 08:30:38
Yeah previously this did a bad cast since it caste
|
| + LoadHTML("<form id=form>" |
| + " <label for='progress'>Progress:</label>" |
| + " <progress id='progress'></progress>" |
| + " <label for='firstname'>First name:</label>" |
| + " <input type='text' id='firstname' value='John'>" |
| + "</form>"); |
| + |
| + WebFrame* frame = GetMainFrame(); |
| + ASSERT_NE(nullptr, frame); |
| + |
| + WebFormElement web_form = frame->document().getElementById("form") |
| + .to<WebFormElement>(); |
| + ASSERT_FALSE(web_form.isNull()); |
| + |
| + FormData form; |
| + EXPECT_TRUE(WebFormElementToFormData(web_form, WebFormControlElement(), |
| + EXTRACT_NONE, &form, nullptr)); |
| + |
| + const std::vector<FormFieldData>& fields = form.fields; |
| + ASSERT_EQ(1U, fields.size()); |
| + EXPECT_EQ(ASCIIToUTF16("firstname"), fields[0].name); |
| +} |
| + |
| // We should not be able to serialize a form with too many fillable fields. |
| TEST_F(FormAutofillTest, WebFormElementToFormDataTooManyFields) { |
| std::string html = |