summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser')
-rw-r--r--chrome/browser/autofill/name_field.cc20
-rw-r--r--chrome/browser/autofill/name_field_unittest.cc52
2 files changed, 61 insertions, 11 deletions
diff --git a/chrome/browser/autofill/name_field.cc b/chrome/browser/autofill/name_field.cc
index e04b4c3..7d87030 100644
--- a/chrome/browser/autofill/name_field.cc
+++ b/chrome/browser/autofill/name_field.cc
@@ -74,9 +74,9 @@ FirstLastNameField* FirstLastNameField::Parse2(
// so we match "initials" here (and just fill in a first name there,
// American-style).
// The ".*first$" matches fields ending in "first" (example in sample8.html).
- if (!ParseText(&q,
- ASCIIToUTF16("first name|firstname|initials|fname|.*first$"),
- &v.first_name_))
+ string16 match =
+ ASCIIToUTF16("first name|first_name|firstname|initials|fname|.*first$");
+ if (!ParseText(&q, match, &v.first_name_))
return NULL;
// We check for a middle initial before checking for a middle name
@@ -84,19 +84,17 @@ FirstLastNameField* FirstLastNameField::Parse2(
// as both (the label text is "MI" and the element name is
// "txtmiddlename"); such a field probably actually represents a
// middle initial.
- if (ParseText(&q,
- ASCIIToUTF16("^mi$|middle initial|middleinitial|m.i."),
- &v.middle_name_)) {
+ match = ASCIIToUTF16("^mi$|middle initial|middleinitial|m.i.");
+ if (ParseText(&q, match, &v.middle_name_)) {
v.middle_initial_ = true;
} else {
- ParseText(
- &q, ASCIIToUTF16("middle name|mname|middlename"), &v.middle_name_);
+ match = ASCIIToUTF16("middle name|mname|middlename");
+ ParseText(&q, match, &v.middle_name_);
}
// The ".*last$" matches fields ending in "last" (example in sample8.html).
- if (!ParseText(&q,
- ASCIIToUTF16("last name|lastname|lname|surname|.*last$"),
- &v.last_name_))
+ match = ASCIIToUTF16("last name|last_name|lastname|lname|surname|.*last$");
+ if (!ParseText(&q, match, &v.last_name_))
return NULL;
*iter = q;
diff --git a/chrome/browser/autofill/name_field_unittest.cc b/chrome/browser/autofill/name_field_unittest.cc
index d338c83..f8a3d1c 100644
--- a/chrome/browser/autofill/name_field_unittest.cc
+++ b/chrome/browser/autofill/name_field_unittest.cc
@@ -95,4 +95,56 @@ TEST_F(NameFieldTest, FirstMiddleLast2) {
EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name3")]);
}
+TEST_F(NameFieldTest, FirstLast) {
+ list_.push_back(
+ new AutoFillField(webkit_glue::FormField(string16(),
+ ASCIIToUTF16("first_name"),
+ string16(),
+ ASCIIToUTF16("text")),
+ ASCIIToUTF16("name1")));
+ list_.push_back(
+ new AutoFillField(webkit_glue::FormField(string16(),
+ ASCIIToUTF16("last_name"),
+ string16(),
+ ASCIIToUTF16("text")),
+ ASCIIToUTF16("name2")));
+ list_.push_back(NULL);
+ iter_ = list_.begin();
+ field_.reset(NameField::Parse(&iter_, false));
+ ASSERT_NE(static_cast<NameField*>(NULL), field_.get());
+ ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_));
+ ASSERT_TRUE(
+ field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end());
+ EXPECT_EQ(NAME_FIRST, field_type_map_[ASCIIToUTF16("name1")]);
+ ASSERT_TRUE(
+ field_type_map_.find(ASCIIToUTF16("name2")) != field_type_map_.end());
+ EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name2")]);
+}
+
+TEST_F(NameFieldTest, FirstLast2) {
+ list_.push_back(
+ new AutoFillField(webkit_glue::FormField(ASCIIToUTF16("Name"),
+ ASCIIToUTF16("first_name"),
+ string16(),
+ ASCIIToUTF16("text")),
+ ASCIIToUTF16("name1")));
+ list_.push_back(
+ new AutoFillField(webkit_glue::FormField(ASCIIToUTF16("Name"),
+ ASCIIToUTF16("last_name"),
+ string16(),
+ ASCIIToUTF16("text")),
+ ASCIIToUTF16("name2")));
+ list_.push_back(NULL);
+ iter_ = list_.begin();
+ field_.reset(NameField::Parse(&iter_, false));
+ ASSERT_NE(static_cast<NameField*>(NULL), field_.get());
+ ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_));
+ ASSERT_TRUE(
+ field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end());
+ EXPECT_EQ(NAME_FIRST, field_type_map_[ASCIIToUTF16("name1")]);
+ ASSERT_TRUE(
+ field_type_map_.find(ASCIIToUTF16("name2")) != field_type_map_.end());
+ EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name2")]);
+}
+
} // namespace