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

Unified Diff: components/autofill/core/browser/autofill_field_unittest.cc

Issue 361833004: autofill: be more open minded about filling in states in <option>s. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: base:: Created 6 years, 5 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
« no previous file with comments | « components/autofill/core/browser/autofill_field.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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",
« no previous file with comments | « components/autofill/core/browser/autofill_field.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698