diff options
author | dhollowa@chromium.org <dhollowa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-18 22:06:25 +0000 |
---|---|---|
committer | dhollowa@chromium.org <dhollowa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-18 22:06:25 +0000 |
commit | dfe9ac84eae9b1beb904ba71e3542f9ee888de0f (patch) | |
tree | ac94eef95942ffdd8f245a3b8fffffbfa637f5dd /chrome/browser/autofill | |
parent | 46c75210a00ef26b6d6fdc655600a34e9717d009 (diff) | |
download | chromium_src-dfe9ac84eae9b1beb904ba71e3542f9ee888de0f.zip chromium_src-dfe9ac84eae9b1beb904ba71e3542f9ee888de0f.tar.gz chromium_src-dfe9ac84eae9b1beb904ba71e3542f9ee888de0f.tar.bz2 |
Autofill heuristics checkout files for 02_checkout_advanceautoparts.com.html
Fixes label inferencing logic for the table case. The code should start looking at the previous table element, not the current element.
BUG=86414
TEST=FormStructureBrowserTest.* with 02_checkout_advanceautoparts.com.html
Review URL: http://codereview.chromium.org/7201010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@89609 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/autofill')
-rw-r--r-- | chrome/browser/autofill/autofill_resources.grd | 2 | ||||
-rw-r--r-- | chrome/browser/autofill/phone_field.cc | 5 | ||||
-rw-r--r-- | chrome/browser/autofill/phone_field.h | 1 | ||||
-rw-r--r-- | chrome/browser/autofill/phone_field_unittest.cc | 40 |
4 files changed, 47 insertions, 1 deletions
diff --git a/chrome/browser/autofill/autofill_resources.grd b/chrome/browser/autofill/autofill_resources.grd index 2e07875..4f33b79 100644 --- a/chrome/browser/autofill/autofill_resources.grd +++ b/chrome/browser/autofill/autofill_resources.grd @@ -73,7 +73,7 @@ number|card.?#|card.?no|ccnum<!-- de-DE -->|nummer<!-- es -->|credito|numero|número<!-- fr-FR -->|numéro<!-- ja-JP -->|カード番号<!-- ru -->|Номер.*карты<!-- zh-CN -->|信用卡号|信用卡号码<!-- zh-TW -->|信用卡卡號<!-- ko-KR -->|카드 </message> <message name="IDS_AUTOFILL_CARD_CVC_RE"> - verification|card identification|cvn|security code|cvv code|cvc + verification|card identification|security code|cvn|cvv|cvc </message> <message name="IDS_AUTOFILL_EXPIRATION_MONTH_RE"> expir|exp.*month|exp.*date|ccmonth<!-- de-DE -->|gueltig|gültig|monat<!-- es -->|fecha<!-- fr-FR -->|date.*exp<!-- it-IT -->|scadenza<!-- ja-JP -->|有効期限<!-- pt-BR, pt-PT -->|validade<!-- ru -->|Срок действия карты<!-- zh-CN -->|月 diff --git a/chrome/browser/autofill/phone_field.cc b/chrome/browser/autofill/phone_field.cc index 064dfc6..7a064dd 100644 --- a/chrome/browser/autofill/phone_field.cc +++ b/chrome/browser/autofill/phone_field.cc @@ -37,6 +37,11 @@ PhoneField::Parser PhoneField::phone_field_grammars_[] = { { PhoneField::REGEX_AREA, PhoneField::FIELD_AREA_CODE, 0 }, { PhoneField::REGEX_PHONE, PhoneField::FIELD_PHONE, 0 }, { PhoneField::REGEX_SEPARATOR, FIELD_NONE, 0 }, + // \( <ac> \) <phone>:3 <suffix>:4 (Ext: <ext>)? + { PhoneField::REGEX_AREA_NOTEXT, PhoneField::FIELD_AREA_CODE, 3 }, + { PhoneField::REGEX_PREFIX_SEPARATOR, PhoneField::FIELD_PHONE, 3 }, + { PhoneField::REGEX_PHONE, PhoneField::FIELD_SUFFIX, 4 }, + { PhoneField::REGEX_SEPARATOR, FIELD_NONE, 0 }, // Phone: <cc> <ac>:3 - <phone>:3 - <suffix>:4 (Ext: <ext>)? { PhoneField::REGEX_PHONE, PhoneField::FIELD_COUNTRY_CODE, 0 }, { PhoneField::REGEX_PHONE, PhoneField::FIELD_AREA_CODE, 3 }, diff --git a/chrome/browser/autofill/phone_field.h b/chrome/browser/autofill/phone_field.h index 5dfedd3..e85182a 100644 --- a/chrome/browser/autofill/phone_field.h +++ b/chrome/browser/autofill/phone_field.h @@ -40,6 +40,7 @@ class PhoneField : public FormField { FRIEND_TEST_ALL_PREFIXES(PhoneFieldTest, ParseTwoLinePhoneEcmlBillTo); FRIEND_TEST_ALL_PREFIXES(PhoneFieldTest, ThreePartPhoneNumber); FRIEND_TEST_ALL_PREFIXES(PhoneFieldTest, ThreePartPhoneNumberPrefixSuffix); + FRIEND_TEST_ALL_PREFIXES(PhoneFieldTest, ThreePartPhoneNumberPrefixSuffix2); FRIEND_TEST_ALL_PREFIXES(PhoneFieldTest, ParseOneLineFax); FRIEND_TEST_ALL_PREFIXES(PhoneFieldTest, ParseTwoLineFax); FRIEND_TEST_ALL_PREFIXES(PhoneFieldTest, ThreePartFaxNumberPrefixSuffix); diff --git a/chrome/browser/autofill/phone_field_unittest.cc b/chrome/browser/autofill/phone_field_unittest.cc index d37f7da..c48b4c7 100644 --- a/chrome/browser/autofill/phone_field_unittest.cc +++ b/chrome/browser/autofill/phone_field_unittest.cc @@ -264,6 +264,46 @@ TEST_F(PhoneFieldTest, ThreePartPhoneNumberPrefixSuffix) { EXPECT_EQ(PHONE_HOME_NUMBER, field_type_map_[ASCIIToUTF16("suffix1")]); } +TEST_F(PhoneFieldTest, ThreePartPhoneNumberPrefixSuffix2) { + list_.push_back( + new AutofillField(webkit_glue::FormField(ASCIIToUTF16("("), + ASCIIToUTF16("phone1"), + string16(), + ASCIIToUTF16("text"), + 3, + false), + ASCIIToUTF16("phone1"))); + list_.push_back( + new AutofillField(webkit_glue::FormField(ASCIIToUTF16(")"), + ASCIIToUTF16("phone2"), + string16(), + ASCIIToUTF16("text"), + 3, + false), + ASCIIToUTF16("phone2"))); + list_.push_back( + new AutofillField(webkit_glue::FormField(string16(), + ASCIIToUTF16("phone3"), + string16(), + ASCIIToUTF16("text"), + 4, + false), + ASCIIToUTF16("phone3"))); + AutofillScanner scanner(list_.get()); + field_.reset(Parse(&scanner, false)); + ASSERT_NE(static_cast<PhoneField*>(NULL), field_.get()); + ASSERT_TRUE(field_->ClassifyField(&field_type_map_)); + ASSERT_TRUE( + field_type_map_.find(ASCIIToUTF16("phone1")) != field_type_map_.end()); + EXPECT_EQ(PHONE_HOME_CITY_CODE, field_type_map_[ASCIIToUTF16("phone1")]); + ASSERT_TRUE( + field_type_map_.find(ASCIIToUTF16("phone2")) != field_type_map_.end()); + EXPECT_EQ(PHONE_HOME_NUMBER, field_type_map_[ASCIIToUTF16("phone2")]); + ASSERT_TRUE( + field_type_map_.find(ASCIIToUTF16("phone3")) != field_type_map_.end()); + EXPECT_EQ(PHONE_HOME_NUMBER, field_type_map_[ASCIIToUTF16("phone3")]); +} + TEST_F(PhoneFieldTest, ParseOneLineFax) { list_.push_back( new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Fax"), |