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

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

Issue 178263004: rAc - Only show countries we're able to fill in. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: add FormStructure unit test Created 6 years, 10 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/form_structure.cc ('k') | components/autofill/core/common/form_data.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « components/autofill/core/browser/form_structure.cc ('k') | components/autofill/core/common/form_data.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698