 Chromium Code Reviews
 Chromium Code Reviews Issue 178263004:
  rAc - Only show countries we're able to fill in.  (Closed) 
  Base URL: svn://svn.chromium.org/chrome/trunk/src
    
  
    Issue 178263004:
  rAc - Only show countries we're able to fill in.  (Closed) 
  Base URL: svn://svn.chromium.org/chrome/trunk/src| 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 |