summaryrefslogtreecommitdiffstats
path: root/chrome/browser/autofill
diff options
context:
space:
mode:
authordhollowa@chromium.org <dhollowa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-18 22:06:25 +0000
committerdhollowa@chromium.org <dhollowa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-18 22:06:25 +0000
commitdfe9ac84eae9b1beb904ba71e3542f9ee888de0f (patch)
treeac94eef95942ffdd8f245a3b8fffffbfa637f5dd /chrome/browser/autofill
parent46c75210a00ef26b6d6fdc655600a34e9717d009 (diff)
downloadchromium_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.grd2
-rw-r--r--chrome/browser/autofill/phone_field.cc5
-rw-r--r--chrome/browser/autofill/phone_field.h1
-rw-r--r--chrome/browser/autofill/phone_field_unittest.cc40
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"),