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

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

Issue 1059173002: Make AutofillField::FindValueInSelectControl() handle non-ASCII values. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 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
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 cb61fcdb4e6b30c6cd47c4fd1839756df3dd2e71..36096f20f4b014b9fc22d9a953900124bec78b07 100644
--- a/components/autofill/core/browser/autofill_field_unittest.cc
+++ b/components/autofill/core/browser/autofill_field_unittest.cc
@@ -4,9 +4,8 @@
#include "components/autofill/core/browser/autofill_field.h"
-#include "base/format_macros.h"
+#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
-#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
#include "components/autofill/core/browser/autofill_type.h"
#include "components/autofill/core/browser/field_types.h"
@@ -23,9 +22,8 @@ namespace {
FormFieldData GenerateSelectFieldWithOptions(const char* const* options,
size_t options_size) {
std::vector<base::string16> options16(options_size);
- for (size_t i = 0; i < options_size; ++i) {
- options16[i] = ASCIIToUTF16(options[i]);
- }
+ for (size_t i = 0; i < options_size; ++i)
+ options16[i] = UTF8ToUTF16(options[i]);
FormFieldData form_field;
form_field.form_control_type = "select-one";
@@ -171,9 +169,8 @@ TEST(AutofillFieldTest, FillSelectControlByValue) {
// Set semantically empty contents for each option, so that only the values
// can be used for matching.
- for (size_t i = 0; i < field.option_contents.size(); ++i) {
- field.option_contents[i] = ASCIIToUTF16(base::StringPrintf("%" PRIuS, i));
- }
+ for (size_t i = 0; i < field.option_contents.size(); ++i)
+ field.option_contents[i] = base::SizeTToString16(i);
AutofillField::FillFormField(
field, ASCIIToUTF16("Meenie"), "en-US", "en-US", &field);
@@ -190,9 +187,8 @@ TEST(AutofillFieldTest, FillSelectControlByContents) {
// Set semantically empty values for each option, so that only the contents
// can be used for matching.
- for (size_t i = 0; i < field.option_values.size(); ++i) {
- field.option_values[i] = ASCIIToUTF16(base::StringPrintf("%" PRIuS, i));
- }
+ for (size_t i = 0; i < field.option_values.size(); ++i)
+ field.option_values[i] = base::SizeTToString16(i);
AutofillField::FillFormField(
field, ASCIIToUTF16("Miney"), "en-US", "en-US", &field);
@@ -393,7 +389,7 @@ TEST(AutofillFieldTest, FillSelectControlWithAbbreviatedMonthName) {
TEST(AutofillFieldTest, FillSelectControlWithFullMonthName) {
const char* const kMonthsFull[] = {
- "January","February", "March", "April", "May", "June",
+ "January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December",
};
AutofillField field(
@@ -622,5 +618,59 @@ TEST(AutofillFieldTest, FillCreditCardNumberWithUnequalSizeSplits) {
EXPECT_EQ(ASCIIToUTF16(test.card_number_), cc_number_full.value);
}
+TEST(AutofillFieldTest, FindValueInSelectControl) {
+ const size_t kBadIndex = 1000;
+
+ {
+ const char* const kCountries[] = {
+ "Albania", "Canada"
+ };
+ FormFieldData field(
+ GenerateSelectFieldWithOptions(kCountries, arraysize(kCountries)));
+ size_t index = kBadIndex;
+ bool ret = AutofillField::FindValueInSelectControl(
+ field, ASCIIToUTF16("Canada"), &index);
+ EXPECT_TRUE(ret);
+ EXPECT_EQ(1U, index);
+
+ index = kBadIndex;
+ ret = AutofillField::FindValueInSelectControl(
+ field, ASCIIToUTF16("CANADA"), &index);
+ EXPECT_TRUE(ret);
+ EXPECT_EQ(1U, index);
+
+ index = kBadIndex;
+ ret = AutofillField::FindValueInSelectControl(
+ field, ASCIIToUTF16("Canadia"), &index);
+ EXPECT_FALSE(ret);
+ EXPECT_EQ(kBadIndex, index);
+ }
+
+ {
+ const char* const kProvinces[] = {
+ "ALBERTA", "QUÉBEC", "NOVA SCOTIA",
+ };
+ FormFieldData field(
+ GenerateSelectFieldWithOptions(kProvinces, arraysize(kProvinces)));
+ size_t index = kBadIndex;
+ bool ret = AutofillField::FindValueInSelectControl(
+ field, ASCIIToUTF16("alberta"), &index);
+ EXPECT_TRUE(ret);
+ EXPECT_EQ(0U, index);
+
+ index = kBadIndex;
+ ret = AutofillField::FindValueInSelectControl(
+ field, UTF8ToUTF16("québec"), &index);
+ EXPECT_TRUE(ret);
+ EXPECT_EQ(1U, index);
+
+ index = kBadIndex;
+ ret = AutofillField::FindValueInSelectControl(
+ field, UTF8ToUTF16("NoVaScOtIa"), &index);
+ EXPECT_TRUE(ret);
+ EXPECT_EQ(2U, index);
+ }
+}
+
} // namespace
} // namespace autofill

Powered by Google App Engine
This is Rietveld 408576698