diff options
author | benquan@chromium.org <benquan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-18 11:38:46 +0000 |
---|---|---|
committer | benquan@chromium.org <benquan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-18 11:38:46 +0000 |
commit | aafb593c5f710a4878788f89f2a4080a3fbaf42a (patch) | |
tree | b3499f7d3ef39f7ba600f0b077f15b41755710e8 /components | |
parent | 353e3cf4b4a3e57e759832120e3d285cd6ec3b01 (diff) | |
download | chromium_src-aafb593c5f710a4878788f89f2a4080a3fbaf42a.zip chromium_src-aafb593c5f710a4878788f89f2a4080a3fbaf42a.tar.gz chromium_src-aafb593c5f710a4878788f89f2a4080a3fbaf42a.tar.bz2 |
Fix static intialization issue and resubmit (16165002): Do not allow user input un supported card number in wallet mode.
BUG=175900
Review URL: https://chromiumcodereview.appspot.com/15819008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@206938 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'components')
-rw-r--r-- | components/autofill/browser/credit_card.cc | 45 | ||||
-rw-r--r-- | components/autofill/browser/credit_card.h | 5 | ||||
-rw-r--r-- | components/autofill/browser/credit_card_unittest.cc | 17 |
3 files changed, 43 insertions, 24 deletions
diff --git a/components/autofill/browser/credit_card.cc b/components/autofill/browser/credit_card.cc index 8a96fa9..93f9089 100644 --- a/components/autofill/browser/credit_card.cc +++ b/components/autofill/browser/credit_card.cc @@ -162,6 +162,29 @@ base::string16 CreditCard::TypeForDisplay(const std::string& type) { } // static +int CreditCard::IconResourceId(const std::string& type) { + if (type == kAmericanExpressCard) + return IDR_AUTOFILL_CC_AMEX; + if (type == kDinersCard) + return IDR_AUTOFILL_CC_DINERS; + if (type == kDiscoverCard) + return IDR_AUTOFILL_CC_DISCOVER; + if (type == kJCBCard) + return IDR_AUTOFILL_CC_JCB; + if (type == kMasterCard) + return IDR_AUTOFILL_CC_MASTERCARD; + if (type == kSoloCard) + return IDR_AUTOFILL_CC_SOLO; + if (type == kVisaCard) + return IDR_AUTOFILL_CC_VISA; + + // If you hit this DCHECK, the above list of cases needs to be updated to + // include a new card. + DCHECK_EQ(kGenericCard, type); + return IDR_AUTOFILL_CC_GENERIC; +} + +// static std::string CreditCard::GetCreditCardType(const base::string16& number) { // Don't check for a specific type if this is not a credit card number. if (!autofill::IsValidCreditCardNumber(number)) @@ -455,28 +478,6 @@ base::string16 CreditCard::TypeAndLastFourDigits() const { return type + ASCIIToUTF16(" - ") + digits; } -int CreditCard::IconResourceId() const { - if (type_ == kAmericanExpressCard) - return IDR_AUTOFILL_CC_AMEX; - if (type_ == kDinersCard) - return IDR_AUTOFILL_CC_DINERS; - if (type_ == kDiscoverCard) - return IDR_AUTOFILL_CC_DISCOVER; - if (type_ == kJCBCard) - return IDR_AUTOFILL_CC_JCB; - if (type_ == kMasterCard) - return IDR_AUTOFILL_CC_MASTERCARD; - if (type_ == kSoloCard) - return IDR_AUTOFILL_CC_SOLO; - if (type_ == kVisaCard) - return IDR_AUTOFILL_CC_VISA; - - // If you hit this DCHECK, the above list of cases needs to be updated to - // include a new card. - DCHECK_EQ(kGenericCard, type_); - return IDR_AUTOFILL_CC_GENERIC; -} - void CreditCard::operator=(const CreditCard& credit_card) { if (this == &credit_card) return; diff --git a/components/autofill/browser/credit_card.h b/components/autofill/browser/credit_card.h index 315d560..412f317 100644 --- a/components/autofill/browser/credit_card.h +++ b/components/autofill/browser/credit_card.h @@ -34,6 +34,9 @@ class CreditCard : public AutofillDataModel { // The user-visible type of the card, e.g. 'Mastercard'. static base::string16 TypeForDisplay(const std::string& type); + // The ResourceBundle ID for the appropriate credit card image. + static int IconResourceId(const std::string& type); + // The internal representation of credit card type. static std::string GetCreditCardType(const base::string16& number); @@ -70,8 +73,6 @@ class CreditCard : public AutofillDataModel { base::string16 TypeForDisplay() const; // A label for this credit card formatted as 'Cardname - 2345'. base::string16 TypeAndLastFourDigits() const; - // The ResourceBundle ID for the appropriate credit card image. - int IconResourceId() const; const std::string& type() const { return type_; } diff --git a/components/autofill/browser/credit_card_unittest.cc b/components/autofill/browser/credit_card_unittest.cc index b67ff3c..de8cb83 100644 --- a/components/autofill/browser/credit_card_unittest.cc +++ b/components/autofill/browser/credit_card_unittest.cc @@ -8,6 +8,7 @@ #include "components/autofill/browser/autofill_common_test.h" #include "components/autofill/browser/credit_card.h" #include "components/autofill/common/form_field_data.h" +#include "grit/webkit_resources.h" #include "testing/gtest/include/gtest/gtest.h" namespace autofill { @@ -155,6 +156,22 @@ TEST(CreditCardTest, Compare) { EXPECT_LT(0, b.Compare(a)); } +// Test we get the correct icon for each card type. +TEST(CreditCardTest, IconResourceId) { + EXPECT_EQ(IDR_AUTOFILL_CC_AMEX, + CreditCard::IconResourceId(kAmericanExpressCard)); + EXPECT_EQ(IDR_AUTOFILL_CC_DINERS, + CreditCard::IconResourceId(kDinersCard)); + EXPECT_EQ(IDR_AUTOFILL_CC_DISCOVER, + CreditCard::IconResourceId(kDiscoverCard)); + EXPECT_EQ(IDR_AUTOFILL_CC_JCB, + CreditCard::IconResourceId(kJCBCard)); + EXPECT_EQ(IDR_AUTOFILL_CC_MASTERCARD, + CreditCard::IconResourceId(kMasterCard)); + EXPECT_EQ(IDR_AUTOFILL_CC_VISA, + CreditCard::IconResourceId(kVisaCard)); +} + TEST(CreditCardTest, UpdateFromImportedCard) { CreditCard original_card(base::GenerateGUID(), "https://www.example.com"); test::SetCreditCardInfo( |