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

Side by Side Diff: components/autofill/browser/validation_unittest.cc

Issue 17392006: In components/autofill, move browser/ to core/browser/ (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase to fix conflicts Created 7 years, 6 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "base/strings/utf_string_conversions.h"
6 #include "base/time.h"
7 #include "components/autofill/browser/validation.h"
8 #include "testing/gtest/include/gtest/gtest.h"
9
10 namespace autofill {
11 namespace {
12
13 struct ExpirationDate {
14 const char* year;
15 const char* month;
16 };
17
18 // From https://www.paypalobjects.com/en_US/vhelp/paypalmanager_help/credit_card _numbers.htm
19 const char* const kValidNumbers[] = {
20 "378282246310005",
21 "3714 4963 5398 431",
22 "3787-3449-3671-000",
23 "5610591081018250",
24 "3056 9309 0259 04",
25 "3852-0000-0232-37",
26 "6011111111111117",
27 "6011 0009 9013 9424",
28 "3530-1113-3330-0000",
29 "3566002020360505",
30 "5555 5555 5555 4444",
31 "5105-1051-0510-5100",
32 "4111111111111111",
33 "4012 8888 8888 1881",
34 "4222-2222-2222-2",
35 "5019717010103742",
36 "6331101999990016",
37 };
38 const char* const kInvalidNumbers[] = {
39 "4111 1111 112", /* too short */
40 "41111111111111111115", /* too long */
41 "4111-1111-1111-1110", /* wrong Luhn checksum */
42 "3056 9309 0259 04aa", /* non-digit characters */
43 };
44 const char kCurrentDate[]="1 May 2013";
45 const ExpirationDate kValidCreditCardExpirationDate[] = {
46 { "2013", "5" }, // Valid month in current year.
47 { "2014", "1" }, // Any month in next year.
48 { "2014", " 1" }, // Whitespace in month.
49 { " 2014", "1" }, // Whitespace in year.
50 };
51 const ExpirationDate kInvalidCreditCardExpirationDate[] = {
52 { "2013", "04" }, // Previous month in current year.
53 { "2012", "12" }, // Any month in previous year.
54 };
55 const char* const kValidCreditCardSecurityCode[] = {
56 "323", // 3-digit CSC.
57 "3234", // 4-digit CSC.
58 };
59 const char* const kInvalidCreditCardSecurityCode[] = {
60 "32", // CSC too short.
61 "12345", // CSC too long.
62 "asd", // non-numeric CSC.
63 };
64 const char* const kValidEmailAddress[] = {
65 "user@example",
66 "user@example.com",
67 "user@subdomain.example.com",
68 "user+postfix@example.com",
69 };
70 const char* const kInvalidEmailAddress[] = {
71 "user",
72 "foo.com",
73 "user@",
74 "user@=example.com"
75 };
76 const char kAmericanExpressCard[] = "341111111111111";
77 const char kVisaCard[] = "4111111111111111";
78 const char kAmericanExpressCVC[] = "1234";
79 const char kVisaCVC[] = "123";
80 } // namespace
81
82 TEST(AutofillValidation, IsValidCreditCardNumber) {
83 for (size_t i = 0; i < arraysize(kValidNumbers); ++i) {
84 SCOPED_TRACE(kValidNumbers[i]);
85 EXPECT_TRUE(
86 autofill::IsValidCreditCardNumber(ASCIIToUTF16(kValidNumbers[i])));
87 }
88 for (size_t i = 0; i < arraysize(kInvalidNumbers); ++i) {
89 SCOPED_TRACE(kInvalidNumbers[i]);
90 EXPECT_FALSE(
91 autofill::IsValidCreditCardNumber(ASCIIToUTF16(kInvalidNumbers[i])));
92 }
93 }
94
95 TEST(AutofillValidation, IsValidCreditCardExpirationDate)
96 {
97 base::Time now;
98 ASSERT_TRUE(base::Time::FromString(kCurrentDate, &now));
99
100 for (size_t i = 0; i < arraysize(kValidCreditCardExpirationDate); ++i) {
101 const ExpirationDate data = kValidCreditCardExpirationDate[i];
102 SCOPED_TRACE(data.year);
103 SCOPED_TRACE(data.month);
104 EXPECT_TRUE(
105 autofill::IsValidCreditCardExpirationDate(ASCIIToUTF16(data.year),
106 ASCIIToUTF16(data.month),
107 now));
108 }
109 for (size_t i = 0; i < arraysize(kInvalidCreditCardExpirationDate); ++i) {
110 const ExpirationDate data = kInvalidCreditCardExpirationDate[i];
111 SCOPED_TRACE(data.year);
112 SCOPED_TRACE(data.month);
113 EXPECT_TRUE(
114 !autofill::IsValidCreditCardExpirationDate(ASCIIToUTF16(data.year),
115 ASCIIToUTF16(data.month),
116 now));
117 }
118 }
119
120 TEST(AutofillValidation, IsValidCreditCardSecurityCode) {
121 for (size_t i = 0; i < arraysize(kValidCreditCardSecurityCode); ++i) {
122 SCOPED_TRACE(kValidCreditCardSecurityCode[i]);
123 EXPECT_TRUE(
124 autofill::IsValidCreditCardSecurityCode(
125 ASCIIToUTF16(kValidCreditCardSecurityCode[i])));
126 }
127 for (size_t i = 0; i < arraysize(kInvalidCreditCardSecurityCode); ++i) {
128 SCOPED_TRACE(kInvalidCreditCardSecurityCode[i]);
129 EXPECT_FALSE(
130 autofill::IsValidCreditCardSecurityCode(
131 ASCIIToUTF16(kInvalidCreditCardSecurityCode[i])));
132 }
133 }
134
135 TEST(AutofillValidation, IsValidEmailAddress) {
136 for (size_t i = 0; i < arraysize(kValidEmailAddress); ++i) {
137 SCOPED_TRACE(kValidEmailAddress[i]);
138 EXPECT_TRUE(
139 autofill::IsValidEmailAddress(ASCIIToUTF16(kValidEmailAddress[i])));
140 }
141 for (size_t i = 0; i < arraysize(kInvalidEmailAddress); ++i) {
142 SCOPED_TRACE(kInvalidEmailAddress[i]);
143 EXPECT_FALSE(
144 autofill::IsValidEmailAddress(ASCIIToUTF16(kInvalidEmailAddress[i])));
145 }
146 }
147
148 TEST(AutofillValidation, IsValidCreditCardSecurityCodeWithNumber) {
149 EXPECT_TRUE(autofill::IsValidCreditCardSecurityCode(
150 ASCIIToUTF16(kAmericanExpressCVC), ASCIIToUTF16(kAmericanExpressCard)));
151 EXPECT_TRUE(autofill::IsValidCreditCardSecurityCode(
152 ASCIIToUTF16(kVisaCVC), ASCIIToUTF16(kVisaCard)));
153 EXPECT_FALSE(autofill::IsValidCreditCardSecurityCode(
154 ASCIIToUTF16(kVisaCVC), ASCIIToUTF16(kAmericanExpressCard)));
155 EXPECT_FALSE(autofill::IsValidCreditCardSecurityCode(
156 ASCIIToUTF16(kAmericanExpressCVC), ASCIIToUTF16(kVisaCard)));
157 EXPECT_TRUE(autofill::IsValidCreditCardSecurityCode(
158 ASCIIToUTF16(kVisaCVC), ASCIIToUTF16(kInvalidNumbers[0])));
159 EXPECT_FALSE(autofill::IsValidCreditCardSecurityCode(
160 ASCIIToUTF16(kAmericanExpressCVC), ASCIIToUTF16(kInvalidNumbers[0])));
161 }
162
163 } // namespace autofill
OLDNEW
« no previous file with comments | « components/autofill/browser/validation.cc ('k') | components/autofill/browser/webdata/autofill_change.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698