blob: 626a39cea126395cebff18fb6632d21154b757e8 [file] [log] [blame]
[email protected]c87481cd2011-03-04 12:29:571// Copyright (c) 2011 The Chromium Authors. All rights reserved.
[email protected]224d21b82010-03-31 17:43:012// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
[email protected]3b63f8f42011-03-28 01:54:155#include "base/memory/scoped_ptr.h"
6#include "base/memory/scoped_vector.h"
[email protected]be1ce6a72010-08-03 14:35:227#include "base/utf_string_conversions.h"
[email protected]1a9d0de22011-05-19 23:42:468#include "chrome/browser/autofill/autofill_ecml.h"
[email protected]8f608c52011-03-30 16:16:319#include "chrome/browser/autofill/autofill_field.h"
[email protected]2a958552011-05-05 04:01:2110#include "chrome/browser/autofill/autofill_scanner.h"
[email protected]224d21b82010-03-31 17:43:0111#include "chrome/browser/autofill/credit_card_field.h"
12#include "testing/gtest/include/gtest/gtest.h"
[email protected]b1438212010-04-03 00:30:5913#include "webkit/glue/form_field.h"
[email protected]224d21b82010-03-31 17:43:0114
[email protected]224d21b82010-03-31 17:43:0115class CreditCardFieldTest : public testing::Test {
16 public:
17 CreditCardFieldTest() {}
18
19 protected:
[email protected]2033dcf2011-05-27 01:47:4020 ScopedVector<const AutofillField> list_;
[email protected]224d21b82010-03-31 17:43:0121 scoped_ptr<CreditCardField> field_;
22 FieldTypeMap field_type_map_;
[email protected]2033dcf2011-05-27 01:47:4023
24 // Downcast for tests.
25 static CreditCardField* Parse(AutofillScanner* scanner, bool is_ecml) {
26 return static_cast<CreditCardField*>(
27 CreditCardField::Parse(scanner, is_ecml));
28 }
[email protected]224d21b82010-03-31 17:43:0129
30 private:
31 DISALLOW_COPY_AND_ASSIGN(CreditCardFieldTest);
32};
33
34TEST_F(CreditCardFieldTest, Empty) {
[email protected]2a958552011-05-05 04:01:2135 AutofillScanner scanner(list_.get());
[email protected]2033dcf2011-05-27 01:47:4036 field_.reset(Parse(&scanner, false));
[email protected]224d21b82010-03-31 17:43:0137 ASSERT_EQ(static_cast<CreditCardField*>(NULL), field_.get());
38}
39
40TEST_F(CreditCardFieldTest, NonParse) {
[email protected]c87481cd2011-03-04 12:29:5741 list_.push_back(new AutofillField);
[email protected]2a958552011-05-05 04:01:2142 AutofillScanner scanner(list_.get());
[email protected]2033dcf2011-05-27 01:47:4043 field_.reset(Parse(&scanner, false));
[email protected]224d21b82010-03-31 17:43:0144 ASSERT_EQ(static_cast<CreditCardField*>(NULL), field_.get());
45}
46
47TEST_F(CreditCardFieldTest, ParseCreditCardNoNumber) {
48 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:5749 new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Exp Month"),
[email protected]224d21b82010-03-31 17:43:0150 ASCIIToUTF16("ccmonth"),
51 string16(),
[email protected]ee0e2d92010-05-14 19:21:1852 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:1653 0,
54 false),
[email protected]224d21b82010-03-31 17:43:0155 ASCIIToUTF16("month1")));
56 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:5757 new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Exp Year"),
[email protected]224d21b82010-03-31 17:43:0158 ASCIIToUTF16("ccyear"),
59 string16(),
[email protected]ee0e2d92010-05-14 19:21:1860 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:1661 0,
62 false),
[email protected]224d21b82010-03-31 17:43:0163 ASCIIToUTF16("year1")));
[email protected]2a958552011-05-05 04:01:2164 AutofillScanner scanner(list_.get());
[email protected]2033dcf2011-05-27 01:47:4065 field_.reset(Parse(&scanner, false));
[email protected]224d21b82010-03-31 17:43:0166 ASSERT_EQ(static_cast<CreditCardField*>(NULL), field_.get());
67}
68
69TEST_F(CreditCardFieldTest, ParseCreditCardNoDate) {
70 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:5771 new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Card Number"),
[email protected]224d21b82010-03-31 17:43:0172 ASCIIToUTF16("card_number"),
73 string16(),
[email protected]ee0e2d92010-05-14 19:21:1874 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:1675 0,
76 false),
[email protected]224d21b82010-03-31 17:43:0177 ASCIIToUTF16("number1")));
[email protected]2a958552011-05-05 04:01:2178 AutofillScanner scanner(list_.get());
[email protected]2033dcf2011-05-27 01:47:4079 field_.reset(Parse(&scanner, false));
[email protected]224d21b82010-03-31 17:43:0180 ASSERT_EQ(static_cast<CreditCardField*>(NULL), field_.get());
81}
82
83TEST_F(CreditCardFieldTest, ParseMiniumCreditCard) {
84 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:5785 new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Card Number"),
[email protected]224d21b82010-03-31 17:43:0186 ASCIIToUTF16("card_number"),
87 string16(),
[email protected]ee0e2d92010-05-14 19:21:1888 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:1689 0,
90 false),
[email protected]224d21b82010-03-31 17:43:0191 ASCIIToUTF16("number1")));
92 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:5793 new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Exp Month"),
[email protected]224d21b82010-03-31 17:43:0194 ASCIIToUTF16("ccmonth"),
95 string16(),
[email protected]ee0e2d92010-05-14 19:21:1896 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:1697 0,
98 false),
[email protected]224d21b82010-03-31 17:43:0199 ASCIIToUTF16("month1")));
100 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57101 new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Exp Year"),
[email protected]224d21b82010-03-31 17:43:01102 ASCIIToUTF16("ccyear"),
103 string16(),
[email protected]ee0e2d92010-05-14 19:21:18104 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16105 0,
106 false),
[email protected]224d21b82010-03-31 17:43:01107 ASCIIToUTF16("year1")));
[email protected]2a958552011-05-05 04:01:21108 AutofillScanner scanner(list_.get());
[email protected]2033dcf2011-05-27 01:47:40109 field_.reset(Parse(&scanner, false));
[email protected]224d21b82010-03-31 17:43:01110 ASSERT_NE(static_cast<CreditCardField*>(NULL), field_.get());
[email protected]1a9d0de22011-05-19 23:42:46111 ASSERT_TRUE(field_->ClassifyField(&field_type_map_));
[email protected]224d21b82010-03-31 17:43:01112 ASSERT_TRUE(
113 field_type_map_.find(ASCIIToUTF16("number1")) != field_type_map_.end());
114 EXPECT_EQ(CREDIT_CARD_NUMBER, field_type_map_[ASCIIToUTF16("number1")]);
115 ASSERT_TRUE(
116 field_type_map_.find(ASCIIToUTF16("month1")) != field_type_map_.end());
117 EXPECT_EQ(CREDIT_CARD_EXP_MONTH, field_type_map_[ASCIIToUTF16("month1")]);
118 ASSERT_TRUE(
119 field_type_map_.find(ASCIIToUTF16("year1")) != field_type_map_.end());
120 EXPECT_EQ(CREDIT_CARD_EXP_4_DIGIT_YEAR,
121 field_type_map_[ASCIIToUTF16("year1")]);
122}
123
124TEST_F(CreditCardFieldTest, ParseMiniumCreditCardEcml) {
125 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57126 new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Card Number"),
[email protected]50134dd62010-07-14 20:04:39127 ASCIIToUTF16(kEcmlCardNumber),
[email protected]224d21b82010-03-31 17:43:01128 string16(),
[email protected]ee0e2d92010-05-14 19:21:18129 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16130 0,
131 false),
[email protected]224d21b82010-03-31 17:43:01132 ASCIIToUTF16("number1")));
133 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57134 new AutofillField(
[email protected]50134dd62010-07-14 20:04:39135 webkit_glue::FormField(ASCIIToUTF16("Exp Month"),
136 ASCIIToUTF16(kEcmlCardExpireMonth),
137 string16(),
138 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16139 0,
140 false),
[email protected]50134dd62010-07-14 20:04:39141 ASCIIToUTF16("month1")));
[email protected]224d21b82010-03-31 17:43:01142 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57143 new AutofillField(
[email protected]50134dd62010-07-14 20:04:39144 webkit_glue::FormField(ASCIIToUTF16("Exp Year"),
145 ASCIIToUTF16(kEcmlCardExpireYear),
146 string16(),
147 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16148 0,
149 false),
[email protected]50134dd62010-07-14 20:04:39150 ASCIIToUTF16("year1")));
[email protected]2a958552011-05-05 04:01:21151 AutofillScanner scanner(list_.get());
[email protected]2033dcf2011-05-27 01:47:40152 field_.reset(Parse(&scanner, false));
[email protected]224d21b82010-03-31 17:43:01153 ASSERT_NE(static_cast<CreditCardField*>(NULL), field_.get());
[email protected]1a9d0de22011-05-19 23:42:46154 ASSERT_TRUE(field_->ClassifyField(&field_type_map_));
[email protected]224d21b82010-03-31 17:43:01155 ASSERT_TRUE(
156 field_type_map_.find(ASCIIToUTF16("number1")) != field_type_map_.end());
157 EXPECT_EQ(CREDIT_CARD_NUMBER, field_type_map_[ASCIIToUTF16("number1")]);
158 ASSERT_TRUE(
159 field_type_map_.find(ASCIIToUTF16("month1")) != field_type_map_.end());
160 EXPECT_EQ(CREDIT_CARD_EXP_MONTH, field_type_map_[ASCIIToUTF16("month1")]);
161 ASSERT_TRUE(
162 field_type_map_.find(ASCIIToUTF16("year1")) != field_type_map_.end());
163 EXPECT_EQ(CREDIT_CARD_EXP_4_DIGIT_YEAR,
164 field_type_map_[ASCIIToUTF16("year1")]);
165}
166
167TEST_F(CreditCardFieldTest, ParseFullCreditCard) {
168 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57169 new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Name on Card"),
[email protected]224d21b82010-03-31 17:43:01170 ASCIIToUTF16("name on card"),
171 string16(),
[email protected]ee0e2d92010-05-14 19:21:18172 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16173 0,
174 false),
[email protected]224d21b82010-03-31 17:43:01175 ASCIIToUTF16("name1")));
176 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57177 new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Card Number"),
[email protected]224d21b82010-03-31 17:43:01178 ASCIIToUTF16("card_number"),
179 string16(),
[email protected]ee0e2d92010-05-14 19:21:18180 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16181 0,
182 false),
[email protected]224d21b82010-03-31 17:43:01183 ASCIIToUTF16("number1")));
184 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57185 new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Exp Month"),
[email protected]224d21b82010-03-31 17:43:01186 ASCIIToUTF16("ccmonth"),
187 string16(),
[email protected]ee0e2d92010-05-14 19:21:18188 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16189 0,
190 false),
[email protected]224d21b82010-03-31 17:43:01191 ASCIIToUTF16("month1")));
192 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57193 new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Exp Year"),
[email protected]224d21b82010-03-31 17:43:01194 ASCIIToUTF16("ccyear"),
195 string16(),
[email protected]ee0e2d92010-05-14 19:21:18196 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16197 0,
198 false),
[email protected]224d21b82010-03-31 17:43:01199 ASCIIToUTF16("year1")));
200 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57201 new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Verification"),
[email protected]224d21b82010-03-31 17:43:01202 ASCIIToUTF16("verification"),
203 string16(),
[email protected]ee0e2d92010-05-14 19:21:18204 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16205 0,
206 false),
[email protected]224d21b82010-03-31 17:43:01207 ASCIIToUTF16("cvc1")));
[email protected]2a958552011-05-05 04:01:21208 AutofillScanner scanner(list_.get());
[email protected]2033dcf2011-05-27 01:47:40209 field_.reset(Parse(&scanner, false));
[email protected]224d21b82010-03-31 17:43:01210 ASSERT_NE(static_cast<CreditCardField*>(NULL), field_.get());
[email protected]1a9d0de22011-05-19 23:42:46211 ASSERT_TRUE(field_->ClassifyField(&field_type_map_));
[email protected]224d21b82010-03-31 17:43:01212 ASSERT_TRUE(
213 field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end());
214 EXPECT_EQ(CREDIT_CARD_NAME, field_type_map_[ASCIIToUTF16("name1")]);
215 ASSERT_TRUE(
216 field_type_map_.find(ASCIIToUTF16("number1")) != field_type_map_.end());
217 EXPECT_EQ(CREDIT_CARD_NUMBER, field_type_map_[ASCIIToUTF16("number1")]);
218 ASSERT_TRUE(
219 field_type_map_.find(ASCIIToUTF16("month1")) != field_type_map_.end());
220 EXPECT_EQ(CREDIT_CARD_EXP_MONTH, field_type_map_[ASCIIToUTF16("month1")]);
221 ASSERT_TRUE(
222 field_type_map_.find(ASCIIToUTF16("year1")) != field_type_map_.end());
223 EXPECT_EQ(CREDIT_CARD_EXP_4_DIGIT_YEAR,
224 field_type_map_[ASCIIToUTF16("year1")]);
[email protected]cea1d112010-07-01 00:57:33225 // We don't store CVV.
226 EXPECT_TRUE(
227 field_type_map_.find(ASCIIToUTF16("cvc1")) == field_type_map_.end());
[email protected]224d21b82010-03-31 17:43:01228}
229
230TEST_F(CreditCardFieldTest, ParseFullCreditCardEcml) {
231 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57232 new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Name on Card"),
[email protected]50134dd62010-07-14 20:04:39233 ASCIIToUTF16(kEcmlCardHolder),
[email protected]224d21b82010-03-31 17:43:01234 string16(),
[email protected]ee0e2d92010-05-14 19:21:18235 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16236 0,
237 false),
[email protected]224d21b82010-03-31 17:43:01238 ASCIIToUTF16("name1")));
239 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57240 new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Card Number"),
[email protected]50134dd62010-07-14 20:04:39241 ASCIIToUTF16(kEcmlCardNumber),
[email protected]224d21b82010-03-31 17:43:01242 string16(),
[email protected]ee0e2d92010-05-14 19:21:18243 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16244 0,
245 false),
[email protected]224d21b82010-03-31 17:43:01246 ASCIIToUTF16("number1")));
247 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57248 new AutofillField(
[email protected]50134dd62010-07-14 20:04:39249 webkit_glue::FormField(ASCIIToUTF16("Exp Month"),
250 ASCIIToUTF16(kEcmlCardExpireMonth),
251 string16(),
252 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16253 0,
254 false),
[email protected]50134dd62010-07-14 20:04:39255 ASCIIToUTF16("month1")));
[email protected]224d21b82010-03-31 17:43:01256 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57257 new AutofillField(
[email protected]50134dd62010-07-14 20:04:39258 webkit_glue::FormField(ASCIIToUTF16("Exp Year"),
259 ASCIIToUTF16(kEcmlCardExpireYear),
260 string16(),
261 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16262 0,
263 false),
[email protected]50134dd62010-07-14 20:04:39264 ASCIIToUTF16("year1")));
[email protected]224d21b82010-03-31 17:43:01265 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57266 new AutofillField(
[email protected]50134dd62010-07-14 20:04:39267 webkit_glue::FormField(ASCIIToUTF16("Verification"),
268 ASCIIToUTF16(kEcmlCardVerification),
269 string16(),
270 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16271 0,
272 false),
[email protected]50134dd62010-07-14 20:04:39273 ASCIIToUTF16("cvc1")));
[email protected]2a958552011-05-05 04:01:21274 AutofillScanner scanner(list_.get());
[email protected]2033dcf2011-05-27 01:47:40275 field_.reset(Parse(&scanner, false));
[email protected]224d21b82010-03-31 17:43:01276 ASSERT_NE(static_cast<CreditCardField*>(NULL), field_.get());
[email protected]1a9d0de22011-05-19 23:42:46277 ASSERT_TRUE(field_->ClassifyField(&field_type_map_));
[email protected]224d21b82010-03-31 17:43:01278 ASSERT_TRUE(
279 field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end());
280 EXPECT_EQ(CREDIT_CARD_NAME, field_type_map_[ASCIIToUTF16("name1")]);
281 ASSERT_TRUE(
282 field_type_map_.find(ASCIIToUTF16("number1")) != field_type_map_.end());
283 EXPECT_EQ(CREDIT_CARD_NUMBER, field_type_map_[ASCIIToUTF16("number1")]);
284 ASSERT_TRUE(
285 field_type_map_.find(ASCIIToUTF16("month1")) != field_type_map_.end());
286 EXPECT_EQ(CREDIT_CARD_EXP_MONTH, field_type_map_[ASCIIToUTF16("month1")]);
287 ASSERT_TRUE(
288 field_type_map_.find(ASCIIToUTF16("year1")) != field_type_map_.end());
289 EXPECT_EQ(CREDIT_CARD_EXP_4_DIGIT_YEAR,
290 field_type_map_[ASCIIToUTF16("year1")]);
[email protected]cea1d112010-07-01 00:57:33291 // We don't store the CVV.
292 EXPECT_TRUE(
293 field_type_map_.find(ASCIIToUTF16("cvc1")) == field_type_map_.end());
[email protected]224d21b82010-03-31 17:43:01294}
295
[email protected]3651cf82010-05-07 17:14:34296TEST_F(CreditCardFieldTest, ParseExpMonthYear) {
297 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57298 new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Name on Card"),
[email protected]3651cf82010-05-07 17:14:34299 ASCIIToUTF16("Name"),
300 string16(),
[email protected]ee0e2d92010-05-14 19:21:18301 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16302 0,
303 false),
[email protected]3651cf82010-05-07 17:14:34304 ASCIIToUTF16("name")));
305 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57306 new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Card Number"),
[email protected]3651cf82010-05-07 17:14:34307 ASCIIToUTF16("Card"),
308 string16(),
[email protected]ee0e2d92010-05-14 19:21:18309 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16310 0,
311 false),
[email protected]3651cf82010-05-07 17:14:34312 ASCIIToUTF16("number")));
313 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57314 new AutofillField(
[email protected]3651cf82010-05-07 17:14:34315 webkit_glue::FormField(ASCIIToUTF16("ExpDate Month / Year"),
316 ASCIIToUTF16("ExpDate"),
317 string16(),
[email protected]ee0e2d92010-05-14 19:21:18318 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16319 0,
320 false),
[email protected]3651cf82010-05-07 17:14:34321 ASCIIToUTF16("month")));
322 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57323 new AutofillField(
[email protected]3651cf82010-05-07 17:14:34324 webkit_glue::FormField(ASCIIToUTF16("ExpDate Month / Year"),
325 ASCIIToUTF16("ExpDate"),
326 string16(),
[email protected]ee0e2d92010-05-14 19:21:18327 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16328 0,
329 false),
[email protected]3651cf82010-05-07 17:14:34330 ASCIIToUTF16("year")));
[email protected]2a958552011-05-05 04:01:21331 AutofillScanner scanner(list_.get());
[email protected]2033dcf2011-05-27 01:47:40332 field_.reset(Parse(&scanner, false));
[email protected]3651cf82010-05-07 17:14:34333 ASSERT_NE(static_cast<CreditCardField*>(NULL), field_.get());
[email protected]1a9d0de22011-05-19 23:42:46334 ASSERT_TRUE(field_->ClassifyField(&field_type_map_));
[email protected]3651cf82010-05-07 17:14:34335 ASSERT_TRUE(
336 field_type_map_.find(ASCIIToUTF16("name")) != field_type_map_.end());
337 EXPECT_EQ(CREDIT_CARD_NAME, field_type_map_[ASCIIToUTF16("name")]);
338 ASSERT_TRUE(
339 field_type_map_.find(ASCIIToUTF16("number")) != field_type_map_.end());
340 EXPECT_EQ(CREDIT_CARD_NUMBER, field_type_map_[ASCIIToUTF16("number")]);
341 ASSERT_TRUE(
342 field_type_map_.find(ASCIIToUTF16("month")) != field_type_map_.end());
343 EXPECT_EQ(CREDIT_CARD_EXP_MONTH, field_type_map_[ASCIIToUTF16("month")]);
344 ASSERT_TRUE(
345 field_type_map_.find(ASCIIToUTF16("year")) != field_type_map_.end());
346 EXPECT_EQ(CREDIT_CARD_EXP_4_DIGIT_YEAR,
347 field_type_map_[ASCIIToUTF16("year")]);
348}
349
350TEST_F(CreditCardFieldTest, ParseExpMonthYear2) {
351 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57352 new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Name on Card"),
[email protected]3651cf82010-05-07 17:14:34353 ASCIIToUTF16("Name"),
354 string16(),
[email protected]ee0e2d92010-05-14 19:21:18355 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16356 0,
357 false),
[email protected]3651cf82010-05-07 17:14:34358 ASCIIToUTF16("name")));
359 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57360 new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Card Number"),
[email protected]3651cf82010-05-07 17:14:34361 ASCIIToUTF16("Card"),
362 string16(),
[email protected]ee0e2d92010-05-14 19:21:18363 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16364 0,
365 false),
[email protected]3651cf82010-05-07 17:14:34366 ASCIIToUTF16("number")));
367 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57368 new AutofillField(
[email protected]3651cf82010-05-07 17:14:34369 webkit_glue::FormField(ASCIIToUTF16("Expiration date Month / Year"),
370 ASCIIToUTF16("ExpDate"),
371 string16(),
[email protected]ee0e2d92010-05-14 19:21:18372 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16373 0,
374 false),
[email protected]3651cf82010-05-07 17:14:34375 ASCIIToUTF16("month")));
376 list_.push_back(
[email protected]c87481cd2011-03-04 12:29:57377 new AutofillField(
[email protected]3651cf82010-05-07 17:14:34378 webkit_glue::FormField(ASCIIToUTF16("Expiration date Month / Year"),
379 ASCIIToUTF16("ExpDate"),
380 string16(),
[email protected]ee0e2d92010-05-14 19:21:18381 ASCIIToUTF16("text"),
[email protected]3bb80e42010-11-29 22:27:16382 0,
383 false),
[email protected]3651cf82010-05-07 17:14:34384 ASCIIToUTF16("year")));
[email protected]2a958552011-05-05 04:01:21385 AutofillScanner scanner(list_.get());
[email protected]2033dcf2011-05-27 01:47:40386 field_.reset(Parse(&scanner, false));
[email protected]3651cf82010-05-07 17:14:34387 ASSERT_NE(static_cast<CreditCardField*>(NULL), field_.get());
[email protected]1a9d0de22011-05-19 23:42:46388 ASSERT_TRUE(field_->ClassifyField(&field_type_map_));
[email protected]3651cf82010-05-07 17:14:34389 ASSERT_TRUE(
390 field_type_map_.find(ASCIIToUTF16("name")) != field_type_map_.end());
391 EXPECT_EQ(CREDIT_CARD_NAME, field_type_map_[ASCIIToUTF16("name")]);
392 ASSERT_TRUE(
393 field_type_map_.find(ASCIIToUTF16("number")) != field_type_map_.end());
394 EXPECT_EQ(CREDIT_CARD_NUMBER, field_type_map_[ASCIIToUTF16("number")]);
395 ASSERT_TRUE(
396 field_type_map_.find(ASCIIToUTF16("month")) != field_type_map_.end());
397 EXPECT_EQ(CREDIT_CARD_EXP_MONTH, field_type_map_[ASCIIToUTF16("month")]);
398 ASSERT_TRUE(
399 field_type_map_.find(ASCIIToUTF16("year")) != field_type_map_.end());
400 EXPECT_EQ(CREDIT_CARD_EXP_4_DIGIT_YEAR,
401 field_type_map_[ASCIIToUTF16("year")]);
402}