diff options
Diffstat (limited to 'chrome/browser')
-rw-r--r-- | chrome/browser/autofill/name_field.cc | 20 | ||||
-rw-r--r-- | chrome/browser/autofill/name_field_unittest.cc | 52 |
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 |