diff options
author | isherman@chromium.org <isherman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-01 08:16:22 +0000 |
---|---|---|
committer | isherman@chromium.org <isherman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-01 08:16:22 +0000 |
commit | 5af3086b6da03588f8e1f1642d8977c9bddd7060 (patch) | |
tree | 9d219829db873b4ba4f16a32c14a36fe8422ef9b /chrome/browser/autofill | |
parent | af77b1800f5f07ba8f23867d66b4649886414caf (diff) | |
download | chromium_src-5af3086b6da03588f8e1f1642d8977c9bddd7060.zip chromium_src-5af3086b6da03588f8e1f1642d8977c9bddd7060.tar.gz chromium_src-5af3086b6da03588f8e1f1642d8977c9bddd7060.tar.bz2 |
[Autofill] Fall back to filling a 2-digit year if filling a 4-digit year fails.
BUG=123523
TEST=unit tested
Review URL: https://chromiumcodereview.appspot.com/11361002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@165310 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/autofill')
-rw-r--r-- | chrome/browser/autofill/select_control_handler.cc | 12 | ||||
-rw-r--r-- | chrome/browser/autofill/select_control_handler_unittest.cc | 42 |
2 files changed, 39 insertions, 15 deletions
diff --git a/chrome/browser/autofill/select_control_handler.cc b/chrome/browser/autofill/select_control_handler.cc index 7006e47..7779b2d 100644 --- a/chrome/browser/autofill/select_control_handler.cc +++ b/chrome/browser/autofill/select_control_handler.cc @@ -232,12 +232,18 @@ void FillSelectControl(const FormGroup& form_group, return; } - if (type == ADDRESS_HOME_STATE || type == ADDRESS_BILLING_STATE) + if (type == ADDRESS_HOME_STATE || type == ADDRESS_BILLING_STATE) { FillStateSelectControl(field_text, field); - else if (type == ADDRESS_HOME_COUNTRY || type == ADDRESS_BILLING_COUNTRY) + } else if (type == ADDRESS_HOME_COUNTRY || type == ADDRESS_BILLING_COUNTRY) { FillCountrySelectControl(form_group, field); - else if (type == CREDIT_CARD_EXP_MONTH) + } else if (type == CREDIT_CARD_EXP_MONTH) { FillExpirationMonthSelectControl(field_text, field); + } else if (type == CREDIT_CARD_EXP_4_DIGIT_YEAR) { + // Attempt to fill the year as a 2-digit year. This compensates for the + // fact that our heuristics do not always correctly detect when a website + // requests a 2-digit rather than a 4-digit year. + FillSelectControl(form_group, CREDIT_CARD_EXP_2_DIGIT_YEAR, field); + } return; } diff --git a/chrome/browser/autofill/select_control_handler_unittest.cc b/chrome/browser/autofill/select_control_handler_unittest.cc index 603c66a..2c319c4 100644 --- a/chrome/browser/autofill/select_control_handler_unittest.cc +++ b/chrome/browser/autofill/select_control_handler_unittest.cc @@ -11,9 +11,7 @@ #include "chrome/common/form_field_data.h" #include "testing/gtest/include/gtest/gtest.h" -typedef testing::Test SelectControlHandlerTest; - -TEST_F(SelectControlHandlerTest, CreditCardMonthExact) { +TEST(SelectControlHandlerTest, CreditCardMonthExact) { const char* const kMonthsNumeric[] = { "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", }; @@ -32,7 +30,7 @@ TEST_F(SelectControlHandlerTest, CreditCardMonthExact) { EXPECT_EQ(ASCIIToUTF16("01"), field.value); } -TEST_F(SelectControlHandlerTest, CreditCardMonthAbbreviated) { +TEST(SelectControlHandlerTest, CreditCardMonthAbbreviated) { const char* const kMonthsAbbreviated[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", @@ -52,7 +50,7 @@ TEST_F(SelectControlHandlerTest, CreditCardMonthAbbreviated) { EXPECT_EQ(ASCIIToUTF16("Jan"), field.value); } -TEST_F(SelectControlHandlerTest, CreditCardMonthFull) { +TEST(SelectControlHandlerTest, CreditCardMonthFull) { const char* const kMonthsFull[] = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December", @@ -72,7 +70,7 @@ TEST_F(SelectControlHandlerTest, CreditCardMonthFull) { EXPECT_EQ(ASCIIToUTF16("January"), field.value); } -TEST_F(SelectControlHandlerTest, CreditCardMonthNumeric) { +TEST(SelectControlHandlerTest, CreditCardMonthNumeric) { const char* const kMonthsNumeric[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", }; @@ -91,7 +89,27 @@ TEST_F(SelectControlHandlerTest, CreditCardMonthNumeric) { EXPECT_EQ(ASCIIToUTF16("1"), field.value); } -TEST_F(SelectControlHandlerTest, AddressCountryFull) { +TEST(SelectControlHandlerTest, CreditCardTwoDigitYear) { + const char* const kYears[] = { + "12", "13", "14", "15", "16", "17", "18", "19" + }; + std::vector<string16> options(arraysize(kYears)); + for (size_t i = 0; i < arraysize(kYears); ++i) + options[i] = ASCIIToUTF16(kYears[i]); + + FormFieldData field; + field.form_control_type = "select-one"; + field.option_values = options; + field.option_contents = options; + + CreditCard credit_card; + credit_card.SetInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR, ASCIIToUTF16("2017")); + autofill::FillSelectControl(credit_card, CREDIT_CARD_EXP_4_DIGIT_YEAR, + &field); + EXPECT_EQ(ASCIIToUTF16("17"), field.value); +} + +TEST(SelectControlHandlerTest, AddressCountryFull) { const char* const kCountries[] = { "Albania", "Canada" }; @@ -110,7 +128,7 @@ TEST_F(SelectControlHandlerTest, AddressCountryFull) { EXPECT_EQ(ASCIIToUTF16("Canada"), field.value); } -TEST_F(SelectControlHandlerTest, AddressCountryAbbrev) { +TEST(SelectControlHandlerTest, AddressCountryAbbrev) { const char* const kCountries[] = { "AL", "CA" }; @@ -129,7 +147,7 @@ TEST_F(SelectControlHandlerTest, AddressCountryAbbrev) { EXPECT_EQ(ASCIIToUTF16("CA"), field.value); } -TEST_F(SelectControlHandlerTest, AddressStateFull) { +TEST(SelectControlHandlerTest, AddressStateFull) { const char* const kStates[] = { "Alabama", "California" }; @@ -148,7 +166,7 @@ TEST_F(SelectControlHandlerTest, AddressStateFull) { EXPECT_EQ(ASCIIToUTF16("California"), field.value); } -TEST_F(SelectControlHandlerTest, AddressStateAbbrev) { +TEST(SelectControlHandlerTest, AddressStateAbbrev) { const char* const kStates[] = { "AL", "CA" }; @@ -167,7 +185,7 @@ TEST_F(SelectControlHandlerTest, AddressStateAbbrev) { EXPECT_EQ(ASCIIToUTF16("CA"), field.value); } -TEST_F(SelectControlHandlerTest, FillByValue) { +TEST(SelectControlHandlerTest, FillByValue) { const char* const kStates[] = { "Alabama", "California" }; @@ -189,7 +207,7 @@ TEST_F(SelectControlHandlerTest, FillByValue) { EXPECT_EQ(ASCIIToUTF16("California"), field.value); } -TEST_F(SelectControlHandlerTest, FillByContents) { +TEST(SelectControlHandlerTest, FillByContents) { const char* const kStates[] = { "Alabama", "California" }; |