diff options
author | jhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-08 02:11:36 +0000 |
---|---|---|
committer | jhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-08 02:11:36 +0000 |
commit | 7519f1aba624283d5bbde1ecf5de6b8624b691dd (patch) | |
tree | 61b4c3f881c3d655ddbc90e2163d82b0ba1aba53 /chrome/browser/autofill | |
parent | 9a421428e238a6dbb9ea9c2f7fd2dde97385252b (diff) | |
download | chromium_src-7519f1aba624283d5bbde1ecf5de6b8624b691dd.zip chromium_src-7519f1aba624283d5bbde1ecf5de6b8624b691dd.tar.gz chromium_src-7519f1aba624283d5bbde1ecf5de6b8624b691dd.tar.bz2 |
AutoFill: Only match the exact string 'mi' when matching a middle initial field.
BUG=38325
TEST=NameFieldTest.FirstMiddleLast
Review URL: http://codereview.chromium.org/1530025
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@43916 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/autofill')
-rw-r--r-- | chrome/browser/autofill/address_field_unittest.cc | 1 | ||||
-rw-r--r-- | chrome/browser/autofill/name_field.cc | 2 | ||||
-rw-r--r-- | chrome/browser/autofill/name_field_unittest.cc | 63 |
3 files changed, 64 insertions, 2 deletions
diff --git a/chrome/browser/autofill/address_field_unittest.cc b/chrome/browser/autofill/address_field_unittest.cc index 2d98fd0..7ecacbe 100644 --- a/chrome/browser/autofill/address_field_unittest.cc +++ b/chrome/browser/autofill/address_field_unittest.cc @@ -6,7 +6,6 @@ #include "base/scoped_vector.h" #include "chrome/browser/autofill/address_field.h" #include "testing/gtest/include/gtest/gtest.h" -#include "third_party/WebKit/WebKit/chromium/public/WebInputElement.h" #include "webkit/glue/form_field.h" namespace { diff --git a/chrome/browser/autofill/name_field.cc b/chrome/browser/autofill/name_field.cc index 38c3c33..84243d6 100644 --- a/chrome/browser/autofill/name_field.cc +++ b/chrome/browser/autofill/name_field.cc @@ -85,7 +85,7 @@ FirstLastNameField* FirstLastNameField::Parse2( // "txtmiddlename"); such a field probably actually represents a // middle initial. if (ParseText(&q, - ASCIIToUTF16("mi|middle initial|middleinitial|m.i."), + ASCIIToUTF16("^mi$|middle initial|middleinitial|m.i."), &v.middle_name_)) { v.middle_initial_ = true; } else { diff --git a/chrome/browser/autofill/name_field_unittest.cc b/chrome/browser/autofill/name_field_unittest.cc new file mode 100644 index 0000000..9503512 --- /dev/null +++ b/chrome/browser/autofill/name_field_unittest.cc @@ -0,0 +1,63 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "base/scoped_ptr.h" +#include "base/scoped_vector.h" +#include "chrome/browser/autofill/autofill_field.h" +#include "chrome/browser/autofill/name_field.h" +#include "testing/gtest/include/gtest/gtest.h" +#include "webkit/glue/form_field.h" + +namespace { + +class NameFieldTest : public testing::Test { + public: + NameFieldTest() {} + + protected: + ScopedVector<AutoFillField> list_; + scoped_ptr<NameField> field_; + FieldTypeMap field_type_map_; + std::vector<AutoFillField*>::const_iterator iter_; + + private: + DISALLOW_COPY_AND_ASSIGN(NameFieldTest); +}; + +TEST_F(NameFieldTest, FirstMiddleLast) { + list_.push_back( + new AutoFillField(webkit_glue::FormField(ASCIIToUTF16("First Name"), + ASCIIToUTF16("First"), + string16(), + ASCIIToUTF16("text")), + ASCIIToUTF16("name1"))); + list_.push_back( + new AutoFillField(webkit_glue::FormField(ASCIIToUTF16("Middle Name"), + ASCIIToUTF16("Middle"), + string16(), + ASCIIToUTF16("text")), + ASCIIToUTF16("name2"))); + list_.push_back( + new AutoFillField(webkit_glue::FormField(ASCIIToUTF16("Last Name"), + ASCIIToUTF16("Last"), + string16(), + ASCIIToUTF16("text")), + ASCIIToUTF16("name3"))); + 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_MIDDLE, field_type_map_[ASCIIToUTF16("name2")]); + ASSERT_TRUE( + field_type_map_.find(ASCIIToUTF16("name3")) != field_type_map_.end()); + EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name3")]); +} + +} // namespace |