From 2a958550ec25aeb2da7fa893015133f2aae32f41 Mon Sep 17 00:00:00 2001 From: "isherman@chromium.org" Date: Thu, 5 May 2011 04:01:21 +0000 Subject: Refactor Autofill parsing code. Most notably, add a helper class for parsing with lookahead. * Adds an AutofillScanner class to help with lookahead parsing. * Remove the NULL-termination from FormStructure's fields vector * Remove some redundant DCHECKs * Refactor PersonalDataManager::ImportFormData() to take a single form, not a vector of forms. * Move EmailField class to its own file * Remove some obsolete billing/shipping address distinguishing code * Refactor the code to remove the really wonky FormFieldSet() class * Refactor some interfaces to take |size_t| rather than |int| * Remove some unused fields from FormStructure * Const-correctness BUG=none TEST=none Review URL: http://codereview.chromium.org/6910018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@84211 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/autofill/phone_field_unittest.cc | 61 ++++++++++--------------- 1 file changed, 25 insertions(+), 36 deletions(-) (limited to 'chrome/browser/autofill/phone_field_unittest.cc') diff --git a/chrome/browser/autofill/phone_field_unittest.cc b/chrome/browser/autofill/phone_field_unittest.cc index daa598b..d8cfba7 100644 --- a/chrome/browser/autofill/phone_field_unittest.cc +++ b/chrome/browser/autofill/phone_field_unittest.cc @@ -6,6 +6,7 @@ #include "base/memory/scoped_vector.h" #include "base/utf_string_conversions.h" #include "chrome/browser/autofill/autofill_field.h" +#include "chrome/browser/autofill/autofill_scanner.h" #include "chrome/browser/autofill/phone_field.h" #include "testing/gtest/include/gtest/gtest.h" #include "webkit/glue/form_field.h" @@ -27,17 +28,15 @@ class PhoneFieldTest : public testing::Test { }; TEST_F(PhoneFieldTest, Empty) { - list_.push_back(NULL); - iter_ = list_.begin(); - field_.reset(PhoneField::Parse(&iter_, false)); + AutofillScanner scanner(list_.get()); + field_.reset(PhoneField::Parse(&scanner, false)); ASSERT_EQ(static_cast(NULL), field_.get()); } TEST_F(PhoneFieldTest, NonParse) { list_.push_back(new AutofillField); - list_.push_back(NULL); - iter_ = list_.begin(); - field_.reset(PhoneField::Parse(&iter_, false)); + AutofillScanner scanner(list_.get()); + field_.reset(PhoneField::Parse(&scanner, false)); ASSERT_EQ(static_cast(NULL), field_.get()); } @@ -50,9 +49,8 @@ TEST_F(PhoneFieldTest, ParseOneLinePhone) { 0, false), ASCIIToUTF16("phone1"))); - list_.push_back(NULL); - iter_ = list_.begin(); - field_.reset(PhoneField::Parse(&iter_, false)); + AutofillScanner scanner(list_.get()); + field_.reset(PhoneField::Parse(&scanner, false)); ASSERT_NE(static_cast(NULL), field_.get()); ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_)); ASSERT_TRUE( @@ -69,9 +67,8 @@ TEST_F(PhoneFieldTest, ParseOneLinePhoneEcml) { 0, false), ASCIIToUTF16("phone1"))); - list_.push_back(NULL); - iter_ = list_.begin(); - field_.reset(PhoneField::Parse(&iter_, true)); + AutofillScanner scanner(list_.get()); + field_.reset(PhoneField::Parse(&scanner, true)); ASSERT_NE(static_cast(NULL), field_.get()); ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_)); ASSERT_TRUE( @@ -96,9 +93,8 @@ TEST_F(PhoneFieldTest, ParseTwoLinePhone) { 0, false), ASCIIToUTF16("phone1"))); - list_.push_back(NULL); - iter_ = list_.begin(); - field_.reset(PhoneField::Parse(&iter_, false)); + AutofillScanner scanner(list_.get()); + field_.reset(PhoneField::Parse(&scanner, false)); ASSERT_NE(static_cast(NULL), field_.get()); ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_)); ASSERT_TRUE( @@ -127,9 +123,8 @@ TEST_F(PhoneFieldTest, ParseTwoLinePhoneEcmlShipTo) { 0, false), ASCIIToUTF16("phone1"))); - list_.push_back(NULL); - iter_ = list_.begin(); - field_.reset(PhoneField::Parse(&iter_, false)); + AutofillScanner scanner(list_.get()); + field_.reset(PhoneField::Parse(&scanner, false)); ASSERT_NE(static_cast(NULL), field_.get()); ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_)); ASSERT_TRUE( @@ -158,9 +153,8 @@ TEST_F(PhoneFieldTest, ParseTwoLinePhoneEcmlBillTo) { 0, false), ASCIIToUTF16("phone1"))); - list_.push_back(NULL); - iter_ = list_.begin(); - field_.reset(PhoneField::Parse(&iter_, false)); + AutofillScanner scanner(list_.get()); + field_.reset(PhoneField::Parse(&scanner, false)); ASSERT_NE(static_cast(NULL), field_.get()); ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_)); ASSERT_TRUE( @@ -209,9 +203,8 @@ TEST_F(PhoneFieldTest, ThreePartPhoneNumber) { 0, false), ASCIIToUTF16("ext1"))); - list_.push_back(NULL); - iter_ = list_.begin(); - field_.reset(PhoneField::Parse(&iter_, false)); + AutofillScanner scanner(list_.get()); + field_.reset(PhoneField::Parse(&scanner, false)); ASSERT_NE(static_cast(NULL), field_.get()); ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_)); ASSERT_TRUE( @@ -253,9 +246,8 @@ TEST_F(PhoneFieldTest, ThreePartPhoneNumberPrefixSuffix) { 0, false), ASCIIToUTF16("suffix1"))); - list_.push_back(NULL); - iter_ = list_.begin(); - field_.reset(PhoneField::Parse(&iter_, false)); + AutofillScanner scanner(list_.get()); + field_.reset(PhoneField::Parse(&scanner, false)); ASSERT_NE(static_cast(NULL), field_.get()); ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_)); ASSERT_TRUE( @@ -278,9 +270,8 @@ TEST_F(PhoneFieldTest, ParseOneLineFax) { 0, false), ASCIIToUTF16("fax1"))); - list_.push_back(NULL); - iter_ = list_.begin(); - field_.reset(PhoneField::Parse(&iter_, false)); + AutofillScanner scanner(list_.get()); + field_.reset(PhoneField::Parse(&scanner, false)); ASSERT_NE(static_cast(NULL), field_.get()); ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_)); ASSERT_TRUE( @@ -305,9 +296,8 @@ TEST_F(PhoneFieldTest, ParseTwoLineFax) { 0, false), ASCIIToUTF16("fax1"))); - list_.push_back(NULL); - iter_ = list_.begin(); - field_.reset(PhoneField::Parse(&iter_, false)); + AutofillScanner scanner(list_.get()); + field_.reset(PhoneField::Parse(&scanner, false)); ASSERT_NE(static_cast(NULL), field_.get()); ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_)); ASSERT_TRUE( @@ -344,9 +334,8 @@ TEST_F(PhoneFieldTest, ThreePartFaxNumberPrefixSuffix) { 0, false), ASCIIToUTF16("suffix1"))); - list_.push_back(NULL); - iter_ = list_.begin(); - field_.reset(PhoneField::Parse(&iter_, false)); + AutofillScanner scanner(list_.get()); + field_.reset(PhoneField::Parse(&scanner, false)); ASSERT_NE(static_cast(NULL), field_.get()); ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_)); ASSERT_TRUE( -- cgit v1.1