Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5569)

Unified Diff: chrome/renderer/autofill/form_autofill_browsertest.cc

Issue 11198048: [Autofill] Update the autocomplete types implementation to match the current HTML spec. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Update AutofillFieldTest expectations Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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]);
}
« no previous file with comments | « chrome/renderer/autofill/autofill_renderer_browsertest.cc ('k') | chrome/renderer/autofill/form_autofill_util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698