diff options
author | georgey@chromium.org <georgey@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-03 09:30:22 +0000 |
---|---|---|
committer | georgey@chromium.org <georgey@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-03 09:30:22 +0000 |
commit | a6903b16428cbfd4cf5bdb8a1d64b092e6b945dd (patch) | |
tree | d7f21891b1cfae12d34306f0a3e22b329b4acd95 /chrome/browser/autofill/credit_card.cc | |
parent | 70b2726ad5be0486c9e0654056c3bcae80cd0b41 (diff) | |
download | chromium_src-a6903b16428cbfd4cf5bdb8a1d64b092e6b945dd.zip chromium_src-a6903b16428cbfd4cf5bdb8a1d64b092e6b945dd.tar.gz chromium_src-a6903b16428cbfd4cf5bdb8a1d64b092e6b945dd.tar.bz2 |
Added Credit card preview in the form ******[last four digits], Exp: [Date - month and year]
BUG=33026
TEST=should appear like in mocks, when dialog is finished
Review URL: http://codereview.chromium.org/566027
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37961 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/autofill/credit_card.cc')
-rw-r--r-- | chrome/browser/autofill/credit_card.cc | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/chrome/browser/autofill/credit_card.cc b/chrome/browser/autofill/credit_card.cc index 7c33206..0f0d526 100644 --- a/chrome/browser/autofill/credit_card.cc +++ b/chrome/browser/autofill/credit_card.cc @@ -4,11 +4,13 @@ #include "chrome/browser/autofill/credit_card.h" +#include "app/l10n_util.h" #include "base/basictypes.h" #include "base/string_util.h" #include "base/utf_string_conversions.h" #include "chrome/browser/autofill/autofill_type.h" #include "chrome/browser/autofill/field_types.h" +#include "grit/generated_resources.h" static const string16 kCreditCardSeparators = ASCIIToUTF16(" -"); @@ -182,9 +184,14 @@ void CreditCard::SetInfo(const AutoFillType& type, const string16& value) { set_type(value); break; - case CREDIT_CARD_NUMBER: + case CREDIT_CARD_NUMBER: { set_number(value); - break; + // Update last four digits as well. + if (value.length() > 4) + set_last_four_digits(value.substr(value.length() - 4)); + else + set_last_four_digits(string16()); + } break; case CREDIT_CARD_VERIFICATION_CODE: set_verification_code(value); @@ -256,6 +263,26 @@ void CreditCard::set_expiration_year(int expiration_year) { expiration_year_ = expiration_year; } +std::wstring CreditCard::PreviewSummary() const { + // TODO(georgey): add unit-test + std::wstring preview; + if (number().empty()) + return preview; // No CC number, means empty preview. + std::wstring obfuscated_cc_number(L"************"); + obfuscated_cc_number.append(UTF16ToWide(last_four_digits())); + if (!expiration_month() || !expiration_year()) + return obfuscated_cc_number; // no expiration date set + // TODO(georgey): internationalize date + std::wstring formatted_date(UTF16ToWide(ExpirationMonthAsString())); + formatted_date.append(L"/"); + formatted_date.append(UTF16ToWide(Expiration4DigitYearAsString())); + + preview = l10n_util::GetStringF(IDS_CREDIT_CARD_NUMBER_PREVIEW_FORMAT, + obfuscated_cc_number, + formatted_date); + return preview; +} + void CreditCard::operator=(const CreditCard& source) { number_ = source.number_; |