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

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

Issue 2113453002: [Autofill] Structure AutofillField tests a little better (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Quebec Created 4 years, 6 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 | « no previous file | 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 136e6bd922bf98337a27db9f94d8bac31f834759..5ab6322db24b09df113da4597ac336dfea1e81ad 100644
--- a/components/autofill/core/browser/autofill_field_unittest.cc
+++ b/components/autofill/core/browser/autofill_field_unittest.cc
@@ -412,136 +412,71 @@ TEST_F(AutofillFieldTest, FillSelectControlByContents) {
EXPECT_EQ(ASCIIToUTF16("2"), field.value); // Corresponds to "Miney".
}
-TEST_F(AutofillFieldTest, FillSelectControlWithFullCountryNames) {
- std::vector<const char*> kCountries = {"Albania", "Canada"};
- AutofillField field;
- test::CreateTestSelectField(kCountries, &field);
- field.set_heuristic_type(ADDRESS_HOME_COUNTRY);
-
- AutofillField::FillFormField(
- field, ASCIIToUTF16("CA"), "en-US", "en-US", &field);
- EXPECT_EQ(ASCIIToUTF16("Canada"), field.value);
-}
-
-TEST_F(AutofillFieldTest, FillSelectControlWithAbbreviatedCountryNames) {
- std::vector<const char*> kCountries = {"AL", "CA"};
- AutofillField field;
- test::CreateTestSelectField(kCountries, &field);
- field.set_heuristic_type(ADDRESS_HOME_COUNTRY);
-
- AutofillField::FillFormField(
- field, ASCIIToUTF16("Canada"), "en-US", "en-US", &field);
- EXPECT_EQ(ASCIIToUTF16("CA"), field.value);
-}
-
-TEST_F(AutofillFieldTest, FillSelectControlWithFullStateNames) {
- std::vector<const char*> kStates = {"Alabama", "California"};
- AutofillField field;
- test::CreateTestSelectField(kStates, &field);
- field.set_heuristic_type(ADDRESS_HOME_STATE);
-
- AutofillField::FillFormField(
- field, ASCIIToUTF16("CA"), "en-US", "en-US", &field);
- EXPECT_EQ(ASCIIToUTF16("California"), field.value);
-}
-
-TEST_F(AutofillFieldTest, FillSelectControlWithAbbreviateStateNames) {
- std::vector<const char*> kStates = {"AL", "CA"};
- AutofillField field;
- test::CreateTestSelectField(kStates, &field);
- field.set_heuristic_type(ADDRESS_HOME_STATE);
-
- AutofillField::FillFormField(
- field, ASCIIToUTF16("California"), "en-US", "en-US", &field);
- EXPECT_EQ(ASCIIToUTF16("CA"), field.value);
-}
-
-TEST_F(AutofillFieldTest, FillSelectControlWithInexactFullStateNames) {
- {
- std::vector<const char*> kStates = {
- "SC - South Carolina", "CA - California", "NC - North Carolina",
- };
- AutofillField field;
- test::CreateTestSelectField(kStates, &field);
- field.set_heuristic_type(ADDRESS_HOME_STATE);
-
- AutofillField::FillFormField(
- field, ASCIIToUTF16("California"), "en-US", "en-US", &field);
- EXPECT_EQ(ASCIIToUTF16("CA - California"), field.value);
- }
-
- // Don't accidentally match "Virginia" to "West Virginia".
- {
- std::vector<const char*> kStates = {
- "WV - West Virginia", "VA - Virginia", "NV - North Virginia",
- };
- AutofillField field;
- test::CreateTestSelectField(kStates, &field);
- field.set_heuristic_type(ADDRESS_HOME_STATE);
-
- AutofillField::FillFormField(
- field, ASCIIToUTF16("Virginia"), "en-US", "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.
- {
- std::vector<const char*> kStates = {
- "WV - West Virginia", "TX - Texas",
- };
- AutofillField field;
- test::CreateTestSelectField(kStates, &field);
- field.set_heuristic_type(ADDRESS_HOME_STATE);
+TEST_F(AutofillFieldTest, FillSelectWithStates) {
+ typedef struct {
+ std::vector<const char*> select_values;
+ const char* input_value;
+ const char* expected_value;
+ } TestCase;
- AutofillField::FillFormField(
- field, ASCIIToUTF16("Virginia"), "en-US", "en-US", &field);
- EXPECT_EQ(ASCIIToUTF16("WV - West Virginia"), field.value);
- }
+ TestCase test_cases[] = {
+ // Filling the abbreviation.
+ {{"Alabama", "California"}, "CA", "California"},
+ // Attempting to fill the full name in a select full of abbreviations.
+ {{"AL", "CA"}, "California", "CA"},
+ // Different case and diacritics.
+ {{"QUÉBEC", "ALBERTA"}, "Quebec", "QUÉBEC"},
+ // Inexact state names.
+ {{"SC - South Carolina", "CA - California", "NC - North Carolina"},
+ "California",
+ "CA - California"},
+ // Don't accidentally match "Virginia" to "West Virginia".
+ {{"WV - West Virginia", "VA - Virginia", "NV - North Virginia"},
+ "Virginia",
+ "VA - Virginia"},
+ // Do accidentally match "Virginia" to "West Virginia". NB: Ideally,
sebsg 2016/06/30 09:48:16 Can you document what makes Virginia match or not
Mathieu 2016/06/30 12:21:06 Done.
+ // Chrome would fail this test. It's here to document behavior rather than
+ // enforce it.
+ {{"WV - West Virginia", "TX - Texas"}, "Virginia", "WV - West Virginia"},
+ // 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.
+ {{"California.", "North Carolina."}, "North Carolina", "North Carolina."},
+ {{"NC - North Carolina", "CA - California"}, "CA", "CA - California"},
+ // These are not states.
+ {{"NCNCA", "SCNCA"}, "NC", ""}};
- // 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.
- {
- std::vector<const char*> kStates = {
- "California.", "North Carolina.",
- };
+ for (TestCase test_case : test_cases) {
AutofillField field;
- test::CreateTestSelectField(kStates, &field);
+ test::CreateTestSelectField(test_case.select_values, &field);
field.set_heuristic_type(ADDRESS_HOME_STATE);
- AutofillField::FillFormField(
- field, ASCIIToUTF16("North Carolina"), "en-US", "en-US", &field);
- EXPECT_EQ(ASCIIToUTF16("North Carolina."), field.value);
+ AutofillField::FillFormField(field, UTF8ToUTF16(test_case.input_value),
+ "en-US", "en-US", &field);
+ EXPECT_EQ(UTF8ToUTF16(test_case.expected_value), field.value);
}
}
-TEST_F(AutofillFieldTest, FillSelectControlWithInexactAbbreviations) {
- {
- std::vector<const char*> kStates = {
- "NC - North Carolina", "CA - California",
- };
- AutofillField field;
- test::CreateTestSelectField(kStates, &field);
- field.set_heuristic_type(ADDRESS_HOME_STATE);
+TEST_F(AutofillFieldTest, FillSelectWithCountries) {
+ typedef struct {
+ std::vector<const char*> select_values;
+ const char* input_value;
+ const char* expected_value;
+ } TestCase;
- AutofillField::FillFormField(
- field, ASCIIToUTF16("CA"), "en-US", "en-US", &field);
- EXPECT_EQ(ASCIIToUTF16("CA - California"), field.value);
- }
+ TestCase test_cases[] = {// Full country names.
+ {{"Albania", "Canada"}, "CA", "Canada"},
+ // Abbreviations.
+ {{"AL", "CA"}, "Canada", "CA"}};
- {
- std::vector<const char*> kNotStates = {
- "NCNCA", "SCNCA",
- };
+ for (TestCase test_case : test_cases) {
AutofillField field;
- test::CreateTestSelectField(kNotStates, &field);
- field.set_heuristic_type(ADDRESS_HOME_STATE);
+ test::CreateTestSelectField(test_case.select_values, &field);
+ field.set_heuristic_type(ADDRESS_HOME_COUNTRY);
- AutofillField::FillFormField(
- field, ASCIIToUTF16("NC"), "en-US", "en-US", &field);
- EXPECT_EQ(base::string16(), field.value);
+ AutofillField::FillFormField(field, UTF8ToUTF16(test_case.input_value),
+ "en-US", "en-US", &field);
+ EXPECT_EQ(UTF8ToUTF16(test_case.expected_value), field.value);
}
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698