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 93d572b0640ccf2bdf103c08c30f94d2ea9e7ca6..cc0f341a380910b96ac0c375ce2d9baba91ac100 100644 |
--- a/chrome/renderer/autofill/form_autofill_browsertest.cc |
+++ b/chrome/renderer/autofill/form_autofill_browsertest.cc |
@@ -212,6 +212,41 @@ TEST_F(FormAutofillTest, WebFormControlElementToFormFieldAutofilled) { |
EXPECT_FORM_FIELD_DATA_EQUALS(expected, result); |
} |
+// We should be able to extract a radio or a checkbox field that has been |
+// autofilled. |
+TEST_F(FormAutofillTest, WebFormControlElementToClickableFormField) { |
+ LoadHTML("<INPUT type=\"checkbox\" id=\"checkbox\" value=\"mail\"/>" |
+ "<INPUT type=\"radio\" id=\"radio\" value=\"male\"/>"); |
+ |
+ WebFrame* frame = GetMainFrame(); |
+ ASSERT_NE(static_cast<WebFrame*>(NULL), frame); |
+ |
+ WebElement web_element = frame->document().getElementById("checkbox"); |
+ WebInputElement element = web_element.to<WebInputElement>(); |
+ element.setAutofilled(true); |
+ FormFieldData result; |
+ WebFormControlElementToFormField(element, autofill::EXTRACT_VALUE, &result); |
+ |
+ FormFieldData expected; |
+ expected.name = ASCIIToUTF16("checkbox"); |
+ expected.value = ASCIIToUTF16("mail"); |
+ expected.form_control_type = "checkbox"; |
+ expected.is_autofilled = true; |
+ expected.is_checkable = true; |
+ EXPECT_FORM_FIELD_DATA_EQUALS(expected, result); |
+ |
+ web_element = frame->document().getElementById("radio"); |
+ element = web_element.to<WebInputElement>(); |
+ element.setAutofilled(true); |
+ WebFormControlElementToFormField(element, autofill::EXTRACT_VALUE, &result); |
+ expected.name = ASCIIToUTF16("radio"); |
+ expected.value = ASCIIToUTF16("male"); |
+ expected.form_control_type = "radio"; |
+ expected.is_autofilled = true; |
+ expected.is_checkable = true; |
+ EXPECT_FORM_FIELD_DATA_EQUALS(expected, result); |
+} |
+ |
// We should be able to extract a <select> field. |
TEST_F(FormAutofillTest, WebFormControlElementToFormFieldSelect) { |
LoadHTML("<SELECT id=\"element\"/>" |
@@ -263,8 +298,6 @@ TEST_F(FormAutofillTest, WebFormControlElementToFormFieldInvalidType) { |
LoadHTML("<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">" |
" <INPUT type=\"hidden\" id=\"hidden\" value=\"apple\"/>" |
" <INPUT type=\"password\" id=\"password\" value=\"secret\"/>" |
- " <INPUT type=\"checkbox\" id=\"checkbox\" value=\"mail\"/>" |
- " <INPUT type=\"radio\" id=\"radio\" value=\"male\"/>" |
" <INPUT type=\"submit\" id=\"submit\" value=\"Send\"/>" |
"</FORM>"); |
@@ -290,21 +323,6 @@ TEST_F(FormAutofillTest, WebFormControlElementToFormFieldInvalidType) { |
expected.form_control_type = "password"; |
EXPECT_FORM_FIELD_DATA_EQUALS(expected, result); |
- web_element = frame->document().getElementById("checkbox"); |
- element = web_element.to<WebFormControlElement>(); |
- WebFormControlElementToFormField(element, autofill::EXTRACT_VALUE, &result); |
- expected.name = ASCIIToUTF16("checkbox"); |
- expected.form_control_type = "checkbox"; |
- EXPECT_FORM_FIELD_DATA_EQUALS(expected, result); |
- |
- web_element = frame->document().getElementById("radio"); |
- element = web_element.to<WebFormControlElement>(); |
- WebFormControlElementToFormField(element, autofill::EXTRACT_VALUE, &result); |
- expected.name = ASCIIToUTF16("radio"); |
- expected.form_control_type = "radio"; |
- EXPECT_FORM_FIELD_DATA_EQUALS(expected, result); |
- |
- |
web_element = frame->document().getElementById("submit"); |
element = web_element.to<WebFormControlElement>(); |
WebFormControlElementToFormField(element, autofill::EXTRACT_VALUE, &result); |