Chromium Code Reviews| Index: components/autofill/core/browser/form_structure_unittest.cc |
| diff --git a/components/autofill/core/browser/form_structure_unittest.cc b/components/autofill/core/browser/form_structure_unittest.cc |
| index dbd07bfaf5472d5c1238f4fd6299fbf926778684..b8bbfbd5594d2221b6a49705c971ec3c5256d5a6 100644 |
| --- a/components/autofill/core/browser/form_structure_unittest.cc |
| +++ b/components/autofill/core/browser/form_structure_unittest.cc |
| @@ -2359,4 +2359,45 @@ TEST(FormStructureTest, SkipFieldTest) { |
| EXPECT_EQ(kResponse, encoded_xml); |
| } |
| +TEST(FormStructureTest, PossibleValues) { |
| + FormData form_data; |
| + FormFieldData field; |
| + field.autocomplete_attribute = "billing country"; |
| + field.option_contents.push_back(ASCIIToUTF16("Down Under")); |
| + field.option_values.push_back(ASCIIToUTF16("AU")); |
| + field.option_contents.push_back(ASCIIToUTF16("Fr")); |
| + field.option_values.push_back(ASCIIToUTF16("")); |
| + field.option_contents.push_back(ASCIIToUTF16("Germany")); |
| + field.option_values.push_back(ASCIIToUTF16("GRMNY")); |
| + form_data.fields.push_back(field); |
| + FormStructure form_structure(form_data); |
| + |
| + bool unused; |
| + form_structure.ParseFieldTypesFromAutocompleteAttributes(&unused, &unused); |
| + |
| + // All values in <option> value= or contents are returned, set to upper case. |
| + std::set<base::string16> possible_values = |
| + form_structure.PossibleValues(ADDRESS_BILLING_COUNTRY); |
| + EXPECT_EQ(5U, possible_values.size()); |
| + EXPECT_NE(possible_values.end(), possible_values.find(ASCIIToUTF16("AU"))); |
| + EXPECT_NE(possible_values.end(), possible_values.find(ASCIIToUTF16("FR"))); |
| + EXPECT_NE(possible_values.end(), |
| + possible_values.find(ASCIIToUTF16("DOWN UNDER"))); |
| + EXPECT_NE(possible_values.end(), |
| + possible_values.find(ASCIIToUTF16("GERMANY"))); |
| + EXPECT_NE(possible_values.end(), possible_values.find(ASCIIToUTF16("GRMNY"))); |
| + EXPECT_EQ(possible_values.end(), possible_values.find(ASCIIToUTF16("Fr"))); |
| + EXPECT_EQ(possible_values.end(), possible_values.find(ASCIIToUTF16("DE"))); |
| + |
| + // No field for the given type; empty value set. |
| + EXPECT_EQ(0U, form_structure.PossibleValues(ADDRESS_HOME_COUNTRY).size()); |
| + |
| + // A freeform input (<input>) allows any value (overriding other <select>s). |
| + FormFieldData freeform_field; |
| + freeform_field.autocomplete_attribute = "billing country"; |
| + form_data.fields.push_back(freeform_field); |
| + FormStructure form_structure2(form_data); |
| + EXPECT_EQ(0U, form_structure2.PossibleValues(ADDRESS_BILLING_COUNTRY).size()); |
|
Ilya Sherman
2014/03/05 23:30:57
You probably need to call ParseFieldTypesFromAutoc
Evan Stade
2014/03/06 01:13:44
ah, yes. Thanks.
|
| +} |
| + |
| } // namespace autofill |