| 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 cd484d30f79b28d6c78fd903a5014a0e450a4717..f200c8763c166d3b74cf2916779fa29ee488cd5e 100644
|
| --- a/chrome/renderer/autofill/form_autofill_browsertest.cc
|
| +++ b/chrome/renderer/autofill/form_autofill_browsertest.cc
|
| @@ -38,7 +38,7 @@ using WebKit::WebVector;
|
|
|
| using autofill::ClearPreviewedFormWithElement;
|
| using autofill::FillForm;
|
| -using autofill::FindFormAndFieldForFormControlElement;
|
| +using autofill::FindFormAndFieldForInputElement;
|
| using autofill::FormWithElementIsAutofilled;
|
| using autofill::FormCache;
|
| using autofill::PreviewForm;
|
| @@ -47,10 +47,10 @@ using autofill::WebFormControlElementToFormField;
|
| using webkit_glue::FormData;
|
| using webkit_glue::FormField;
|
|
|
| -class FormManagerTest : public RenderViewTest {
|
| +class FormAutofillTest : public RenderViewTest {
|
| public:
|
| - FormManagerTest() : RenderViewTest() {}
|
| - virtual ~FormManagerTest() {}
|
| + FormAutofillTest() : RenderViewTest() {}
|
| + virtual ~FormAutofillTest() {}
|
|
|
| void ExpectLabels(const char* html,
|
| const std::vector<string16>& labels,
|
| @@ -119,11 +119,11 @@ class FormManagerTest : public RenderViewTest {
|
| }
|
|
|
| private:
|
| - DISALLOW_COPY_AND_ASSIGN(FormManagerTest);
|
| + DISALLOW_COPY_AND_ASSIGN(FormAutofillTest);
|
| };
|
|
|
| // We should be able to extract a normal text field.
|
| -TEST_F(FormManagerTest, WebFormControlElementToFormField) {
|
| +TEST_F(FormAutofillTest, WebFormControlElementToFormField) {
|
| LoadHTML("<INPUT type=\"text\" id=\"element\" value=\"value\"/>");
|
|
|
| WebFrame* frame = GetMainFrame();
|
| @@ -151,7 +151,7 @@ TEST_F(FormManagerTest, WebFormControlElementToFormField) {
|
| }
|
|
|
| // We should be able to extract a text field with autocomplete="off".
|
| -TEST_F(FormManagerTest, WebFormControlElementToFormFieldAutocompleteOff) {
|
| +TEST_F(FormAutofillTest, WebFormControlElementToFormFieldAutocompleteOff) {
|
| LoadHTML("<INPUT type=\"text\" id=\"element\" value=\"value\""
|
| " autocomplete=\"off\"/>");
|
|
|
| @@ -172,7 +172,7 @@ TEST_F(FormManagerTest, WebFormControlElementToFormFieldAutocompleteOff) {
|
| }
|
|
|
| // We should be able to extract a text field with maxlength specified.
|
| -TEST_F(FormManagerTest, WebFormControlElementToFormFieldMaxLength) {
|
| +TEST_F(FormAutofillTest, WebFormControlElementToFormFieldMaxLength) {
|
| LoadHTML("<INPUT type=\"text\" id=\"element\" value=\"value\""
|
| " maxlength=\"5\"/>");
|
|
|
| @@ -193,7 +193,7 @@ TEST_F(FormManagerTest, WebFormControlElementToFormFieldMaxLength) {
|
| }
|
|
|
| // We should be able to extract a text field that has been autofilled.
|
| -TEST_F(FormManagerTest, WebFormControlElementToFormFieldAutofilled) {
|
| +TEST_F(FormAutofillTest, WebFormControlElementToFormFieldAutofilled) {
|
| LoadHTML("<INPUT type=\"text\" id=\"element\" value=\"value\"/>");
|
|
|
| WebFrame* frame = GetMainFrame();
|
| @@ -215,7 +215,7 @@ TEST_F(FormManagerTest, WebFormControlElementToFormFieldAutofilled) {
|
| }
|
|
|
| // We should be able to extract a <select> field.
|
| -TEST_F(FormManagerTest, WebFormControlElementToFormFieldSelect) {
|
| +TEST_F(FormAutofillTest, WebFormControlElementToFormFieldSelect) {
|
| LoadHTML("<SELECT id=\"element\"/>"
|
| " <OPTION value=\"CA\">California</OPTION>"
|
| " <OPTION value=\"TX\">Texas</OPTION>"
|
| @@ -261,7 +261,7 @@ TEST_F(FormManagerTest, WebFormControlElementToFormFieldSelect) {
|
| }
|
|
|
| // We should not extract the value for non-text and non-select fields.
|
| -TEST_F(FormManagerTest, WebFormControlElementToFormFieldInvalidType) {
|
| +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\"/>"
|
| @@ -316,7 +316,7 @@ TEST_F(FormManagerTest, WebFormControlElementToFormFieldInvalidType) {
|
| }
|
|
|
| // We should be able to extract the autocompletetype attribute.
|
| -TEST_F(FormManagerTest, WebFormControlElementToFormFieldAutocompletetype) {
|
| +TEST_F(FormAutofillTest, WebFormControlElementToFormFieldAutocompletetype) {
|
| std::string html =
|
| "<INPUT type=\"text\" id=\"absent\"/>"
|
| "<INPUT type=\"text\" id=\"empty\" x-autocompletetype=\"\"/>"
|
| @@ -429,7 +429,7 @@ TEST_F(FormManagerTest, WebFormControlElementToFormFieldAutocompletetype) {
|
| EXPECT_FORM_FIELD_EQUALS(expected, result8);
|
| }
|
|
|
| -TEST_F(FormManagerTest, WebFormElementToFormData) {
|
| +TEST_F(FormAutofillTest, WebFormElementToFormData) {
|
| LoadHTML("<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">"
|
| " <LABEL for=\"firstname\">First name:</LABEL>"
|
| " <INPUT type=\"text\" id=\"firstname\" value=\"John\"/>"
|
| @@ -496,7 +496,7 @@ TEST_F(FormManagerTest, WebFormElementToFormData) {
|
| EXPECT_FORM_FIELD_EQUALS(expected, fields[2]);
|
| }
|
|
|
| -TEST_F(FormManagerTest, ExtractForms) {
|
| +TEST_F(FormAutofillTest, ExtractForms) {
|
| ExpectJohnSmithLabels(
|
| "<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">"
|
| " First name: <INPUT type=\"text\" id=\"firstname\" value=\"John\"/>"
|
| @@ -506,7 +506,7 @@ TEST_F(FormManagerTest, ExtractForms) {
|
| "</FORM>");
|
| }
|
|
|
| -TEST_F(FormManagerTest, ExtractMultipleForms) {
|
| +TEST_F(FormAutofillTest, ExtractMultipleForms) {
|
| LoadHTML("<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">"
|
| " <INPUT type=\"text\" id=\"firstname\" value=\"John\"/>"
|
| " <INPUT type=\"text\" id=\"lastname\" value=\"Smith\"/>"
|
| @@ -576,7 +576,7 @@ TEST_F(FormManagerTest, ExtractMultipleForms) {
|
| }
|
|
|
| // We should not extract a form if it has too few fillable fields.
|
| -TEST_F(FormManagerTest, ExtractFormsTooFewFields) {
|
| +TEST_F(FormAutofillTest, ExtractFormsTooFewFields) {
|
| LoadHTML("<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">"
|
| " <INPUT type=\"text\" id=\"firstname\" value=\"John\"/>"
|
| " <INPUT type=\"text\" id=\"lastname\" value=\"Smith\"/>"
|
| @@ -592,7 +592,7 @@ TEST_F(FormManagerTest, ExtractFormsTooFewFields) {
|
| EXPECT_EQ(0U, forms.size());
|
| }
|
|
|
| -TEST_F(FormManagerTest, WebFormElementToFormDataAutocomplete) {
|
| +TEST_F(FormAutofillTest, WebFormElementToFormDataAutocomplete) {
|
| {
|
| // Form is not auto-completable due to autocomplete=off.
|
| LoadHTML("<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\""
|
| @@ -670,11 +670,13 @@ TEST_F(FormManagerTest, WebFormElementToFormDataAutocomplete) {
|
| }
|
| }
|
|
|
| -TEST_F(FormManagerTest, FindForm) {
|
| +TEST_F(FormAutofillTest, FindForm) {
|
| LoadHTML("<FORM name=\"TestForm\" action=\"http://buh.com\" method=\"post\">"
|
| " <INPUT type=\"text\" id=\"firstname\" value=\"John\"/>"
|
| " <INPUT type=\"text\" id=\"lastname\" value=\"Smith\"/>"
|
| - " <INPUT type=\"text\" id=\"email\" value=\"john@example.com\"/>"
|
| + " <INPUT type=\"text\" id=\"email\" value=\"john@example.com\""
|
| + "autocomplete=\"off\" />"
|
| + " <INPUT type=\"text\" id=\"phone\" value=\"1.800.555.1234\"/>"
|
| " <INPUT type=\"submit\" name=\"reply-send\" value=\"Send\"/>"
|
| "</FORM>");
|
|
|
| @@ -693,14 +695,14 @@ TEST_F(FormManagerTest, FindForm) {
|
| // Find the form and verify it's the correct form.
|
| FormData form;
|
| FormField field;
|
| - EXPECT_TRUE(FindFormAndFieldForFormControlElement(input_element, &form,
|
| - &field));
|
| + EXPECT_TRUE(FindFormAndFieldForInputElement(input_element, &form, &field,
|
| + autofill::REQUIRE_NONE));
|
| EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name);
|
| EXPECT_EQ(GURL(web_frame->document().url()), form.origin);
|
| EXPECT_EQ(GURL("http://buh.com"), form.action);
|
|
|
| const std::vector<FormField>& fields = form.fields;
|
| - ASSERT_EQ(3U, fields.size());
|
| + ASSERT_EQ(4U, fields.size());
|
|
|
| FormField expected;
|
| expected.form_control_type = ASCIIToUTF16("text");
|
| @@ -718,9 +720,41 @@ TEST_F(FormManagerTest, FindForm) {
|
| expected.name = ASCIIToUTF16("email");
|
| expected.value = ASCIIToUTF16("john@example.com");
|
| EXPECT_FORM_FIELD_EQUALS(expected, fields[2]);
|
| +
|
| + expected.name = ASCIIToUTF16("phone");
|
| + expected.value = ASCIIToUTF16("1.800.555.1234");
|
| + EXPECT_FORM_FIELD_EQUALS(expected, fields[3]);
|
| +
|
| + // Try again, but require autocomplete.
|
| + FormData form2;
|
| + FormField field2;
|
| + EXPECT_TRUE(FindFormAndFieldForInputElement(input_element, &form2, &field2,
|
| + autofill::REQUIRE_AUTOCOMPLETE));
|
| + EXPECT_EQ(ASCIIToUTF16("TestForm"), form2.name);
|
| + EXPECT_EQ(GURL(web_frame->document().url()), form2.origin);
|
| + EXPECT_EQ(GURL("http://buh.com"), form2.action);
|
| +
|
| + const std::vector<FormField>& fields2 = form2.fields;
|
| + ASSERT_EQ(3U, fields2.size());
|
| +
|
| + expected.form_control_type = ASCIIToUTF16("text");
|
| + expected.max_length = WebInputElement::defaultMaxLength();
|
| +
|
| + expected.name = ASCIIToUTF16("firstname");
|
| + expected.value = ASCIIToUTF16("John");
|
| + EXPECT_FORM_FIELD_EQUALS(expected, fields2[0]);
|
| + EXPECT_FORM_FIELD_EQUALS(expected, field);
|
| +
|
| + expected.name = ASCIIToUTF16("lastname");
|
| + expected.value = ASCIIToUTF16("Smith");
|
| + EXPECT_FORM_FIELD_EQUALS(expected, fields2[1]);
|
| +
|
| + expected.name = ASCIIToUTF16("phone");
|
| + expected.value = ASCIIToUTF16("1.800.555.1234");
|
| + EXPECT_FORM_FIELD_EQUALS(expected, fields2[2]);
|
| }
|
|
|
| -TEST_F(FormManagerTest, FillForm) {
|
| +TEST_F(FormAutofillTest, FillForm) {
|
| LoadHTML("<FORM name=\"TestForm\" action=\"http://buh.com\" method=\"post\">"
|
| " <INPUT type=\"text\" id=\"firstname\"/>"
|
| " <INPUT type=\"text\" id=\"lastname\"/>"
|
| @@ -750,8 +784,8 @@ TEST_F(FormManagerTest, FillForm) {
|
| // Find the form that contains the input element.
|
| FormData form;
|
| FormField field;
|
| - EXPECT_TRUE(FindFormAndFieldForFormControlElement(input_element, &form,
|
| - &field));
|
| + EXPECT_TRUE(FindFormAndFieldForInputElement(input_element, &form, &field,
|
| + autofill::REQUIRE_NONE));
|
| EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name);
|
| EXPECT_EQ(GURL(web_frame->document().url()), form.origin);
|
| EXPECT_EQ(GURL("http://buh.com"), form.action);
|
| @@ -857,7 +891,7 @@ TEST_F(FormManagerTest, FillForm) {
|
| EXPECT_TRUE(display_none.value().isEmpty());
|
| }
|
|
|
| -TEST_F(FormManagerTest, PreviewForm) {
|
| +TEST_F(FormAutofillTest, PreviewForm) {
|
| LoadHTML("<FORM name=\"TestForm\" action=\"http://buh.com\" method=\"post\">"
|
| " <INPUT type=\"text\" id=\"firstname\"/>"
|
| " <INPUT type=\"text\" id=\"lastname\"/>"
|
| @@ -882,8 +916,8 @@ TEST_F(FormManagerTest, PreviewForm) {
|
| // Find the form that contains the input element.
|
| FormData form;
|
| FormField field;
|
| - EXPECT_TRUE(FindFormAndFieldForFormControlElement(input_element, &form,
|
| - &field));
|
| + EXPECT_TRUE(FindFormAndFieldForInputElement(input_element, &form, &field,
|
| + autofill::REQUIRE_NONE));
|
| EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name);
|
| EXPECT_EQ(GURL(web_frame->document().url()), form.origin);
|
| EXPECT_EQ(GURL("http://buh.com"), form.action);
|
| @@ -956,7 +990,7 @@ TEST_F(FormManagerTest, PreviewForm) {
|
| EXPECT_TRUE(notenabled.suggestedValue().isEmpty());
|
| }
|
|
|
| -TEST_F(FormManagerTest, Labels) {
|
| +TEST_F(FormAutofillTest, Labels) {
|
| ExpectJohnSmithLabels(
|
| "<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">"
|
| " <LABEL for=\"firstname\"> First name: </LABEL>"
|
| @@ -969,7 +1003,7 @@ TEST_F(FormManagerTest, Labels) {
|
| "</FORM>");
|
| }
|
|
|
| -TEST_F(FormManagerTest, LabelsWithSpans) {
|
| +TEST_F(FormAutofillTest, LabelsWithSpans) {
|
| ExpectJohnSmithLabels(
|
| "<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">"
|
| " <LABEL for=\"firstname\"><span>First name: </span></LABEL>"
|
| @@ -982,13 +1016,13 @@ TEST_F(FormManagerTest, LabelsWithSpans) {
|
| "</FORM>");
|
| }
|
|
|
| -// This test is different from FormManagerTest.Labels in that the label elements
|
| -// for= attribute is set to the name of the form control element it is a label
|
| -// for instead of the id of the form control element. This is invalid because
|
| -// the for= attribute must be set to the id of the form control element;
|
| +// This test is different from FormAutofillTest.Labels in that the label
|
| +// elements for= attribute is set to the name of the form control element it is
|
| +// a label for instead of the id of the form control element. This is invalid
|
| +// because the for= attribute must be set to the id of the form control element;
|
| // however, current label parsing code will extract the text from the previous
|
| // label element and apply it to the following input field.
|
| -TEST_F(FormManagerTest, InvalidLabels) {
|
| +TEST_F(FormAutofillTest, InvalidLabels) {
|
| ExpectJohnSmithLabels(
|
| "<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">"
|
| " <LABEL for=\"firstname\"> First name: </LABEL>"
|
| @@ -1003,7 +1037,7 @@ TEST_F(FormManagerTest, InvalidLabels) {
|
|
|
| // This test has three form control elements, only one of which has a label
|
| // element associated with it.
|
| -TEST_F(FormManagerTest, OneLabelElement) {
|
| +TEST_F(FormAutofillTest, OneLabelElement) {
|
| ExpectJohnSmithLabels(
|
| "<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">"
|
| " First name:"
|
| @@ -1016,7 +1050,7 @@ TEST_F(FormManagerTest, OneLabelElement) {
|
| "</FORM>");
|
| }
|
|
|
| -TEST_F(FormManagerTest, LabelsInferredFromText) {
|
| +TEST_F(FormAutofillTest, LabelsInferredFromText) {
|
| ExpectJohnSmithLabels(
|
| "<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">"
|
| " First name:"
|
| @@ -1029,7 +1063,7 @@ TEST_F(FormManagerTest, LabelsInferredFromText) {
|
| "</FORM>");
|
| }
|
|
|
| -TEST_F(FormManagerTest, LabelsInferredFromParagraph) {
|
| +TEST_F(FormAutofillTest, LabelsInferredFromParagraph) {
|
| ExpectJohnSmithLabels(
|
| "<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">"
|
| " <P>First name:</P><INPUT type=\"text\" "
|
| @@ -1042,7 +1076,7 @@ TEST_F(FormManagerTest, LabelsInferredFromParagraph) {
|
| "</FORM>");
|
| }
|
|
|
| -TEST_F(FormManagerTest, LabelsInferredFromBold) {
|
| +TEST_F(FormAutofillTest, LabelsInferredFromBold) {
|
| ExpectJohnSmithLabels(
|
| "<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">"
|
| " <B>First name:</B><INPUT type=\"text\" "
|
| @@ -1055,7 +1089,7 @@ TEST_F(FormManagerTest, LabelsInferredFromBold) {
|
| "</FORM>");
|
| }
|
|
|
| -TEST_F(FormManagerTest, LabelsInferredPriorToImgOrBr) {
|
| +TEST_F(FormAutofillTest, LabelsInferredPriorToImgOrBr) {
|
| ExpectJohnSmithLabels(
|
| "<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">"
|
| " First name:<IMG/><INPUT type=\"text\" "
|
| @@ -1068,7 +1102,7 @@ TEST_F(FormManagerTest, LabelsInferredPriorToImgOrBr) {
|
| "</FORM>");
|
| }
|
|
|
| -TEST_F(FormManagerTest, LabelsInferredFromTableCell) {
|
| +TEST_F(FormAutofillTest, LabelsInferredFromTableCell) {
|
| ExpectJohnSmithLabels(
|
| "<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">"
|
| "<TABLE>"
|
| @@ -1095,7 +1129,7 @@ TEST_F(FormManagerTest, LabelsInferredFromTableCell) {
|
| "</FORM>");
|
| }
|
|
|
| -TEST_F(FormManagerTest, LabelsInferredFromTableCellTH) {
|
| +TEST_F(FormAutofillTest, LabelsInferredFromTableCellTH) {
|
| ExpectJohnSmithLabels(
|
| "<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">"
|
| "<TABLE>"
|
| @@ -1122,7 +1156,7 @@ TEST_F(FormManagerTest, LabelsInferredFromTableCellTH) {
|
| "</FORM>");
|
| }
|
|
|
| -TEST_F(FormManagerTest, LabelsInferredFromTableCellNested) {
|
| +TEST_F(FormAutofillTest, LabelsInferredFromTableCellNested) {
|
| std::vector<string16> labels, names, values;
|
|
|
| labels.push_back(ASCIIToUTF16("First name: Bogus"));
|
| @@ -1190,7 +1224,7 @@ TEST_F(FormManagerTest, LabelsInferredFromTableCellNested) {
|
| labels, names, values);
|
| }
|
|
|
| -TEST_F(FormManagerTest, LabelsInferredFromTableEmptyTDs) {
|
| +TEST_F(FormAutofillTest, LabelsInferredFromTableEmptyTDs) {
|
| std::vector<string16> labels, names, values;
|
|
|
| labels.push_back(ASCIIToUTF16("* First Name"));
|
| @@ -1249,7 +1283,7 @@ TEST_F(FormManagerTest, LabelsInferredFromTableEmptyTDs) {
|
| labels, names, values);
|
| }
|
|
|
| -TEST_F(FormManagerTest, LabelsInferredFromPreviousTD) {
|
| +TEST_F(FormAutofillTest, LabelsInferredFromPreviousTD) {
|
| std::vector<string16> labels, names, values;
|
|
|
| labels.push_back(ASCIIToUTF16("* First Name"));
|
| @@ -1301,7 +1335,7 @@ TEST_F(FormManagerTest, LabelsInferredFromPreviousTD) {
|
| // <script>, <noscript> and <option> tags are excluded when the labels are
|
| // inferred.
|
| // Also <!-- comment --> is excluded.
|
| -TEST_F(FormManagerTest, LabelsInferredFromTableWithSpecialElements) {
|
| +TEST_F(FormAutofillTest, LabelsInferredFromTableWithSpecialElements) {
|
| std::vector<string16> labels, names, values, control_types;
|
|
|
| labels.push_back(ASCIIToUTF16("* First Name"));
|
| @@ -1398,7 +1432,7 @@ TEST_F(FormManagerTest, LabelsInferredFromTableWithSpecialElements) {
|
| labels, names, values, control_types);
|
| }
|
|
|
| -TEST_F(FormManagerTest, LabelsInferredFromTableLabels) {
|
| +TEST_F(FormAutofillTest, LabelsInferredFromTableLabels) {
|
| ExpectJohnSmithLabels(
|
| "<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">"
|
| "<TABLE>"
|
| @@ -1425,7 +1459,7 @@ TEST_F(FormManagerTest, LabelsInferredFromTableLabels) {
|
| "</FORM>");
|
| }
|
|
|
| -TEST_F(FormManagerTest, LabelsInferredFromTableTDInterveningElements) {
|
| +TEST_F(FormAutofillTest, LabelsInferredFromTableTDInterveningElements) {
|
| ExpectJohnSmithLabels(
|
| "<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">"
|
| "<TABLE>"
|
| @@ -1457,7 +1491,7 @@ TEST_F(FormManagerTest, LabelsInferredFromTableTDInterveningElements) {
|
|
|
| // Verify that we correctly infer labels when the label text spans multiple
|
| // adjacent HTML elements, not separated by whitespace.
|
| -TEST_F(FormManagerTest, LabelsInferredFromTableAdjacentElements) {
|
| +TEST_F(FormAutofillTest, LabelsInferredFromTableAdjacentElements) {
|
| std::vector<string16> labels, names, values;
|
|
|
| labels.push_back(ASCIIToUTF16("*First Name"));
|
| @@ -1511,7 +1545,7 @@ TEST_F(FormManagerTest, LabelsInferredFromTableAdjacentElements) {
|
|
|
| // Verify that we correctly infer labels when the label text resides in the
|
| // previous row.
|
| -TEST_F(FormManagerTest, LabelsInferredFromTableRow) {
|
| +TEST_F(FormAutofillTest, LabelsInferredFromTableRow) {
|
| std::vector<string16> labels, names, values;
|
|
|
| labels.push_back(ASCIIToUTF16("*First Name *Last Name *Email"));
|
| @@ -1555,7 +1589,7 @@ TEST_F(FormManagerTest, LabelsInferredFromTableRow) {
|
| }
|
|
|
| // Verify that we correctly infer labels when enclosed within a list item.
|
| -TEST_F(FormManagerTest, LabelsInferredFromListItem) {
|
| +TEST_F(FormAutofillTest, LabelsInferredFromListItem) {
|
| std::vector<string16> labels, names, values;
|
|
|
| labels.push_back(ASCIIToUTF16("* Home Phone"));
|
| @@ -1590,7 +1624,7 @@ TEST_F(FormManagerTest, LabelsInferredFromListItem) {
|
| labels, names, values);
|
| }
|
|
|
| -TEST_F(FormManagerTest, LabelsInferredFromDefinitionList) {
|
| +TEST_F(FormAutofillTest, LabelsInferredFromDefinitionList) {
|
| std::vector<string16> labels, names, values;
|
|
|
| labels.push_back(ASCIIToUTF16("* First name: Bogus"));
|
| @@ -1653,7 +1687,7 @@ TEST_F(FormManagerTest, LabelsInferredFromDefinitionList) {
|
| labels, names, values);
|
| }
|
|
|
| -TEST_F(FormManagerTest, LabelsInferredWithSameName) {
|
| +TEST_F(FormAutofillTest, LabelsInferredWithSameName) {
|
| std::vector<string16> labels, names, values;
|
|
|
| labels.push_back(ASCIIToUTF16("Address Line 1:"));
|
| @@ -1681,7 +1715,7 @@ TEST_F(FormManagerTest, LabelsInferredWithSameName) {
|
| labels, names, values);
|
| }
|
|
|
| -TEST_F(FormManagerTest, LabelsInferredWithImageTags) {
|
| +TEST_F(FormAutofillTest, LabelsInferredWithImageTags) {
|
| std::vector<string16> labels, names, values;
|
|
|
| labels.push_back(ASCIIToUTF16("Phone:"));
|
| @@ -1724,7 +1758,7 @@ TEST_F(FormManagerTest, LabelsInferredWithImageTags) {
|
| labels, names, values);
|
| }
|
|
|
| -TEST_F(FormManagerTest, LabelsInferredFromDivTable) {
|
| +TEST_F(FormAutofillTest, LabelsInferredFromDivTable) {
|
| ExpectJohnSmithLabels(
|
| "<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">"
|
| "<DIV>First name:<BR>"
|
| @@ -1746,7 +1780,7 @@ TEST_F(FormManagerTest, LabelsInferredFromDivTable) {
|
| "</FORM>");
|
| }
|
|
|
| -TEST_F(FormManagerTest, LabelsInferredFromDivSiblingTable) {
|
| +TEST_F(FormAutofillTest, LabelsInferredFromDivSiblingTable) {
|
| ExpectJohnSmithLabels(
|
| "<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">"
|
| "<DIV>First name:</DIV>"
|
| @@ -1771,7 +1805,7 @@ TEST_F(FormManagerTest, LabelsInferredFromDivSiblingTable) {
|
| "</FORM>");
|
| }
|
|
|
| -TEST_F(FormManagerTest, LabelsInferredFromDefinitionListRatherThanDivTable) {
|
| +TEST_F(FormAutofillTest, LabelsInferredFromDefinitionListRatherThanDivTable) {
|
| ExpectJohnSmithLabels(
|
| "<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">"
|
| "<DIV>This is not a label.<BR>"
|
| @@ -1815,7 +1849,7 @@ TEST_F(FormManagerTest, LabelsInferredFromDefinitionListRatherThanDivTable) {
|
| "</FORM>");
|
| }
|
|
|
| -TEST_F(FormManagerTest, FillFormMaxLength) {
|
| +TEST_F(FormAutofillTest, FillFormMaxLength) {
|
| LoadHTML("<FORM name=\"TestForm\" action=\"http://buh.com\" method=\"post\">"
|
| " <INPUT type=\"text\" id=\"firstname\" maxlength=\"5\"/>"
|
| " <INPUT type=\"text\" id=\"lastname\" maxlength=\"7\"/>"
|
| @@ -1838,8 +1872,8 @@ TEST_F(FormManagerTest, FillFormMaxLength) {
|
| // Find the form that contains the input element.
|
| FormData form;
|
| FormField field;
|
| - EXPECT_TRUE(FindFormAndFieldForFormControlElement(input_element, &form,
|
| - &field));
|
| + EXPECT_TRUE(FindFormAndFieldForInputElement(input_element, &form, &field,
|
| + autofill::REQUIRE_NONE));
|
| EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name);
|
| EXPECT_EQ(GURL(web_frame->document().url()), form.origin);
|
| EXPECT_EQ(GURL("http://buh.com"), form.action);
|
| @@ -1874,8 +1908,8 @@ TEST_F(FormManagerTest, FillFormMaxLength) {
|
| // Find the newly-filled form that contains the input element.
|
| FormData form2;
|
| FormField field2;
|
| - EXPECT_TRUE(FindFormAndFieldForFormControlElement(input_element, &form2,
|
| - &field2));
|
| + EXPECT_TRUE(FindFormAndFieldForInputElement(input_element, &form2, &field2,
|
| + autofill::REQUIRE_NONE));
|
|
|
| EXPECT_EQ(ASCIIToUTF16("TestForm"), form2.name);
|
| EXPECT_EQ(GURL(web_frame->document().url()), form2.origin);
|
| @@ -1908,7 +1942,7 @@ TEST_F(FormManagerTest, FillFormMaxLength) {
|
| // This test uses negative values of the maxlength attribute for input elements.
|
| // In this case, the maxlength of the input elements is set to the default
|
| // maxlength (defined in WebKit.)
|
| -TEST_F(FormManagerTest, FillFormNegativeMaxLength) {
|
| +TEST_F(FormAutofillTest, FillFormNegativeMaxLength) {
|
| LoadHTML("<FORM name=\"TestForm\" action=\"http://buh.com\" method=\"post\">"
|
| " <INPUT type=\"text\" id=\"firstname\" maxlength=\"-1\"/>"
|
| " <INPUT type=\"text\" id=\"lastname\" maxlength=\"-10\"/>"
|
| @@ -1931,8 +1965,8 @@ TEST_F(FormManagerTest, FillFormNegativeMaxLength) {
|
| // Find the form that contains the input element.
|
| FormData form;
|
| FormField field;
|
| - EXPECT_TRUE(FindFormAndFieldForFormControlElement(input_element, &form,
|
| - &field));
|
| + EXPECT_TRUE(FindFormAndFieldForInputElement(input_element, &form, &field,
|
| + autofill::REQUIRE_NONE));
|
| EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name);
|
| EXPECT_EQ(GURL(web_frame->document().url()), form.origin);
|
| EXPECT_EQ(GURL("http://buh.com"), form.action);
|
| @@ -1962,8 +1996,8 @@ TEST_F(FormManagerTest, FillFormNegativeMaxLength) {
|
| // Find the newly-filled form that contains the input element.
|
| FormData form2;
|
| FormField field2;
|
| - EXPECT_TRUE(FindFormAndFieldForFormControlElement(input_element, &form2,
|
| - &field2));
|
| + EXPECT_TRUE(FindFormAndFieldForInputElement(input_element, &form2, &field2,
|
| + autofill::REQUIRE_NONE));
|
|
|
| EXPECT_EQ(ASCIIToUTF16("TestForm"), form2.name);
|
| EXPECT_EQ(GURL(web_frame->document().url()), form2.origin);
|
| @@ -1985,7 +2019,7 @@ TEST_F(FormManagerTest, FillFormNegativeMaxLength) {
|
| EXPECT_FORM_FIELD_EQUALS(expected, fields[2]);
|
| }
|
|
|
| -TEST_F(FormManagerTest, FillFormEmptyName) {
|
| +TEST_F(FormAutofillTest, FillFormEmptyName) {
|
| LoadHTML("<FORM name=\"TestForm\" action=\"http://buh.com\" method=\"post\">"
|
| " <INPUT type=\"text\" id=\"firstname\"/>"
|
| " <INPUT type=\"text\" id=\"lastname\"/>"
|
| @@ -2008,8 +2042,8 @@ TEST_F(FormManagerTest, FillFormEmptyName) {
|
| // Find the form that contains the input element.
|
| FormData form;
|
| FormField field;
|
| - EXPECT_TRUE(FindFormAndFieldForFormControlElement(input_element, &form,
|
| - &field));
|
| + EXPECT_TRUE(FindFormAndFieldForInputElement(input_element, &form, &field,
|
| + autofill::REQUIRE_NONE));
|
| EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name);
|
| EXPECT_EQ(GURL(web_frame->document().url()), form.origin);
|
| EXPECT_EQ(GURL("http://buh.com"), form.action);
|
| @@ -2039,8 +2073,8 @@ TEST_F(FormManagerTest, FillFormEmptyName) {
|
| // Find the newly-filled form that contains the input element.
|
| FormData form2;
|
| FormField field2;
|
| - EXPECT_TRUE(FindFormAndFieldForFormControlElement(input_element, &form2,
|
| - &field2));
|
| + EXPECT_TRUE(FindFormAndFieldForInputElement(input_element, &form2, &field2,
|
| + autofill::REQUIRE_NONE));
|
|
|
| EXPECT_EQ(ASCIIToUTF16("TestForm"), form2.name);
|
| EXPECT_EQ(GURL(web_frame->document().url()), form2.origin);
|
| @@ -2065,7 +2099,7 @@ TEST_F(FormManagerTest, FillFormEmptyName) {
|
| EXPECT_FORM_FIELD_EQUALS(expected, fields[2]);
|
| }
|
|
|
| -TEST_F(FormManagerTest, FillFormEmptyFormNames) {
|
| +TEST_F(FormAutofillTest, FillFormEmptyFormNames) {
|
| LoadHTML("<FORM action=\"http://buh.com\" method=\"post\">"
|
| " <INPUT type=\"text\" id=\"firstname\"/>"
|
| " <INPUT type=\"text\" id=\"middlename\"/>"
|
| @@ -2094,8 +2128,8 @@ TEST_F(FormManagerTest, FillFormEmptyFormNames) {
|
| // Find the form that contains the input element.
|
| FormData form;
|
| FormField field;
|
| - EXPECT_TRUE(FindFormAndFieldForFormControlElement(input_element, &form,
|
| - &field));
|
| + EXPECT_TRUE(FindFormAndFieldForInputElement(input_element, &form, &field,
|
| + autofill::REQUIRE_NONE));
|
| EXPECT_EQ(string16(), form.name);
|
| EXPECT_EQ(GURL(web_frame->document().url()), form.origin);
|
| EXPECT_EQ(GURL("http://abc.com"), form.action);
|
| @@ -2128,8 +2162,8 @@ TEST_F(FormManagerTest, FillFormEmptyFormNames) {
|
| // Find the newly-filled form that contains the input element.
|
| FormData form2;
|
| FormField field2;
|
| - EXPECT_TRUE(FindFormAndFieldForFormControlElement(input_element, &form2,
|
| - &field2));
|
| + EXPECT_TRUE(FindFormAndFieldForInputElement(input_element, &form2, &field2,
|
| + autofill::REQUIRE_NONE));
|
|
|
| EXPECT_EQ(string16(), form2.name);
|
| EXPECT_EQ(GURL(web_frame->document().url()), form2.origin);
|
| @@ -2154,7 +2188,7 @@ TEST_F(FormManagerTest, FillFormEmptyFormNames) {
|
| EXPECT_FORM_FIELD_EQUALS(expected, fields2[2]);
|
| }
|
|
|
| -TEST_F(FormManagerTest, ThreePartPhone) {
|
| +TEST_F(FormAutofillTest, ThreePartPhone) {
|
| LoadHTML("<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">"
|
| " Phone:"
|
| " <input type=\"text\" name=\"dayphone1\">"
|
| @@ -2211,7 +2245,7 @@ TEST_F(FormManagerTest, ThreePartPhone) {
|
| }
|
|
|
|
|
| -TEST_F(FormManagerTest, MaxLengthFields) {
|
| +TEST_F(FormAutofillTest, MaxLengthFields) {
|
| LoadHTML("<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">"
|
| " Phone:"
|
| " <input type=\"text\" maxlength=\"3\" name=\"dayphone1\">"
|
| @@ -2287,7 +2321,7 @@ TEST_F(FormManagerTest, MaxLengthFields) {
|
| // This test re-creates the experience of typing in a field then selecting a
|
| // profile from the Autofill suggestions popup. The field that is being typed
|
| // into should be filled even though it's not technically empty.
|
| -TEST_F(FormManagerTest, FillFormNonEmptyField) {
|
| +TEST_F(FormAutofillTest, FillFormNonEmptyField) {
|
| LoadHTML("<FORM name=\"TestForm\" action=\"http://buh.com\" method=\"post\">"
|
| " <INPUT type=\"text\" id=\"firstname\"/>"
|
| " <INPUT type=\"text\" id=\"lastname\"/>"
|
| @@ -2313,8 +2347,8 @@ TEST_F(FormManagerTest, FillFormNonEmptyField) {
|
| // Find the form that contains the input element.
|
| FormData form;
|
| FormField field;
|
| - EXPECT_TRUE(FindFormAndFieldForFormControlElement(input_element, &form,
|
| - &field));
|
| + EXPECT_TRUE(FindFormAndFieldForInputElement(input_element, &form, &field,
|
| + autofill::REQUIRE_NONE));
|
| EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name);
|
| EXPECT_EQ(GURL(web_frame->document().url()), form.origin);
|
| EXPECT_EQ(GURL("http://buh.com"), form.action);
|
| @@ -2355,8 +2389,8 @@ TEST_F(FormManagerTest, FillFormNonEmptyField) {
|
| // Find the newly-filled form that contains the input element.
|
| FormData form2;
|
| FormField field2;
|
| - EXPECT_TRUE(FindFormAndFieldForFormControlElement(input_element, &form2,
|
| - &field2));
|
| + EXPECT_TRUE(FindFormAndFieldForInputElement(input_element, &form2, &field2,
|
| + autofill::REQUIRE_NONE));
|
|
|
| EXPECT_EQ(ASCIIToUTF16("TestForm"), form2.name);
|
| EXPECT_EQ(GURL(web_frame->document().url()), form2.origin);
|
| @@ -2385,7 +2419,7 @@ TEST_F(FormManagerTest, FillFormNonEmptyField) {
|
| EXPECT_EQ(5, input_element.selectionEnd());
|
| }
|
|
|
| -TEST_F(FormManagerTest, ClearFormWithNode) {
|
| +TEST_F(FormAutofillTest, ClearFormWithNode) {
|
| LoadHTML(
|
| "<FORM name=\"TestForm\" action=\"http://buh.com\" method=\"post\">"
|
| " <INPUT type=\"text\" id=\"firstname\" value=\"Wyatt\"/>"
|
| @@ -2422,8 +2456,8 @@ TEST_F(FormManagerTest, ClearFormWithNode) {
|
| // Verify the form is cleared.
|
| FormData form2;
|
| FormField field2;
|
| - EXPECT_TRUE(FindFormAndFieldForFormControlElement(firstname, &form2,
|
| - &field2));
|
| + EXPECT_TRUE(FindFormAndFieldForInputElement(firstname, &form2, &field2,
|
| + autofill::REQUIRE_NONE));
|
| EXPECT_EQ(ASCIIToUTF16("TestForm"), form2.name);
|
| EXPECT_EQ(GURL(web_frame->document().url()), form2.origin);
|
| EXPECT_EQ(GURL("http://buh.com"), form2.action);
|
| @@ -2456,7 +2490,7 @@ TEST_F(FormManagerTest, ClearFormWithNode) {
|
| EXPECT_EQ(0, firstname.selectionEnd());
|
| }
|
|
|
| -TEST_F(FormManagerTest, ClearFormWithNodeContainingSelectOne) {
|
| +TEST_F(FormAutofillTest, ClearFormWithNodeContainingSelectOne) {
|
| LoadHTML(
|
| "<FORM name=\"TestForm\" action=\"http://buh.com\" method=\"post\">"
|
| " <INPUT type=\"text\" id=\"firstname\" value=\"Wyatt\"/>"
|
| @@ -2497,8 +2531,8 @@ TEST_F(FormManagerTest, ClearFormWithNodeContainingSelectOne) {
|
| // Verify the form is cleared.
|
| FormData form2;
|
| FormField field2;
|
| - EXPECT_TRUE(FindFormAndFieldForFormControlElement(firstname, &form2,
|
| - &field2));
|
| + EXPECT_TRUE(FindFormAndFieldForInputElement(firstname, &form2, &field2,
|
| + autofill::REQUIRE_NONE));
|
| EXPECT_EQ(ASCIIToUTF16("TestForm"), form2.name);
|
| EXPECT_EQ(GURL(web_frame->document().url()), form2.origin);
|
| EXPECT_EQ(GURL("http://buh.com"), form2.action);
|
| @@ -2531,7 +2565,7 @@ TEST_F(FormManagerTest, ClearFormWithNodeContainingSelectOne) {
|
| EXPECT_EQ(0, firstname.selectionEnd());
|
| }
|
|
|
| -TEST_F(FormManagerTest, ClearPreviewedFormWithElement) {
|
| +TEST_F(FormAutofillTest, ClearPreviewedFormWithElement) {
|
| LoadHTML("<FORM name=\"TestForm\" action=\"http://buh.com\" method=\"post\">"
|
| " <INPUT type=\"text\" id=\"firstname\" value=\"Wyatt\"/>"
|
| " <INPUT type=\"text\" id=\"lastname\"/>"
|
| @@ -2599,7 +2633,7 @@ TEST_F(FormManagerTest, ClearPreviewedFormWithElement) {
|
| EXPECT_EQ(0, lastname.selectionEnd());
|
| }
|
|
|
| -TEST_F(FormManagerTest, ClearPreviewedFormWithNonEmptyInitiatingNode) {
|
| +TEST_F(FormAutofillTest, ClearPreviewedFormWithNonEmptyInitiatingNode) {
|
| LoadHTML("<FORM name=\"TestForm\" action=\"http://buh.com\" method=\"post\">"
|
| " <INPUT type=\"text\" id=\"firstname\" value=\"W\"/>"
|
| " <INPUT type=\"text\" id=\"lastname\"/>"
|
| @@ -2667,7 +2701,7 @@ TEST_F(FormManagerTest, ClearPreviewedFormWithNonEmptyInitiatingNode) {
|
| EXPECT_FALSE(phone.isAutofilled());
|
| }
|
|
|
| -TEST_F(FormManagerTest, ClearPreviewedFormWithAutofilledInitiatingNode) {
|
| +TEST_F(FormAutofillTest, ClearPreviewedFormWithAutofilledInitiatingNode) {
|
| LoadHTML("<FORM name=\"TestForm\" action=\"http://buh.com\" method=\"post\">"
|
| " <INPUT type=\"text\" id=\"firstname\" value=\"W\"/>"
|
| " <INPUT type=\"text\" id=\"lastname\"/>"
|
| @@ -2734,7 +2768,7 @@ TEST_F(FormManagerTest, ClearPreviewedFormWithAutofilledInitiatingNode) {
|
| EXPECT_FALSE(phone.isAutofilled());
|
| }
|
|
|
| -TEST_F(FormManagerTest, FormWithNodeIsAutofilled) {
|
| +TEST_F(FormAutofillTest, FormWithNodeIsAutofilled) {
|
| LoadHTML("<FORM name=\"TestForm\" action=\"http://buh.com\" method=\"post\">"
|
| " <INPUT type=\"text\" id=\"firstname\" value=\"Wyatt\"/>"
|
| " <INPUT type=\"text\" id=\"lastname\"/>"
|
| @@ -2765,7 +2799,7 @@ TEST_F(FormManagerTest, FormWithNodeIsAutofilled) {
|
| }
|
|
|
| // If we have multiple labels per id, the labels concatenated into label string.
|
| -TEST_F(FormManagerTest, MultipleLabelsPerElement) {
|
| +TEST_F(FormAutofillTest, MultipleLabelsPerElement) {
|
| std::vector<string16> labels, names, values;
|
|
|
| labels.push_back(ASCIIToUTF16("First Name:"));
|
| @@ -2796,7 +2830,7 @@ TEST_F(FormManagerTest, MultipleLabelsPerElement) {
|
| labels, names, values);
|
| }
|
|
|
| -TEST_F(FormManagerTest, SelectOneAsText) {
|
| +TEST_F(FormAutofillTest, SelectOneAsText) {
|
| LoadHTML("<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">"
|
| " <INPUT type=\"text\" id=\"firstname\" value=\"John\"/>"
|
| " <INPUT type=\"text\" id=\"lastname\" value=\"Smith\"/>"
|
|
|