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 ba454f1f067ecbb13e0fda119f2b34c0a94f96ed..611a0c2402eb31636a0f93a5631d9de5b20ad94b 100644 |
| --- a/chrome/renderer/autofill/form_autofill_browsertest.cc |
| +++ b/chrome/renderer/autofill/form_autofill_browsertest.cc |
| @@ -160,7 +160,7 @@ class FormAutofillTest : public ChromeRenderViewTest { |
| typedef void (*FillFormFunction)(const FormData& form, |
| const WebInputElement& element); |
| - typedef WebString (WebInputElement::*GetValueFunction)(void) const; |
| + typedef WebString (*GetValueFunction)(WebFormControlElement element); |
| // Test FormFillxxx functions. |
| void TestFormFillFunctions(const char* html, |
| @@ -234,13 +234,11 @@ class FormAutofillTest : public ChromeRenderViewTest { |
| if (element.formControlType() == "select-one") { |
| value = element.to<WebSelectElement>().value(); |
| } else if (element.formControlType() == "textarea") { |
| - value = element.to<WebTextAreaElement>().value(); |
| + value = get_value_function(element); |
| } else { |
| ASSERT_TRUE(element.formControlType() == "text" || |
| element.formControlType() == "month"); |
| - WebInputElement input_element = GetMainFrame()->document().getElementById( |
| - ASCIIToUTF16(field_case.name)).to<WebInputElement>(); |
| - value = (input_element.*get_value_function)(); |
| + value = get_value_function(element); |
| } |
| const WebString expected_value = ASCIIToUTF16(field_case.expected_value); |
| @@ -263,6 +261,24 @@ class FormAutofillTest : public ChromeRenderViewTest { |
| FillFormIncludingNonFocusableElements(form, element.form()); |
| } |
| + static WebString GetValueWrapper(WebFormControlElement element) { |
| + WebString value; |
| + if (element.formControlType() == "textarea") |
| + value = element.to<WebTextAreaElement>().value(); |
| + else |
| + value = element.to<WebInputElement>().value(); |
| + return value; |
|
Ilya Sherman
2014/01/07 01:09:38
nit: No need for the local variable value, i.e. yo
ziran.sun
2014/01/07 16:40:41
Done.
|
| + } |
| + |
| + static WebString GetSuggestedValueWrapper(WebFormControlElement element) { |
| + WebString suggested_value; |
| + if (element.formControlType() == "textarea") |
| + suggested_value = element.to<WebTextAreaElement>().suggestedValue(); |
| + else |
| + suggested_value = element.to<WebInputElement>().suggestedValue(); |
| + return suggested_value; |
| + } |
|
Ilya Sherman
2014/01/07 01:09:38
Likewise for this method.
ziran.sun
2014/01/07 16:40:41
Done.
|
| + |
| private: |
| DISALLOW_COPY_AND_ASSIGN(FormAutofillTest); |
| }; |
| @@ -1114,7 +1130,7 @@ TEST_F(FormAutofillTest, FillForm) { |
| "some multi-\nline value", "Go\naway!"}, |
| }; |
| TestFormFillFunctions(kFormHtml, field_cases, arraysize(field_cases), |
| - FillForm, &WebInputElement::value); |
| + FillForm, &GetValueWrapper); |
| // Verify preview selection. |
| WebInputElement firstname = GetMainFrame()->document(). |
| getElementById("firstname").to<WebInputElement>(); |
| @@ -1164,7 +1180,7 @@ TEST_F(FormAutofillTest, FillFormIncludingNonFocusableElements) { |
| }; |
| TestFormFillFunctions(kFormHtml, field_cases, arraysize(field_cases), |
| &FillFormIncludingNonFocusableElementsWrapper, |
| - &WebInputElement::value); |
| + &GetValueWrapper); |
| } |
| TEST_F(FormAutofillTest, PreviewForm) { |
| @@ -1175,6 +1191,7 @@ TEST_F(FormAutofillTest, PreviewForm) { |
| " <INPUT type=\"text\" id=\"notempty\" value=\"Hi\"/>" |
| " <INPUT type=\"text\" autocomplete=\"off\" id=\"noautocomplete\"/>" |
| " <INPUT type=\"text\" disabled=\"disabled\" id=\"notenabled\"/>" |
| + " <TEXTAREA id=\"textarea\"></TEXTAREA>" |
| " <INPUT type=\"submit\" name=\"reply-send\" value=\"Send\"/>" |
| "</FORM>"; |
|
Ilya Sherman
2014/01/07 01:09:38
Please update this test to use kFormHtml rather th
ziran.sun
2014/01/07 16:40:41
I think selection preview is not supported from th
Ilya Sherman
2014/01/08 04:13:47
That's true, but I think we could still have test
ziran.sun
2014/01/08 17:02:39
I've made a note on <select> fields saying that pr
ziran.sun
2014/01/08 17:02:39
Done.
|
| @@ -1189,9 +1206,12 @@ TEST_F(FormAutofillTest, PreviewForm) { |
| // "noautocomplete" should not be extracted to form_data. |
| // Disabled fields should not be previewed. |
| {"text", "notenabled", "", "", false, "filled notenabled", ""}, |
| + // Normal textarea elements should be previewed. |
| + {"textarea", "textarea", "", "", true, "suggested multi-\nline value", |
| + "suggested multi-\nline value"}, |
| }; |
| TestFormFillFunctions(html, field_cases, arraysize(field_cases), &PreviewForm, |
| - &WebInputElement::suggestedValue); |
| + &GetSuggestedValueWrapper); |
| // Verify preview selection. |
| WebInputElement firstname = GetMainFrame()->document(). |