| Index: components/autofill/core/browser/autofill_field_unittest.cc
|
| diff --git a/components/autofill/core/browser/autofill_field_unittest.cc b/components/autofill/core/browser/autofill_field_unittest.cc
|
| index c4916d0830040ed56c33e725205786a7419744f6..b7451d23f1bac64b918f0540ec1f4111709a17bc 100644
|
| --- a/components/autofill/core/browser/autofill_field_unittest.cc
|
| +++ b/components/autofill/core/browser/autofill_field_unittest.cc
|
| @@ -218,7 +218,7 @@ TEST(AutofillFieldTest, FillSelectControlWithFullStateNames) {
|
| EXPECT_EQ(ASCIIToUTF16("California"), field.value);
|
| }
|
|
|
| -TEST(AutofillFieldTest, FillSelectControlWithWithAbbreviateStateNames) {
|
| +TEST(AutofillFieldTest, FillSelectControlWithAbbreviateStateNames) {
|
| const char* const kStates[] = {
|
| "AL", "CA"
|
| };
|
| @@ -232,6 +232,101 @@ TEST(AutofillFieldTest, FillSelectControlWithWithAbbreviateStateNames) {
|
| EXPECT_EQ(ASCIIToUTF16("CA"), field.value);
|
| }
|
|
|
| +TEST(AutofillFieldTest, FillSelectControlWithInexactFullStateNames) {
|
| + {
|
| + const char* const kStates[] = {
|
| + "SC - South Carolina", "CA - California", "NC - North Carolina",
|
| + };
|
| + AutofillField field(
|
| + GenerateSelectFieldWithOptions(kStates, arraysize(kStates)),
|
| + base::string16());
|
| + field.set_heuristic_type(ADDRESS_HOME_STATE);
|
| +
|
| + AutofillField::FillFormField(field, ASCIIToUTF16("California"), "en-US",
|
| + &field);
|
| + EXPECT_EQ(ASCIIToUTF16("CA - California"), field.value);
|
| + }
|
| +
|
| + // Don't accidentally match "Virginia" to "West Virginia".
|
| + {
|
| + const char* const kStates[] = {
|
| + "WV - West Virginia", "VA - Virginia", "NV - North Virginia",
|
| + };
|
| + AutofillField field(
|
| + GenerateSelectFieldWithOptions(kStates, arraysize(kStates)),
|
| + base::string16());
|
| + field.set_heuristic_type(ADDRESS_HOME_STATE);
|
| +
|
| + AutofillField::FillFormField(field, ASCIIToUTF16("Virginia"), "en-US",
|
| + &field);
|
| + EXPECT_EQ(ASCIIToUTF16("VA - Virginia"), field.value);
|
| + }
|
| +
|
| + // Do accidentally match "Virginia" to "West Virginia". NB: Ideally, Chrome
|
| + // would fail this test. It's here to document behavior rather than enforce
|
| + // it.
|
| + {
|
| + const char* const kStates[] = {
|
| + "WV - West Virginia", "TX - Texas",
|
| + };
|
| + AutofillField field(
|
| + GenerateSelectFieldWithOptions(kStates, arraysize(kStates)),
|
| + base::string16());
|
| + field.set_heuristic_type(ADDRESS_HOME_STATE);
|
| +
|
| + AutofillField::FillFormField(field, ASCIIToUTF16("Virginia"), "en-US",
|
| + &field);
|
| + EXPECT_EQ(ASCIIToUTF16("WV - West Virginia"), field.value);
|
| + }
|
| +
|
| + // Tests that substring matches work for full state names (a full token
|
| + // match isn't required). Also tests that matches work for states with
|
| + // whitespace in the middle.
|
| + {
|
| + const char* const kStates[] = {
|
| + "California.", "North Carolina.",
|
| + };
|
| + AutofillField field(
|
| + GenerateSelectFieldWithOptions(kStates, arraysize(kStates)),
|
| + base::string16());
|
| + field.set_heuristic_type(ADDRESS_HOME_STATE);
|
| +
|
| + AutofillField::FillFormField(field, ASCIIToUTF16("North Carolina"), "en-US",
|
| + &field);
|
| + EXPECT_EQ(ASCIIToUTF16("North Carolina."), field.value);
|
| + }
|
| +}
|
| +
|
| +TEST(AutofillFieldTest, FillSelectControlWithInexactAbbreviations) {
|
| + {
|
| + const char* const kStates[] = {
|
| + "NC - North Carolina", "CA - California",
|
| + };
|
| + AutofillField field(
|
| + GenerateSelectFieldWithOptions(kStates, arraysize(kStates)),
|
| + base::string16());
|
| + field.set_heuristic_type(ADDRESS_HOME_STATE);
|
| +
|
| + AutofillField::FillFormField(field, ASCIIToUTF16("CA"), "en-US",
|
| + &field);
|
| + EXPECT_EQ(ASCIIToUTF16("CA - California"), field.value);
|
| + }
|
| +
|
| + {
|
| + const char* const kNotStates[] = {
|
| + "NCNCA", "SCNCA",
|
| + };
|
| + AutofillField field(
|
| + GenerateSelectFieldWithOptions(kNotStates, arraysize(kNotStates)),
|
| + base::string16());
|
| + field.set_heuristic_type(ADDRESS_HOME_STATE);
|
| +
|
| + AutofillField::FillFormField(field, ASCIIToUTF16("NC"), "en-US",
|
| + &field);
|
| + EXPECT_EQ(base::string16(), field.value);
|
| + }
|
| +}
|
| +
|
| TEST(AutofillFieldTest, FillSelectControlWithNumericMonth) {
|
| const char* const kMonthsNumeric[] = {
|
| "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12",
|
|
|