| 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 15ab038e008ff14f34d95cb372bc77cfbc03830e..93d572b0640ccf2bdf103c08c30f94d2ea9e7ca6 100644
|
| --- a/chrome/renderer/autofill/form_autofill_browsertest.cc
|
| +++ b/chrome/renderer/autofill/form_autofill_browsertest.cc
|
| @@ -53,7 +53,7 @@ class FormAutofillTest : public ChromeRenderViewTest {
|
| const std::vector<string16>& labels,
|
| const std::vector<string16>& names,
|
| const std::vector<string16>& values) {
|
| - std::vector<string16> control_types(labels.size(), ASCIIToUTF16("text"));
|
| + std::vector<std::string> control_types(labels.size(), "text");
|
| ExpectLabelsAndTypes(html, labels, names, values, control_types);
|
| }
|
|
|
| @@ -61,7 +61,7 @@ class FormAutofillTest : public ChromeRenderViewTest {
|
| const std::vector<string16>& labels,
|
| const std::vector<string16>& names,
|
| const std::vector<string16>& values,
|
| - const std::vector<string16>& control_types) {
|
| + const std::vector<std::string>& control_types) {
|
| ASSERT_EQ(labels.size(), names.size());
|
| ASSERT_EQ(labels.size(), values.size());
|
| ASSERT_EQ(labels.size(), control_types.size());
|
| @@ -84,7 +84,7 @@ class FormAutofillTest : public ChromeRenderViewTest {
|
| const std::vector<FormFieldData>& fields = form.fields;
|
| ASSERT_EQ(labels.size(), fields.size());
|
| for (size_t i = 0; i < labels.size(); ++i) {
|
| - int max_length = control_types[i] == ASCIIToUTF16("text") ?
|
| + int max_length = control_types[i] == "text" ?
|
| WebInputElement::defaultMaxLength() : 0;
|
| FormFieldData expected;
|
| expected.label = labels[i];
|
| @@ -132,7 +132,7 @@ TEST_F(FormAutofillTest, WebFormControlElementToFormField) {
|
| WebFormControlElementToFormField(element, autofill::EXTRACT_NONE, &result1);
|
|
|
| FormFieldData expected;
|
| - expected.form_control_type = ASCIIToUTF16("text");
|
| + expected.form_control_type = "text";
|
| expected.max_length = WebInputElement::defaultMaxLength();
|
|
|
| expected.name = ASCIIToUTF16("element");
|
| @@ -163,7 +163,8 @@ TEST_F(FormAutofillTest, WebFormControlElementToFormFieldAutocompleteOff) {
|
| FormFieldData expected;
|
| expected.name = ASCIIToUTF16("element");
|
| expected.value = ASCIIToUTF16("value");
|
| - expected.form_control_type = ASCIIToUTF16("text");
|
| + expected.form_control_type = "text";
|
| + expected.autocomplete_attribute = "off";
|
| expected.max_length = WebInputElement::defaultMaxLength();
|
| EXPECT_FORM_FIELD_DATA_EQUALS(expected, result);
|
| }
|
| @@ -184,7 +185,7 @@ TEST_F(FormAutofillTest, WebFormControlElementToFormFieldMaxLength) {
|
| FormFieldData expected;
|
| expected.name = ASCIIToUTF16("element");
|
| expected.value = ASCIIToUTF16("value");
|
| - expected.form_control_type = ASCIIToUTF16("text");
|
| + expected.form_control_type = "text";
|
| expected.max_length = 5;
|
| EXPECT_FORM_FIELD_DATA_EQUALS(expected, result);
|
| }
|
| @@ -205,7 +206,7 @@ TEST_F(FormAutofillTest, WebFormControlElementToFormFieldAutofilled) {
|
| FormFieldData expected;
|
| expected.name = ASCIIToUTF16("element");
|
| expected.value = ASCIIToUTF16("value");
|
| - expected.form_control_type = ASCIIToUTF16("text");
|
| + expected.form_control_type = "text";
|
| expected.max_length = WebInputElement::defaultMaxLength();
|
| expected.is_autofilled = true;
|
| EXPECT_FORM_FIELD_DATA_EQUALS(expected, result);
|
| @@ -229,7 +230,7 @@ TEST_F(FormAutofillTest, WebFormControlElementToFormFieldSelect) {
|
| FormFieldData expected;
|
| expected.name = ASCIIToUTF16("element");
|
| expected.max_length = 0;
|
| - expected.form_control_type = ASCIIToUTF16("select-one");
|
| + expected.form_control_type = "select-one";
|
|
|
| expected.value = ASCIIToUTF16("CA");
|
| EXPECT_FORM_FIELD_DATA_EQUALS(expected, result1);
|
| @@ -279,28 +280,28 @@ TEST_F(FormAutofillTest, WebFormControlElementToFormFieldInvalidType) {
|
| expected.max_length = 0;
|
|
|
| expected.name = ASCIIToUTF16("hidden");
|
| - expected.form_control_type = ASCIIToUTF16("hidden");
|
| + expected.form_control_type = "hidden";
|
| EXPECT_FORM_FIELD_DATA_EQUALS(expected, result);
|
|
|
| web_element = frame->document().getElementById("password");
|
| element = web_element.to<WebFormControlElement>();
|
| WebFormControlElementToFormField(element, autofill::EXTRACT_VALUE, &result);
|
| expected.name = ASCIIToUTF16("password");
|
| - expected.form_control_type = ASCIIToUTF16("password");
|
| + 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 = 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 = ASCIIToUTF16("radio");
|
| + expected.form_control_type = "radio";
|
| EXPECT_FORM_FIELD_DATA_EQUALS(expected, result);
|
|
|
|
|
| @@ -308,7 +309,7 @@ TEST_F(FormAutofillTest, WebFormControlElementToFormFieldInvalidType) {
|
| element = web_element.to<WebFormControlElement>();
|
| WebFormControlElementToFormField(element, autofill::EXTRACT_VALUE, &result);
|
| expected.name = ASCIIToUTF16("submit");
|
| - expected.form_control_type = ASCIIToUTF16("submit");
|
| + expected.form_control_type = "submit";
|
| EXPECT_FORM_FIELD_DATA_EQUALS(expected, result);
|
| }
|
|
|
| @@ -316,114 +317,72 @@ TEST_F(FormAutofillTest, WebFormControlElementToFormFieldInvalidType) {
|
| TEST_F(FormAutofillTest, WebFormControlElementToFormFieldAutocompletetype) {
|
| std::string html =
|
| "<INPUT type=\"text\" id=\"absent\"/>"
|
| - "<INPUT type=\"text\" id=\"empty\" x-autocompletetype=\"\"/>"
|
| - "<INPUT type=\"text\" id=\"whitespace\" x-autocompletetype=\" \"/>"
|
| - "<INPUT type=\"text\" id=\"regular\" x-autocompletetype=\"email\"/>"
|
| + "<INPUT type=\"text\" id=\"empty\" autocomplete=\"\"/>"
|
| + "<INPUT type=\"text\" id=\"off\" autocomplete=\"off\"/>"
|
| + "<INPUT type=\"text\" id=\"regular\" autocomplete=\"email\"/>"
|
| "<INPUT type=\"text\" id=\"multi-valued\" "
|
| - " x-autocompletetype=\"x-confirm-email email\"/>"
|
| - "<INPUT type=\"text\" id=\"unprefixed\" autocompletetype=\"email\"/>"
|
| - "<SELECT id=\"select\" x-autocompletetype=\"state\"/>"
|
| + " autocomplete=\"billing email\"/>"
|
| + "<INPUT type=\"text\" id=\"experimental\" x-autocompletetype=\"email\"/>"
|
| + "<SELECT id=\"select\" autocomplete=\"state\"/>"
|
| " <OPTION value=\"CA\">California</OPTION>"
|
| " <OPTION value=\"TX\">Texas</OPTION>"
|
| "</SELECT>";
|
| html +=
|
| - "<INPUT type=\"text\" id=\"malicious\" x-autocompletetype=\"" +
|
| + "<INPUT type=\"text\" id=\"malicious\" autocomplete=\"" +
|
| std::string(10000, 'x') + "\"/>";
|
| LoadHTML(html.c_str());
|
|
|
| WebFrame* frame = GetMainFrame();
|
| ASSERT_NE(static_cast<WebFrame*>(NULL), frame);
|
|
|
| - // An absent attribute is equivalent to an empty one.
|
| - WebElement web_element = frame->document().getElementById("absent");
|
| - WebFormControlElement element = web_element.to<WebFormControlElement>();
|
| - FormFieldData result1;
|
| - WebFormControlElementToFormField(element, autofill::EXTRACT_NONE, &result1);
|
| -
|
| - FormFieldData expected;
|
| - expected.name = ASCIIToUTF16("absent");
|
| - expected.form_control_type = ASCIIToUTF16("text");
|
| - expected.autocomplete_type = string16();
|
| - expected.max_length = WebInputElement::defaultMaxLength();
|
| - EXPECT_FORM_FIELD_DATA_EQUALS(expected, result1);
|
| -
|
| - web_element = frame->document().getElementById("empty");
|
| - element = web_element.to<WebFormControlElement>();
|
| - FormFieldData result2;
|
| - WebFormControlElementToFormField(element, autofill::EXTRACT_NONE, &result2);
|
| - expected.name = ASCIIToUTF16("empty");
|
| - expected.form_control_type = ASCIIToUTF16("text");
|
| - expected.autocomplete_type = string16();
|
| - expected.max_length = WebInputElement::defaultMaxLength();
|
| - EXPECT_FORM_FIELD_DATA_EQUALS(expected, result2);
|
| -
|
| - // The renderer should trim whitespace.
|
| - web_element = frame->document().getElementById("whitespace");
|
| - element = web_element.to<WebFormControlElement>();
|
| - FormFieldData result3;
|
| - WebFormControlElementToFormField(element, autofill::EXTRACT_NONE, &result3);
|
| - expected.name = ASCIIToUTF16("whitespace");
|
| - expected.form_control_type = ASCIIToUTF16("text");
|
| - expected.autocomplete_type = string16();
|
| - expected.max_length = WebInputElement::defaultMaxLength();
|
| - EXPECT_FORM_FIELD_DATA_EQUALS(expected, result3);
|
| + struct TestCase {
|
| + const std::string element_id;
|
| + const std::string form_control_type;
|
| + const std::string autocomplete_attribute;
|
| + };
|
| + TestCase test_cases[] = {
|
| + // An absent attribute is equivalent to an empty one.
|
| + { "absent", "text", "" },
|
| + // Make sure there are no issues parsing an empty attribute.
|
| + { "empty", "text", "" },
|
| + // Make sure there are no issues parsing an attribute value that isn't a
|
| + // type hint.
|
| + { "off", "text", "off" },
|
| + // Common case: exactly one type specified.
|
| + { "regular", "text", "email" },
|
| + // Verify that we correctly extract multiple tokens as well.
|
| + { "multi-valued", "text", "billing email" },
|
| + // We previously extracted this data from the experimental
|
| + // 'x-autocompletetype' attribute. Now that the field type hints are part
|
| + // of the spec under the autocomplete attribute, we no longer support the
|
| + // experimental version.
|
| + { "experimental", "text", "" },
|
| + // <select> elements should behave no differently from text fields here.
|
| + { "select", "select-one", "state" },
|
| + // Very long attribute values should be replaced by a default string, to
|
| + // prevent malicious websites from DOSing the browser process.
|
| + { "malicious", "text", "x-max-data-length-exceeded" },
|
| + };
|
| +
|
| + for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_cases); ++i) {
|
| + WebElement web_element = frame->document().getElementById(
|
| + ASCIIToUTF16(test_cases[i].element_id));
|
| + WebFormControlElement element = web_element.to<WebFormControlElement>();
|
| + FormFieldData result;
|
| + WebFormControlElementToFormField(element, autofill::EXTRACT_NONE, &result);
|
|
|
| - // Common case: exactly one type specified.
|
| - web_element = frame->document().getElementById("regular");
|
| - element = web_element.to<WebFormControlElement>();
|
| - FormFieldData result4;
|
| - WebFormControlElementToFormField(element, autofill::EXTRACT_NONE, &result4);
|
| - expected.name = ASCIIToUTF16("regular");
|
| - expected.form_control_type = ASCIIToUTF16("text");
|
| - expected.autocomplete_type = ASCIIToUTF16("email");
|
| - expected.max_length = WebInputElement::defaultMaxLength();
|
| - EXPECT_FORM_FIELD_DATA_EQUALS(expected, result4);
|
| -
|
| - // Verify that we correctly extract fallback types as well.
|
| - web_element = frame->document().getElementById("multi-valued");
|
| - element = web_element.to<WebFormControlElement>();
|
| - FormFieldData result5;
|
| - WebFormControlElementToFormField(element, autofill::EXTRACT_NONE, &result5);
|
| - expected.name = ASCIIToUTF16("multi-valued");
|
| - expected.form_control_type = ASCIIToUTF16("text");
|
| - expected.autocomplete_type = ASCIIToUTF16("x-confirm-email email");
|
| - expected.max_length = WebInputElement::defaultMaxLength();
|
| - EXPECT_FORM_FIELD_DATA_EQUALS(expected, result5);
|
| -
|
| - // The attribute is not yet part of the HTML standard, so we only recognize
|
| - // the prefixed version -- 'x-autocompletetype' -- and not the unprefixed one.
|
| - web_element = frame->document().getElementById("unprefixed");
|
| - element = web_element.to<WebFormControlElement>();
|
| - FormFieldData result6;
|
| - WebFormControlElementToFormField(element, autofill::EXTRACT_NONE, &result6);
|
| - expected.name = ASCIIToUTF16("unprefixed");
|
| - expected.form_control_type = ASCIIToUTF16("text");
|
| - expected.autocomplete_type = string16();
|
| - expected.max_length = WebInputElement::defaultMaxLength();
|
| - EXPECT_FORM_FIELD_DATA_EQUALS(expected, result6);
|
| -
|
| - // <select> elements should behave no differently from text fields here.
|
| - web_element = frame->document().getElementById("select");
|
| - element = web_element.to<WebFormControlElement>();
|
| - FormFieldData result7;
|
| - WebFormControlElementToFormField(element, autofill::EXTRACT_NONE, &result7);
|
| - expected.name = ASCIIToUTF16("select");
|
| - expected.form_control_type = ASCIIToUTF16("select-one");
|
| - expected.autocomplete_type = ASCIIToUTF16("state");
|
| - expected.max_length = 0;
|
| - EXPECT_FORM_FIELD_DATA_EQUALS(expected, result7);
|
| -
|
| - // Very long attribute values should be replaced by a default string, to
|
| - // prevent malicious websites from DOSing the browser process.
|
| - web_element = frame->document().getElementById("malicious");
|
| - element = web_element.to<WebFormControlElement>();
|
| - FormFieldData result8;
|
| - WebFormControlElementToFormField(element, autofill::EXTRACT_NONE, &result8);
|
| - expected.name = ASCIIToUTF16("malicious");
|
| - expected.form_control_type = ASCIIToUTF16("text");
|
| - expected.autocomplete_type = ASCIIToUTF16("x-max-data-length-exceeded");
|
| - expected.max_length = WebInputElement::defaultMaxLength();
|
| - EXPECT_FORM_FIELD_DATA_EQUALS(expected, result8);
|
| + FormFieldData expected;
|
| + expected.name = ASCIIToUTF16(test_cases[i].element_id);
|
| + expected.form_control_type = test_cases[i].form_control_type;
|
| + expected.autocomplete_attribute = test_cases[i].autocomplete_attribute;
|
| + if (test_cases[i].form_control_type == "text")
|
| + expected.max_length = WebInputElement::defaultMaxLength();
|
| + else
|
| + expected.max_length = 0;
|
| +
|
| + SCOPED_TRACE(test_cases[i].element_id);
|
| + EXPECT_FORM_FIELD_DATA_EQUALS(expected, result);
|
| + }
|
| }
|
|
|
| TEST_F(FormAutofillTest, WebFormElementToFormData) {
|
| @@ -474,21 +433,21 @@ TEST_F(FormAutofillTest, WebFormElementToFormData) {
|
| expected.name = ASCIIToUTF16("firstname");
|
| expected.value = ASCIIToUTF16("John");
|
| expected.label = ASCIIToUTF16("First name:");
|
| - expected.form_control_type = ASCIIToUTF16("text");
|
| + expected.form_control_type = "text";
|
| expected.max_length = WebInputElement::defaultMaxLength();
|
| EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields[0]);
|
|
|
| expected.name = ASCIIToUTF16("lastname");
|
| expected.value = ASCIIToUTF16("Smith");
|
| expected.label = ASCIIToUTF16("Last name:");
|
| - expected.form_control_type = ASCIIToUTF16("text");
|
| + expected.form_control_type = "text";
|
| expected.max_length = WebInputElement::defaultMaxLength();
|
| EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields[1]);
|
|
|
| expected.name = ASCIIToUTF16("state");
|
| expected.value = ASCIIToUTF16("CA");
|
| expected.label = ASCIIToUTF16("State:");
|
| - expected.form_control_type = ASCIIToUTF16("select-one");
|
| + expected.form_control_type = "select-one";
|
| expected.max_length = 0;
|
| EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields[2]);
|
| }
|
| @@ -565,7 +524,7 @@ TEST_F(FormAutofillTest, ExtractMultipleForms) {
|
| ASSERT_EQ(3U, fields.size());
|
|
|
| FormFieldData expected;
|
| - expected.form_control_type = ASCIIToUTF16("text");
|
| + expected.form_control_type = "text";
|
| expected.max_length = WebInputElement::defaultMaxLength();
|
|
|
| expected.name = ASCIIToUTF16("firstname");
|
| @@ -680,7 +639,7 @@ TEST_F(FormAutofillTest, WebFormElementToFormDataAutocomplete) {
|
| ASSERT_EQ(3U, fields.size());
|
|
|
| FormFieldData expected;
|
| - expected.form_control_type = ASCIIToUTF16("text");
|
| + expected.form_control_type = "text";
|
| expected.max_length = WebInputElement::defaultMaxLength();
|
|
|
| expected.name = ASCIIToUTF16("middlename");
|
| @@ -732,7 +691,7 @@ TEST_F(FormAutofillTest, FindForm) {
|
| ASSERT_EQ(4U, fields.size());
|
|
|
| FormFieldData expected;
|
| - expected.form_control_type = ASCIIToUTF16("text");
|
| + expected.form_control_type = "text";
|
| expected.max_length = WebInputElement::defaultMaxLength();
|
|
|
| expected.name = ASCIIToUTF16("firstname");
|
| @@ -746,7 +705,9 @@ TEST_F(FormAutofillTest, FindForm) {
|
|
|
| expected.name = ASCIIToUTF16("email");
|
| expected.value = ASCIIToUTF16("john@example.com");
|
| + expected.autocomplete_attribute = "off";
|
| EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields[2]);
|
| + expected.autocomplete_attribute = std::string(); // reset
|
|
|
| expected.name = ASCIIToUTF16("phone");
|
| expected.value = ASCIIToUTF16("1.800.555.1234");
|
| @@ -764,7 +725,7 @@ TEST_F(FormAutofillTest, FindForm) {
|
| const std::vector<FormFieldData>& fields2 = form2.fields;
|
| ASSERT_EQ(3U, fields2.size());
|
|
|
| - expected.form_control_type = ASCIIToUTF16("text");
|
| + expected.form_control_type = "text";
|
| expected.max_length = WebInputElement::defaultMaxLength();
|
|
|
| expected.name = ASCIIToUTF16("firstname");
|
| @@ -821,7 +782,7 @@ TEST_F(FormAutofillTest, FillForm) {
|
| ASSERT_EQ(7U, fields.size());
|
|
|
| FormFieldData expected;
|
| - expected.form_control_type = ASCIIToUTF16("text");
|
| + expected.form_control_type = "text";
|
| expected.max_length = WebInputElement::defaultMaxLength();
|
|
|
| expected.name = ASCIIToUTF16("firstname");
|
| @@ -948,7 +909,7 @@ TEST_F(FormAutofillTest, PreviewForm) {
|
| ASSERT_EQ(4U, fields.size());
|
|
|
| FormFieldData expected;
|
| - expected.form_control_type = ASCIIToUTF16("text");
|
| + expected.form_control_type = "text";
|
| expected.max_length = WebInputElement::defaultMaxLength();
|
|
|
| expected.name = ASCIIToUTF16("firstname");
|
| @@ -1353,32 +1314,33 @@ TEST_F(FormAutofillTest, LabelsInferredFromPreviousTD) {
|
| // inferred.
|
| // Also <!-- comment --> is excluded.
|
| TEST_F(FormAutofillTest, LabelsInferredFromTableWithSpecialElements) {
|
| - std::vector<string16> labels, names, values, control_types;
|
| + std::vector<string16> labels, names, values;
|
| + std::vector<std::string> control_types;
|
|
|
| labels.push_back(ASCIIToUTF16("* First Name"));
|
| names.push_back(ASCIIToUTF16("firstname"));
|
| values.push_back(ASCIIToUTF16("John"));
|
| - control_types.push_back(ASCIIToUTF16("text"));
|
| + control_types.push_back("text");
|
|
|
| labels.push_back(ASCIIToUTF16("* Middle Name"));
|
| names.push_back(ASCIIToUTF16("middlename"));
|
| values.push_back(ASCIIToUTF16("Joe"));
|
| - control_types.push_back(ASCIIToUTF16("text"));
|
| + control_types.push_back("text");
|
|
|
| labels.push_back(ASCIIToUTF16("* Last Name"));
|
| names.push_back(ASCIIToUTF16("lastname"));
|
| values.push_back(ASCIIToUTF16("Smith"));
|
| - control_types.push_back(ASCIIToUTF16("text"));
|
| + control_types.push_back("text");
|
|
|
| labels.push_back(ASCIIToUTF16("* Country"));
|
| names.push_back(ASCIIToUTF16("country"));
|
| values.push_back(ASCIIToUTF16("US"));
|
| - control_types.push_back(ASCIIToUTF16("select-one"));
|
| + control_types.push_back("select-one");
|
|
|
| labels.push_back(ASCIIToUTF16("* Email"));
|
| names.push_back(ASCIIToUTF16("email"));
|
| values.push_back(ASCIIToUTF16("john@example.com"));
|
| - control_types.push_back(ASCIIToUTF16("text"));
|
| + control_types.push_back("text");
|
|
|
| ExpectLabelsAndTypes(
|
| "<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">"
|
| @@ -1899,7 +1861,7 @@ TEST_F(FormAutofillTest, FillFormMaxLength) {
|
| ASSERT_EQ(3U, fields.size());
|
|
|
| FormFieldData expected;
|
| - expected.form_control_type = ASCIIToUTF16("text");
|
| + expected.form_control_type = "text";
|
|
|
| expected.name = ASCIIToUTF16("firstname");
|
| expected.max_length = 5;
|
| @@ -1935,7 +1897,7 @@ TEST_F(FormAutofillTest, FillFormMaxLength) {
|
| const std::vector<FormFieldData>& fields2 = form2.fields;
|
| ASSERT_EQ(3U, fields2.size());
|
|
|
| - expected.form_control_type = ASCIIToUTF16("text");
|
| + expected.form_control_type = "text";
|
|
|
| expected.name = ASCIIToUTF16("firstname");
|
| expected.value = ASCIIToUTF16("Broth");
|
| @@ -1992,7 +1954,7 @@ TEST_F(FormAutofillTest, FillFormNegativeMaxLength) {
|
| ASSERT_EQ(3U, fields.size());
|
|
|
| FormFieldData expected;
|
| - expected.form_control_type = ASCIIToUTF16("text");
|
| + expected.form_control_type = "text";
|
| expected.max_length = WebInputElement::defaultMaxLength();
|
|
|
| expected.name = ASCIIToUTF16("firstname");
|
| @@ -2069,7 +2031,7 @@ TEST_F(FormAutofillTest, FillFormEmptyName) {
|
| ASSERT_EQ(3U, fields.size());
|
|
|
| FormFieldData expected;
|
| - expected.form_control_type = ASCIIToUTF16("text");
|
| + expected.form_control_type = "text";
|
| expected.max_length = WebInputElement::defaultMaxLength();
|
|
|
| expected.name = ASCIIToUTF16("firstname");
|
| @@ -2100,7 +2062,7 @@ TEST_F(FormAutofillTest, FillFormEmptyName) {
|
| const std::vector<FormFieldData>& fields2 = form2.fields;
|
| ASSERT_EQ(3U, fields2.size());
|
|
|
| - expected.form_control_type = ASCIIToUTF16("text");
|
| + expected.form_control_type = "text";
|
| expected.max_length = WebInputElement::defaultMaxLength();
|
|
|
| expected.name = ASCIIToUTF16("firstname");
|
| @@ -2155,7 +2117,7 @@ TEST_F(FormAutofillTest, FillFormEmptyFormNames) {
|
| ASSERT_EQ(3U, fields.size());
|
|
|
| FormFieldData expected;
|
| - expected.form_control_type = ASCIIToUTF16("text");
|
| + expected.form_control_type = "text";
|
| expected.max_length = WebInputElement::defaultMaxLength();
|
|
|
| expected.name = ASCIIToUTF16("apple");
|
| @@ -2241,7 +2203,7 @@ TEST_F(FormAutofillTest, ThreePartPhone) {
|
| ASSERT_EQ(4U, fields.size());
|
|
|
| FormFieldData expected;
|
| - expected.form_control_type = ASCIIToUTF16("text");
|
| + expected.form_control_type = "text";
|
| expected.max_length = WebInputElement::defaultMaxLength();
|
|
|
| expected.label = ASCIIToUTF16("Phone:");
|
| @@ -2300,7 +2262,7 @@ TEST_F(FormAutofillTest, MaxLengthFields) {
|
| ASSERT_EQ(6U, fields.size());
|
|
|
| FormFieldData expected;
|
| - expected.form_control_type = ASCIIToUTF16("text");
|
| + expected.form_control_type = "text";
|
|
|
| expected.label = ASCIIToUTF16("Phone:");
|
| expected.name = ASCIIToUTF16("dayphone1");
|
| @@ -2374,7 +2336,7 @@ TEST_F(FormAutofillTest, FillFormNonEmptyField) {
|
| ASSERT_EQ(3U, fields.size());
|
|
|
| FormFieldData expected;
|
| - expected.form_control_type = ASCIIToUTF16("text");
|
| + expected.form_control_type = "text";
|
| expected.max_length = WebInputElement::defaultMaxLength();
|
|
|
| expected.name = ASCIIToUTF16("firstname");
|
| @@ -2483,7 +2445,7 @@ TEST_F(FormAutofillTest, ClearFormWithNode) {
|
| ASSERT_EQ(4U, fields2.size());
|
|
|
| FormFieldData expected;
|
| - expected.form_control_type = ASCIIToUTF16("text");
|
| + expected.form_control_type = "text";
|
| expected.max_length = WebInputElement::defaultMaxLength();
|
|
|
| expected.name = ASCIIToUTF16("firstname");
|
| @@ -2496,7 +2458,9 @@ TEST_F(FormAutofillTest, ClearFormWithNode) {
|
|
|
| expected.name = ASCIIToUTF16("noAC");
|
| expected.value = string16();
|
| + expected.autocomplete_attribute = "off";
|
| EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields2[2]);
|
| + expected.autocomplete_attribute = std::string(); // reset
|
|
|
| expected.name = ASCIIToUTF16("notenabled");
|
| expected.value = ASCIIToUTF16("no clear");
|
| @@ -2561,19 +2525,19 @@ TEST_F(FormAutofillTest, ClearFormWithNodeContainingSelectOne) {
|
|
|
| expected.name = ASCIIToUTF16("firstname");
|
| expected.value = string16();
|
| - expected.form_control_type = ASCIIToUTF16("text");
|
| + expected.form_control_type = "text";
|
| expected.max_length = WebInputElement::defaultMaxLength();
|
| EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields2[0]);
|
|
|
| expected.name = ASCIIToUTF16("lastname");
|
| expected.value = string16();
|
| - expected.form_control_type = ASCIIToUTF16("text");
|
| + expected.form_control_type = "text";
|
| expected.max_length = WebInputElement::defaultMaxLength();
|
| EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields2[1]);
|
|
|
| expected.name = ASCIIToUTF16("state");
|
| expected.value = ASCIIToUTF16("?");
|
| - expected.form_control_type = ASCIIToUTF16("select-one");
|
| + expected.form_control_type = "select-one";
|
| expected.max_length = 0;
|
| EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields2[2]);
|
|
|
| @@ -2890,19 +2854,19 @@ TEST_F(FormAutofillTest, SelectOneAsText) {
|
|
|
| expected.name = ASCIIToUTF16("firstname");
|
| expected.value = ASCIIToUTF16("John");
|
| - expected.form_control_type = ASCIIToUTF16("text");
|
| + expected.form_control_type = "text";
|
| expected.max_length = WebInputElement::defaultMaxLength();
|
| EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields[0]);
|
|
|
| expected.name = ASCIIToUTF16("lastname");
|
| expected.value = ASCIIToUTF16("Smith");
|
| - expected.form_control_type = ASCIIToUTF16("text");
|
| + expected.form_control_type = "text";
|
| expected.max_length = WebInputElement::defaultMaxLength();
|
| EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields[1]);
|
|
|
| expected.name = ASCIIToUTF16("country");
|
| expected.value = ASCIIToUTF16("Albania");
|
| - expected.form_control_type = ASCIIToUTF16("select-one");
|
| + expected.form_control_type = "select-one";
|
| expected.max_length = 0;
|
| EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields[2]);
|
|
|
| @@ -2922,19 +2886,19 @@ TEST_F(FormAutofillTest, SelectOneAsText) {
|
|
|
| expected.name = ASCIIToUTF16("firstname");
|
| expected.value = ASCIIToUTF16("John");
|
| - expected.form_control_type = ASCIIToUTF16("text");
|
| + expected.form_control_type = "text";
|
| expected.max_length = WebInputElement::defaultMaxLength();
|
| EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields[0]);
|
|
|
| expected.name = ASCIIToUTF16("lastname");
|
| expected.value = ASCIIToUTF16("Smith");
|
| - expected.form_control_type = ASCIIToUTF16("text");
|
| + expected.form_control_type = "text";
|
| expected.max_length = WebInputElement::defaultMaxLength();
|
| EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields[1]);
|
|
|
| expected.name = ASCIIToUTF16("country");
|
| expected.value = ASCIIToUTF16("AL");
|
| - expected.form_control_type = ASCIIToUTF16("select-one");
|
| + expected.form_control_type = "select-one";
|
| expected.max_length = 0;
|
| EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields[2]);
|
| }
|
|
|