Index: components/autofill/core/browser/validation.cc |
diff --git a/components/autofill/core/browser/validation.cc b/components/autofill/core/browser/validation.cc |
index e7237f7b3b73d3fab1ad1a963a3cb245a0e0df3f..e6944314c98baa6df8978acefe2d56c9771d6325 100644 |
--- a/components/autofill/core/browser/validation.cc |
+++ b/components/autofill/core/browser/validation.cc |
@@ -125,6 +125,43 @@ bool IsValidCreditCardNumberForBasicCardNetworks( |
return false; |
} |
+CreditCardCompletionStatus GetCompletionStatusForCard( |
+ const CreditCard& card, |
+ const std::string& app_locale) { |
+ CreditCardCompletionStatus status = CREDIT_CARD_COMPLETE; |
+ if (card.IsExpired(autofill::AutofillClock::Now())) |
+ status |= CREDIT_CARD_EXPIRED; |
+ |
+ if (card.number().empty()) |
+ status |= CREDIT_CARD_NO_NUMBER; |
+ |
+ if (card.GetInfo(autofill::AutofillType(autofill::CREDIT_CARD_NAME_FULL), |
+ app_locale) |
+ .empty()) { |
+ status |= CREDIT_CARD_NO_CARDHOLDER; |
+ } |
+ |
+ return status; |
+} |
+ |
+base::string16 GetCompletionMessageForCard(CreditCardCompletionStatus status) { |
+ switch (status) { |
+ case CREDIT_CARD_COMPLETE: |
+ return base::string16(); |
+ case CREDIT_CARD_EXPIRED: |
+ return l10n_util::GetStringUTF16( |
+ IDS_PAYMENTS_VALIDATION_INVALID_CREDIT_CARD_EXPIRED); |
+ case CREDIT_CARD_NO_CARDHOLDER: |
+ return l10n_util::GetStringUTF16(IDS_PAYMENTS_NAME_ON_CARD_REQUIRED); |
+ case CREDIT_CARD_NO_NUMBER: |
+ return l10n_util::GetStringUTF16( |
+ IDS_PAYMENTS_CARD_NUMBER_INVALID_VALIDATION_MESSAGE); |
+ default: |
+ // Multiple things are missing |
+ return l10n_util::GetStringUTF16(IDS_PAYMENTS_MORE_INFORMATION_REQUIRED); |
+ } |
+} |
+ |
bool IsValidEmailAddress(const base::string16& text) { |
// E-Mail pattern as defined by the WhatWG. (4.10.7.1.5 E-Mail state) |
const base::string16 kEmailPattern = base::ASCIIToUTF16( |