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

Side by Side Diff: chrome/browser/autofill/credit_card_field_unittest.cc

Issue 12434004: Move remaining Autofill code to //components/autofill. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix long lines Created 7 years, 9 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) 2011 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/memory/scoped_ptr.h"
6 #include "base/memory/scoped_vector.h"
7 #include "base/utf_string_conversions.h"
8 #include "chrome/browser/autofill/autofill_field.h"
9 #include "chrome/browser/autofill/autofill_scanner.h"
10 #include "chrome/browser/autofill/credit_card_field.h"
11 #include "components/autofill/common/form_field_data.h"
12 #include "testing/gtest/include/gtest/gtest.h"
13
14 class CreditCardFieldTest : public testing::Test {
15 public:
16 CreditCardFieldTest() {}
17
18 protected:
19 ScopedVector<const AutofillField> list_;
20 scoped_ptr<CreditCardField> field_;
21 FieldTypeMap field_type_map_;
22
23 // Downcast for tests.
24 static CreditCardField* Parse(AutofillScanner* scanner) {
25 return static_cast<CreditCardField*>(CreditCardField::Parse(scanner));
26 }
27
28 private:
29 DISALLOW_COPY_AND_ASSIGN(CreditCardFieldTest);
30 };
31
32 TEST_F(CreditCardFieldTest, Empty) {
33 AutofillScanner scanner(list_.get());
34 field_.reset(Parse(&scanner));
35 ASSERT_EQ(static_cast<CreditCardField*>(NULL), field_.get());
36 }
37
38 TEST_F(CreditCardFieldTest, NonParse) {
39 list_.push_back(new AutofillField);
40 AutofillScanner scanner(list_.get());
41 field_.reset(Parse(&scanner));
42 ASSERT_EQ(static_cast<CreditCardField*>(NULL), field_.get());
43 }
44
45 TEST_F(CreditCardFieldTest, ParseCreditCardNoNumber) {
46 FormFieldData field;
47 field.form_control_type = "text";
48
49 field.label = ASCIIToUTF16("Exp Month");
50 field.name = ASCIIToUTF16("ccmonth");
51 list_.push_back(new AutofillField(field, ASCIIToUTF16("month1")));
52
53 field.label = ASCIIToUTF16("Exp Year");
54 field.name = ASCIIToUTF16("ccyear");
55 list_.push_back(new AutofillField(field, ASCIIToUTF16("year2")));
56
57 AutofillScanner scanner(list_.get());
58 field_.reset(Parse(&scanner));
59 ASSERT_EQ(static_cast<CreditCardField*>(NULL), field_.get());
60 }
61
62 TEST_F(CreditCardFieldTest, ParseCreditCardNoDate) {
63 FormFieldData field;
64 field.form_control_type = "text";
65
66 field.label = ASCIIToUTF16("Card Number");
67 field.name = ASCIIToUTF16("card_number");
68 list_.push_back(new AutofillField(field, ASCIIToUTF16("number1")));
69
70 AutofillScanner scanner(list_.get());
71 field_.reset(Parse(&scanner));
72 ASSERT_EQ(static_cast<CreditCardField*>(NULL), field_.get());
73 }
74
75 TEST_F(CreditCardFieldTest, ParseMiniumCreditCard) {
76 FormFieldData field;
77 field.form_control_type = "text";
78
79 field.label = ASCIIToUTF16("Card Number");
80 field.name = ASCIIToUTF16("card_number");
81 list_.push_back(new AutofillField(field, ASCIIToUTF16("number1")));
82
83 field.label = ASCIIToUTF16("Exp Month");
84 field.name = ASCIIToUTF16("ccmonth");
85 list_.push_back(new AutofillField(field, ASCIIToUTF16("month2")));
86
87 field.label = ASCIIToUTF16("Exp Year");
88 field.name = ASCIIToUTF16("ccyear");
89 list_.push_back(new AutofillField(field, ASCIIToUTF16("year3")));
90
91 AutofillScanner scanner(list_.get());
92 field_.reset(Parse(&scanner));
93 ASSERT_NE(static_cast<CreditCardField*>(NULL), field_.get());
94 ASSERT_TRUE(field_->ClassifyField(&field_type_map_));
95 ASSERT_TRUE(
96 field_type_map_.find(ASCIIToUTF16("number1")) != field_type_map_.end());
97 EXPECT_EQ(CREDIT_CARD_NUMBER, field_type_map_[ASCIIToUTF16("number1")]);
98 ASSERT_TRUE(
99 field_type_map_.find(ASCIIToUTF16("month2")) != field_type_map_.end());
100 EXPECT_EQ(CREDIT_CARD_EXP_MONTH, field_type_map_[ASCIIToUTF16("month2")]);
101 ASSERT_TRUE(
102 field_type_map_.find(ASCIIToUTF16("year3")) != field_type_map_.end());
103 EXPECT_EQ(CREDIT_CARD_EXP_4_DIGIT_YEAR,
104 field_type_map_[ASCIIToUTF16("year3")]);
105 }
106
107 TEST_F(CreditCardFieldTest, ParseFullCreditCard) {
108 FormFieldData field;
109 field.form_control_type = "text";
110
111 field.label = ASCIIToUTF16("Card Type");
112 field.name = ASCIIToUTF16("card_type");
113 list_.push_back(new AutofillField(field, ASCIIToUTF16("type")));
114
115 field.label = ASCIIToUTF16("Name on Card");
116 field.name = ASCIIToUTF16("name_on_card");
117 list_.push_back(new AutofillField(field, ASCIIToUTF16("name")));
118
119 field.label = ASCIIToUTF16("Card Number");
120 field.name = ASCIIToUTF16("card_number");
121 list_.push_back(new AutofillField(field, ASCIIToUTF16("number")));
122
123 field.label = ASCIIToUTF16("Exp Month");
124 field.name = ASCIIToUTF16("ccmonth");
125 list_.push_back(new AutofillField(field, ASCIIToUTF16("month")));
126
127 field.label = ASCIIToUTF16("Exp Year");
128 field.name = ASCIIToUTF16("ccyear");
129 list_.push_back(new AutofillField(field, ASCIIToUTF16("year")));
130
131 field.label = ASCIIToUTF16("Verification");
132 field.name = ASCIIToUTF16("verification");
133 list_.push_back(new AutofillField(field, ASCIIToUTF16("cvc")));
134
135 AutofillScanner scanner(list_.get());
136 field_.reset(Parse(&scanner));
137 ASSERT_NE(static_cast<CreditCardField*>(NULL), field_.get());
138 ASSERT_TRUE(field_->ClassifyField(&field_type_map_));
139 ASSERT_TRUE(
140 field_type_map_.find(ASCIIToUTF16("type")) != field_type_map_.end());
141 EXPECT_EQ(CREDIT_CARD_TYPE, field_type_map_[ASCIIToUTF16("type")]);
142 ASSERT_TRUE(
143 field_type_map_.find(ASCIIToUTF16("name")) != field_type_map_.end());
144 EXPECT_EQ(CREDIT_CARD_NAME, field_type_map_[ASCIIToUTF16("name")]);
145 ASSERT_TRUE(
146 field_type_map_.find(ASCIIToUTF16("number")) != field_type_map_.end());
147 EXPECT_EQ(CREDIT_CARD_NUMBER, field_type_map_[ASCIIToUTF16("number")]);
148 ASSERT_TRUE(
149 field_type_map_.find(ASCIIToUTF16("month")) != field_type_map_.end());
150 EXPECT_EQ(CREDIT_CARD_EXP_MONTH, field_type_map_[ASCIIToUTF16("month")]);
151 ASSERT_TRUE(
152 field_type_map_.find(ASCIIToUTF16("year")) != field_type_map_.end());
153 EXPECT_EQ(CREDIT_CARD_EXP_4_DIGIT_YEAR,
154 field_type_map_[ASCIIToUTF16("year")]);
155 ASSERT_TRUE(
156 field_type_map_.find(ASCIIToUTF16("cvc")) != field_type_map_.end());
157 EXPECT_EQ(CREDIT_CARD_VERIFICATION_CODE,
158 field_type_map_[ASCIIToUTF16("cvc")]);
159 }
160
161 TEST_F(CreditCardFieldTest, ParseExpMonthYear) {
162 FormFieldData field;
163 field.form_control_type = "text";
164
165 field.label = ASCIIToUTF16("Name on Card");
166 field.name = ASCIIToUTF16("name_on_card");
167 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1")));
168
169 field.label = ASCIIToUTF16("Card Number");
170 field.name = ASCIIToUTF16("card_number");
171 list_.push_back(new AutofillField(field, ASCIIToUTF16("number2")));
172
173 field.label = ASCIIToUTF16("ExpDate Month / Year");
174 field.name = ASCIIToUTF16("ExpDate");
175 list_.push_back(new AutofillField(field, ASCIIToUTF16("month3")));
176
177 field.label = ASCIIToUTF16("ExpDate Month / Year");
178 field.name = ASCIIToUTF16("ExpDate");
179 list_.push_back(new AutofillField(field, ASCIIToUTF16("year4")));
180
181 AutofillScanner scanner(list_.get());
182 field_.reset(Parse(&scanner));
183 ASSERT_NE(static_cast<CreditCardField*>(NULL), field_.get());
184 ASSERT_TRUE(field_->ClassifyField(&field_type_map_));
185 ASSERT_TRUE(
186 field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end());
187 EXPECT_EQ(CREDIT_CARD_NAME, field_type_map_[ASCIIToUTF16("name1")]);
188 ASSERT_TRUE(
189 field_type_map_.find(ASCIIToUTF16("number2")) != field_type_map_.end());
190 EXPECT_EQ(CREDIT_CARD_NUMBER, field_type_map_[ASCIIToUTF16("number2")]);
191 ASSERT_TRUE(
192 field_type_map_.find(ASCIIToUTF16("month3")) != field_type_map_.end());
193 EXPECT_EQ(CREDIT_CARD_EXP_MONTH, field_type_map_[ASCIIToUTF16("month3")]);
194 ASSERT_TRUE(
195 field_type_map_.find(ASCIIToUTF16("year4")) != field_type_map_.end());
196 EXPECT_EQ(CREDIT_CARD_EXP_4_DIGIT_YEAR,
197 field_type_map_[ASCIIToUTF16("year4")]);
198 }
199
200 TEST_F(CreditCardFieldTest, ParseExpMonthYear2) {
201 FormFieldData field;
202 field.form_control_type = "text";
203
204 field.label = ASCIIToUTF16("Name on Card");
205 field.name = ASCIIToUTF16("name_on_card");
206 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1")));
207
208 field.label = ASCIIToUTF16("Card Number");
209 field.name = ASCIIToUTF16("card_number");
210 list_.push_back(new AutofillField(field, ASCIIToUTF16("number2")));
211
212 field.label = ASCIIToUTF16("Expiration date Month / Year");
213 field.name = ASCIIToUTF16("ExpDate");
214 list_.push_back(new AutofillField(field, ASCIIToUTF16("month3")));
215
216 field.label = ASCIIToUTF16("Expiration date Month / Year");
217 field.name = ASCIIToUTF16("ExpDate");
218 list_.push_back(new AutofillField(field, ASCIIToUTF16("year4")));
219
220 AutofillScanner scanner(list_.get());
221 field_.reset(Parse(&scanner));
222 ASSERT_NE(static_cast<CreditCardField*>(NULL), field_.get());
223 ASSERT_TRUE(field_->ClassifyField(&field_type_map_));
224 ASSERT_TRUE(
225 field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end());
226 EXPECT_EQ(CREDIT_CARD_NAME, field_type_map_[ASCIIToUTF16("name1")]);
227 ASSERT_TRUE(
228 field_type_map_.find(ASCIIToUTF16("number2")) != field_type_map_.end());
229 EXPECT_EQ(CREDIT_CARD_NUMBER, field_type_map_[ASCIIToUTF16("number2")]);
230 ASSERT_TRUE(
231 field_type_map_.find(ASCIIToUTF16("month3")) != field_type_map_.end());
232 EXPECT_EQ(CREDIT_CARD_EXP_MONTH, field_type_map_[ASCIIToUTF16("month3")]);
233 ASSERT_TRUE(
234 field_type_map_.find(ASCIIToUTF16("year4")) != field_type_map_.end());
235 EXPECT_EQ(CREDIT_CARD_EXP_4_DIGIT_YEAR,
236 field_type_map_[ASCIIToUTF16("year4")]);
237 }
238
239 TEST_F(CreditCardFieldTest, ParseExpField) {
240 FormFieldData field;
241 field.form_control_type = "text";
242
243 field.label = ASCIIToUTF16("Name on Card");
244 field.name = ASCIIToUTF16("name_on_card");
245 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1")));
246
247 field.label = ASCIIToUTF16("Card Number");
248 field.name = ASCIIToUTF16("card_number");
249 list_.push_back(new AutofillField(field, ASCIIToUTF16("number2")));
250
251 field.label = ASCIIToUTF16("Expiration Date (MM/YYYY)");
252 field.name = ASCIIToUTF16("cc_exp");
253 list_.push_back(new AutofillField(field, ASCIIToUTF16("exp3")));
254
255 AutofillScanner scanner(list_.get());
256 field_.reset(Parse(&scanner));
257 ASSERT_NE(static_cast<CreditCardField*>(NULL), field_.get());
258 ASSERT_TRUE(field_->ClassifyField(&field_type_map_));
259 ASSERT_TRUE(
260 field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end());
261 EXPECT_EQ(CREDIT_CARD_NAME, field_type_map_[ASCIIToUTF16("name1")]);
262 ASSERT_TRUE(
263 field_type_map_.find(ASCIIToUTF16("number2")) != field_type_map_.end());
264 EXPECT_EQ(CREDIT_CARD_NUMBER, field_type_map_[ASCIIToUTF16("number2")]);
265 ASSERT_TRUE(
266 field_type_map_.find(ASCIIToUTF16("exp3")) != field_type_map_.end());
267 EXPECT_EQ(CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR,
268 field_type_map_[ASCIIToUTF16("exp3")]);
269 }
270
271 TEST_F(CreditCardFieldTest, ParseExpField2DigitYear) {
272 FormFieldData field;
273 field.form_control_type = "text";
274
275 field.label = ASCIIToUTF16("Name on Card");
276 field.name = ASCIIToUTF16("name_on_card");
277 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1")));
278
279 field.label = ASCIIToUTF16("Card Number");
280 field.name = ASCIIToUTF16("card_number");
281 list_.push_back(new AutofillField(field, ASCIIToUTF16("number2")));
282
283 field.label = ASCIIToUTF16("Expiration Date (MM/YY)");
284 field.name = ASCIIToUTF16("cc_exp");
285 list_.push_back(new AutofillField(field, ASCIIToUTF16("exp3")));
286
287 AutofillScanner scanner(list_.get());
288 field_.reset(Parse(&scanner));
289 ASSERT_NE(static_cast<CreditCardField*>(NULL), field_.get());
290 ASSERT_TRUE(field_->ClassifyField(&field_type_map_));
291 ASSERT_TRUE(
292 field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end());
293 EXPECT_EQ(CREDIT_CARD_NAME, field_type_map_[ASCIIToUTF16("name1")]);
294 ASSERT_TRUE(
295 field_type_map_.find(ASCIIToUTF16("number2")) != field_type_map_.end());
296 EXPECT_EQ(CREDIT_CARD_NUMBER, field_type_map_[ASCIIToUTF16("number2")]);
297 ASSERT_TRUE(
298 field_type_map_.find(ASCIIToUTF16("exp3")) != field_type_map_.end());
299 EXPECT_EQ(CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR,
300 field_type_map_[ASCIIToUTF16("exp3")]);
301 }
302
303 TEST_F(CreditCardFieldTest, ParseCreditCardHolderNameWithCCFullName) {
304 FormFieldData field;
305 field.form_control_type = "text";
306
307 field.label = ASCIIToUTF16("Name");
308 field.name = ASCIIToUTF16("ccfullname");
309 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1")));
310
311 AutofillScanner scanner(list_.get());
312 field_.reset(Parse(&scanner));
313 ASSERT_NE(static_cast<CreditCardField*>(NULL), field_.get());
314 ASSERT_TRUE(field_->ClassifyField(&field_type_map_));
315 ASSERT_TRUE(
316 field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end());
317 EXPECT_EQ(CREDIT_CARD_NAME, field_type_map_[ASCIIToUTF16("name1")]);
318 }
OLDNEW
« no previous file with comments | « chrome/browser/autofill/credit_card_field.cc ('k') | chrome/browser/autofill/credit_card_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698