summaryrefslogtreecommitdiffstats
path: root/chrome/browser/autofill/credit_card.cc
diff options
context:
space:
mode:
authorgeorgey@chromium.org <georgey@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-02-03 09:30:22 +0000
committergeorgey@chromium.org <georgey@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-02-03 09:30:22 +0000
commita6903b16428cbfd4cf5bdb8a1d64b092e6b945dd (patch)
treed7f21891b1cfae12d34306f0a3e22b329b4acd95 /chrome/browser/autofill/credit_card.cc
parent70b2726ad5be0486c9e0654056c3bcae80cd0b41 (diff)
downloadchromium_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.cc31
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_;