Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(450)

Unified Diff: components/autofill/core/browser/validation_unittest.cc

Issue 2673753005: [Payments] Basic validation in the credit card editor. (Closed)
Patch Set: more tests Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/autofill/core/browser/validation_unittest.cc
diff --git a/components/autofill/core/browser/validation_unittest.cc b/components/autofill/core/browser/validation_unittest.cc
index 798f53462bd8be19245263e7d32851f75d83d5b5..a261c10778810c8d1dfe056b0711c8855064be73 100644
--- a/components/autofill/core/browser/validation_unittest.cc
+++ b/components/autofill/core/browser/validation_unittest.cc
@@ -2,14 +2,19 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "components/autofill/core/browser/validation.h"
+
#include <stddef.h>
#include "base/macros.h"
+#include "base/strings/string16.h"
#include "base/strings/utf_string_conversions.h"
#include "base/time/time.h"
#include "components/autofill/core/browser/credit_card.h"
-#include "components/autofill/core/browser/validation.h"
+#include "components/autofill/core/browser/field_types.h"
+#include "grit/components_strings.h"
#include "testing/gtest/include/gtest/gtest.h"
+#include "ui/base/l10n/l10n_util.h"
using base::ASCIIToUTF16;
@@ -148,4 +153,208 @@ TEST(AutofillValidation, IsValidEmailAddress) {
}
}
+struct ValidationCase {
+ ValidationCase(const char* value,
+ ServerFieldType field_type,
+ bool expected_valid,
+ int expected_error_id)
+ : value(value),
+ field_type(field_type),
+ expected_valid(expected_valid),
+ expected_error_id(expected_error_id) {}
+ ~ValidationCase() {}
+
+ const char* value;
please use gerrit instead 2017/02/07 21:55:22 const char* const (First const says don't change
Mathieu 2017/02/08 02:03:25 Done.
+ ServerFieldType field_type;
please use gerrit instead 2017/02/07 21:55:22 const
Mathieu 2017/02/08 02:03:25 Done.
+ bool expected_valid;
please use gerrit instead 2017/02/07 21:55:22 const
Mathieu 2017/02/08 02:03:25 Done.
+ int expected_error_id;
please use gerrit instead 2017/02/07 21:55:22 const
Mathieu 2017/02/08 02:03:25 Done.
+};
+
+class AutofillTypeValidationTest
+ : public testing::TestWithParam<ValidationCase> {};
+
+TEST_P(AutofillTypeValidationTest, IsValidForType) {
+ base::string16 error_message;
+ EXPECT_EQ(GetParam().expected_valid,
+ IsValidForType(ASCIIToUTF16(GetParam().value),
+ GetParam().field_type, &error_message))
+ << "Failed to validate " << GetParam().value << " (type "
+ << GetParam().field_type << ")";
+ if (!GetParam().expected_valid) {
+ EXPECT_EQ(l10n_util::GetStringUTF16(GetParam().expected_error_id),
+ error_message);
+ }
+}
+
+INSTANTIATE_TEST_CASE_P(
+ CreditCardExpDate,
+ AutofillTypeValidationTest,
+ testing::Values(
+ ValidationCase("05/2087", CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR, true, 0),
+ ValidationCase("05-2087", CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR, true, 0),
+ ValidationCase("052087", CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR, true, 0),
+ ValidationCase("05|2087", CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR, true, 0),
+
+ ValidationCase("05/2012",
+ CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR,
+ false,
+ IDS_AUTOFILL_VALIDATION_INVALID_CREDIT_CARD_EXPIRED),
+ ValidationCase(
+ "MM/2012",
+ CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR,
+ false,
+ IDS_AUTOFILL_VALIDATION_INVALID_CREDIT_CARD_EXPIRATION_DATE),
+ ValidationCase(
+ "05/12",
+ CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR,
+ false,
+ IDS_AUTOFILL_VALIDATION_INVALID_CREDIT_CARD_EXPIRATION_DATE),
+ ValidationCase(
+ "05/45",
+ CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR,
+ false,
+ IDS_AUTOFILL_VALIDATION_INVALID_CREDIT_CARD_EXPIRATION_DATE),
+ ValidationCase(
+ "05/1987",
+ CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR,
+ false,
+ IDS_AUTOFILL_VALIDATION_INVALID_CREDIT_CARD_EXPIRATION_DATE),
+
+ ValidationCase("05/87", CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR, true, 0),
+ ValidationCase("05-87", CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR, true, 0),
+ ValidationCase("0587", CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR, true, 0),
+ ValidationCase("05|87", CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR, true, 0),
+ ValidationCase(
+ "05/1987",
+ CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR,
+ false,
+ IDS_AUTOFILL_VALIDATION_INVALID_CREDIT_CARD_EXPIRATION_DATE),
+ ValidationCase("05/12",
+ CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR,
+ false,
+ IDS_AUTOFILL_VALIDATION_INVALID_CREDIT_CARD_EXPIRED)));
+
+INSTANTIATE_TEST_CASE_P(
+ CreditCardNumber,
+ AutofillTypeValidationTest,
+ testing::Values(
+ ValidationCase(kValidNumbers[0], CREDIT_CARD_NUMBER, true, 0),
+ ValidationCase(kValidNumbers[1], CREDIT_CARD_NUMBER, true, 0),
+ ValidationCase(kValidNumbers[2], CREDIT_CARD_NUMBER, true, 0),
+ ValidationCase(kValidNumbers[3], CREDIT_CARD_NUMBER, true, 0),
+ ValidationCase(kValidNumbers[4], CREDIT_CARD_NUMBER, true, 0),
+ ValidationCase(kValidNumbers[5], CREDIT_CARD_NUMBER, true, 0),
+ ValidationCase(kValidNumbers[6], CREDIT_CARD_NUMBER, true, 0),
+ ValidationCase(kValidNumbers[7], CREDIT_CARD_NUMBER, true, 0),
+ ValidationCase(kValidNumbers[8], CREDIT_CARD_NUMBER, true, 0),
+ ValidationCase(kValidNumbers[9], CREDIT_CARD_NUMBER, true, 0),
+ ValidationCase(kValidNumbers[10], CREDIT_CARD_NUMBER, true, 0),
+ ValidationCase(kValidNumbers[11], CREDIT_CARD_NUMBER, true, 0),
+ ValidationCase(kValidNumbers[12], CREDIT_CARD_NUMBER, true, 0),
+ ValidationCase(kValidNumbers[13], CREDIT_CARD_NUMBER, true, 0),
+ ValidationCase(kValidNumbers[14], CREDIT_CARD_NUMBER, true, 0),
+ ValidationCase(kValidNumbers[15], CREDIT_CARD_NUMBER, true, 0),
+ ValidationCase(kValidNumbers[16], CREDIT_CARD_NUMBER, true, 0),
+ ValidationCase(kValidNumbers[17], CREDIT_CARD_NUMBER, true, 0),
+
+ ValidationCase(kInvalidNumbers[0],
+ CREDIT_CARD_NUMBER,
+ false,
+ IDS_AUTOFILL_VALIDATION_INVALID_CREDIT_CARD_NUMBER),
+ ValidationCase(kInvalidNumbers[1],
+ CREDIT_CARD_NUMBER,
+ false,
+ IDS_AUTOFILL_VALIDATION_INVALID_CREDIT_CARD_NUMBER),
+ ValidationCase(kInvalidNumbers[2],
+ CREDIT_CARD_NUMBER,
+ false,
+ IDS_AUTOFILL_VALIDATION_INVALID_CREDIT_CARD_NUMBER),
+ ValidationCase(kInvalidNumbers[3],
+ CREDIT_CARD_NUMBER,
+ false,
+ IDS_AUTOFILL_VALIDATION_INVALID_CREDIT_CARD_NUMBER)));
+
+INSTANTIATE_TEST_CASE_P(
+ CreditCardMonth,
+ AutofillTypeValidationTest,
+ testing::Values(
+ ValidationCase("01", CREDIT_CARD_EXP_MONTH, true, 0),
+ ValidationCase("1", CREDIT_CARD_EXP_MONTH, true, 0),
+ ValidationCase("12", CREDIT_CARD_EXP_MONTH, true, 0),
+ ValidationCase(
+ "0",
+ CREDIT_CARD_EXP_MONTH,
+ false,
+ IDS_AUTOFILL_VALIDATION_INVALID_CREDIT_CARD_EXPIRATION_MONTH),
+ ValidationCase(
+ "-1",
+ CREDIT_CARD_EXP_MONTH,
+ false,
+ IDS_AUTOFILL_VALIDATION_INVALID_CREDIT_CARD_EXPIRATION_MONTH),
+ ValidationCase(
+ "13",
+ CREDIT_CARD_EXP_MONTH,
+ false,
+ IDS_AUTOFILL_VALIDATION_INVALID_CREDIT_CARD_EXPIRATION_MONTH)));
+
+INSTANTIATE_TEST_CASE_P(
+ CreditCardYear,
+ AutofillTypeValidationTest,
+ testing::Values(
+ /* 2-digit year */
+ ValidationCase("87", CREDIT_CARD_EXP_2_DIGIT_YEAR, true, 0),
+ // These are considered expired in the context of this millenium.
+ ValidationCase("02",
+ CREDIT_CARD_EXP_2_DIGIT_YEAR,
+ false,
+ IDS_AUTOFILL_VALIDATION_INVALID_CREDIT_CARD_EXPIRED),
+ ValidationCase("15",
+ CREDIT_CARD_EXP_2_DIGIT_YEAR,
+ false,
+ IDS_AUTOFILL_VALIDATION_INVALID_CREDIT_CARD_EXPIRED),
+ // Invalid formats.
+ ValidationCase(
+ "1",
+ CREDIT_CARD_EXP_2_DIGIT_YEAR,
+ false,
+ IDS_AUTOFILL_VALIDATION_INVALID_CREDIT_CARD_EXPIRATION_YEAR),
+ ValidationCase(
+ "123",
+ CREDIT_CARD_EXP_2_DIGIT_YEAR,
+ false,
+ IDS_AUTOFILL_VALIDATION_INVALID_CREDIT_CARD_EXPIRATION_YEAR),
+ ValidationCase(
+ "2087",
+ CREDIT_CARD_EXP_2_DIGIT_YEAR,
+ false,
+ IDS_AUTOFILL_VALIDATION_INVALID_CREDIT_CARD_EXPIRATION_YEAR),
+
+ /* 4-digit year */
+ ValidationCase("2087", CREDIT_CARD_EXP_4_DIGIT_YEAR, true, 0),
+ // Expired.
+ ValidationCase("2000",
+ CREDIT_CARD_EXP_4_DIGIT_YEAR,
+ false,
+ IDS_AUTOFILL_VALIDATION_INVALID_CREDIT_CARD_EXPIRED),
+ ValidationCase("2015",
+ CREDIT_CARD_EXP_4_DIGIT_YEAR,
+ false,
+ IDS_AUTOFILL_VALIDATION_INVALID_CREDIT_CARD_EXPIRED),
+ // Invalid formats.
+ ValidationCase(
+ "00",
+ CREDIT_CARD_EXP_4_DIGIT_YEAR,
+ false,
+ IDS_AUTOFILL_VALIDATION_INVALID_CREDIT_CARD_EXPIRATION_YEAR),
+ ValidationCase(
+ "123",
+ CREDIT_CARD_EXP_4_DIGIT_YEAR,
+ false,
+ IDS_AUTOFILL_VALIDATION_INVALID_CREDIT_CARD_EXPIRATION_YEAR),
+ ValidationCase(
+ "87",
+ CREDIT_CARD_EXP_4_DIGIT_YEAR,
+ false,
+ IDS_AUTOFILL_VALIDATION_INVALID_CREDIT_CARD_EXPIRATION_YEAR)));
+
} // namespace autofill

Powered by Google App Engine
This is Rietveld 408576698