OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/memory/scoped_ptr.h" | 5 #include "base/memory/scoped_ptr.h" |
6 #include "base/memory/scoped_vector.h" | 6 #include "base/memory/scoped_vector.h" |
7 #include "base/utf_string_conversions.h" | 7 #include "base/utf_string_conversions.h" |
8 #include "chrome/browser/autofill/autofill_field.h" | 8 #include "chrome/browser/autofill/autofill_field.h" |
9 #include "chrome/browser/autofill/autofill_scanner.h" | 9 #include "chrome/browser/autofill/autofill_scanner.h" |
10 #include "chrome/browser/autofill/credit_card_field.h" | 10 #include "chrome/browser/autofill/credit_card_field.h" |
| 11 #include "chrome/common/form_field_data.h" |
11 #include "testing/gtest/include/gtest/gtest.h" | 12 #include "testing/gtest/include/gtest/gtest.h" |
12 #include "webkit/forms/form_field.h" | |
13 | 13 |
14 class CreditCardFieldTest : public testing::Test { | 14 class CreditCardFieldTest : public testing::Test { |
15 public: | 15 public: |
16 CreditCardFieldTest() {} | 16 CreditCardFieldTest() {} |
17 | 17 |
18 protected: | 18 protected: |
19 ScopedVector<const AutofillField> list_; | 19 ScopedVector<const AutofillField> list_; |
20 scoped_ptr<CreditCardField> field_; | 20 scoped_ptr<CreditCardField> field_; |
21 FieldTypeMap field_type_map_; | 21 FieldTypeMap field_type_map_; |
22 | 22 |
(...skipping 13 matching lines...) Expand all Loading... |
36 } | 36 } |
37 | 37 |
38 TEST_F(CreditCardFieldTest, NonParse) { | 38 TEST_F(CreditCardFieldTest, NonParse) { |
39 list_.push_back(new AutofillField); | 39 list_.push_back(new AutofillField); |
40 AutofillScanner scanner(list_.get()); | 40 AutofillScanner scanner(list_.get()); |
41 field_.reset(Parse(&scanner)); | 41 field_.reset(Parse(&scanner)); |
42 ASSERT_EQ(static_cast<CreditCardField*>(NULL), field_.get()); | 42 ASSERT_EQ(static_cast<CreditCardField*>(NULL), field_.get()); |
43 } | 43 } |
44 | 44 |
45 TEST_F(CreditCardFieldTest, ParseCreditCardNoNumber) { | 45 TEST_F(CreditCardFieldTest, ParseCreditCardNoNumber) { |
46 webkit::forms::FormField field; | 46 FormFieldData field; |
47 field.form_control_type = ASCIIToUTF16("text"); | 47 field.form_control_type = ASCIIToUTF16("text"); |
48 | 48 |
49 field.label = ASCIIToUTF16("Exp Month"); | 49 field.label = ASCIIToUTF16("Exp Month"); |
50 field.name = ASCIIToUTF16("ccmonth"); | 50 field.name = ASCIIToUTF16("ccmonth"); |
51 list_.push_back(new AutofillField(field, ASCIIToUTF16("month1"))); | 51 list_.push_back(new AutofillField(field, ASCIIToUTF16("month1"))); |
52 | 52 |
53 field.label = ASCIIToUTF16("Exp Year"); | 53 field.label = ASCIIToUTF16("Exp Year"); |
54 field.name = ASCIIToUTF16("ccyear"); | 54 field.name = ASCIIToUTF16("ccyear"); |
55 list_.push_back(new AutofillField(field, ASCIIToUTF16("year2"))); | 55 list_.push_back(new AutofillField(field, ASCIIToUTF16("year2"))); |
56 | 56 |
57 AutofillScanner scanner(list_.get()); | 57 AutofillScanner scanner(list_.get()); |
58 field_.reset(Parse(&scanner)); | 58 field_.reset(Parse(&scanner)); |
59 ASSERT_EQ(static_cast<CreditCardField*>(NULL), field_.get()); | 59 ASSERT_EQ(static_cast<CreditCardField*>(NULL), field_.get()); |
60 } | 60 } |
61 | 61 |
62 TEST_F(CreditCardFieldTest, ParseCreditCardNoDate) { | 62 TEST_F(CreditCardFieldTest, ParseCreditCardNoDate) { |
63 webkit::forms::FormField field; | 63 FormFieldData field; |
64 field.form_control_type = ASCIIToUTF16("text"); | 64 field.form_control_type = ASCIIToUTF16("text"); |
65 | 65 |
66 field.label = ASCIIToUTF16("Card Number"); | 66 field.label = ASCIIToUTF16("Card Number"); |
67 field.name = ASCIIToUTF16("card_number"); | 67 field.name = ASCIIToUTF16("card_number"); |
68 list_.push_back(new AutofillField(field, ASCIIToUTF16("number1"))); | 68 list_.push_back(new AutofillField(field, ASCIIToUTF16("number1"))); |
69 | 69 |
70 AutofillScanner scanner(list_.get()); | 70 AutofillScanner scanner(list_.get()); |
71 field_.reset(Parse(&scanner)); | 71 field_.reset(Parse(&scanner)); |
72 ASSERT_EQ(static_cast<CreditCardField*>(NULL), field_.get()); | 72 ASSERT_EQ(static_cast<CreditCardField*>(NULL), field_.get()); |
73 } | 73 } |
74 | 74 |
75 TEST_F(CreditCardFieldTest, ParseMiniumCreditCard) { | 75 TEST_F(CreditCardFieldTest, ParseMiniumCreditCard) { |
76 webkit::forms::FormField field; | 76 FormFieldData field; |
77 field.form_control_type = ASCIIToUTF16("text"); | 77 field.form_control_type = ASCIIToUTF16("text"); |
78 | 78 |
79 field.label = ASCIIToUTF16("Card Number"); | 79 field.label = ASCIIToUTF16("Card Number"); |
80 field.name = ASCIIToUTF16("card_number"); | 80 field.name = ASCIIToUTF16("card_number"); |
81 list_.push_back(new AutofillField(field, ASCIIToUTF16("number1"))); | 81 list_.push_back(new AutofillField(field, ASCIIToUTF16("number1"))); |
82 | 82 |
83 field.label = ASCIIToUTF16("Exp Month"); | 83 field.label = ASCIIToUTF16("Exp Month"); |
84 field.name = ASCIIToUTF16("ccmonth"); | 84 field.name = ASCIIToUTF16("ccmonth"); |
85 list_.push_back(new AutofillField(field, ASCIIToUTF16("month2"))); | 85 list_.push_back(new AutofillField(field, ASCIIToUTF16("month2"))); |
86 | 86 |
(...skipping 11 matching lines...) Expand all Loading... |
98 ASSERT_TRUE( | 98 ASSERT_TRUE( |
99 field_type_map_.find(ASCIIToUTF16("month2")) != field_type_map_.end()); | 99 field_type_map_.find(ASCIIToUTF16("month2")) != field_type_map_.end()); |
100 EXPECT_EQ(CREDIT_CARD_EXP_MONTH, field_type_map_[ASCIIToUTF16("month2")]); | 100 EXPECT_EQ(CREDIT_CARD_EXP_MONTH, field_type_map_[ASCIIToUTF16("month2")]); |
101 ASSERT_TRUE( | 101 ASSERT_TRUE( |
102 field_type_map_.find(ASCIIToUTF16("year3")) != field_type_map_.end()); | 102 field_type_map_.find(ASCIIToUTF16("year3")) != field_type_map_.end()); |
103 EXPECT_EQ(CREDIT_CARD_EXP_4_DIGIT_YEAR, | 103 EXPECT_EQ(CREDIT_CARD_EXP_4_DIGIT_YEAR, |
104 field_type_map_[ASCIIToUTF16("year3")]); | 104 field_type_map_[ASCIIToUTF16("year3")]); |
105 } | 105 } |
106 | 106 |
107 TEST_F(CreditCardFieldTest, ParseFullCreditCard) { | 107 TEST_F(CreditCardFieldTest, ParseFullCreditCard) { |
108 webkit::forms::FormField field; | 108 FormFieldData field; |
109 field.form_control_type = ASCIIToUTF16("text"); | 109 field.form_control_type = ASCIIToUTF16("text"); |
110 | 110 |
111 field.label = ASCIIToUTF16("Name on Card"); | 111 field.label = ASCIIToUTF16("Name on Card"); |
112 field.name = ASCIIToUTF16("name_on_card"); | 112 field.name = ASCIIToUTF16("name_on_card"); |
113 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1"))); | 113 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1"))); |
114 | 114 |
115 field.label = ASCIIToUTF16("Card Number"); | 115 field.label = ASCIIToUTF16("Card Number"); |
116 field.name = ASCIIToUTF16("card_number"); | 116 field.name = ASCIIToUTF16("card_number"); |
117 list_.push_back(new AutofillField(field, ASCIIToUTF16("number2"))); | 117 list_.push_back(new AutofillField(field, ASCIIToUTF16("number2"))); |
118 | 118 |
(...skipping 25 matching lines...) Expand all Loading... |
144 ASSERT_TRUE( | 144 ASSERT_TRUE( |
145 field_type_map_.find(ASCIIToUTF16("year4")) != field_type_map_.end()); | 145 field_type_map_.find(ASCIIToUTF16("year4")) != field_type_map_.end()); |
146 EXPECT_EQ(CREDIT_CARD_EXP_4_DIGIT_YEAR, | 146 EXPECT_EQ(CREDIT_CARD_EXP_4_DIGIT_YEAR, |
147 field_type_map_[ASCIIToUTF16("year4")]); | 147 field_type_map_[ASCIIToUTF16("year4")]); |
148 // We don't store CVV. | 148 // We don't store CVV. |
149 EXPECT_TRUE( | 149 EXPECT_TRUE( |
150 field_type_map_.find(ASCIIToUTF16("cvc5")) == field_type_map_.end()); | 150 field_type_map_.find(ASCIIToUTF16("cvc5")) == field_type_map_.end()); |
151 } | 151 } |
152 | 152 |
153 TEST_F(CreditCardFieldTest, ParseExpMonthYear) { | 153 TEST_F(CreditCardFieldTest, ParseExpMonthYear) { |
154 webkit::forms::FormField field; | 154 FormFieldData field; |
155 field.form_control_type = ASCIIToUTF16("text"); | 155 field.form_control_type = ASCIIToUTF16("text"); |
156 | 156 |
157 field.label = ASCIIToUTF16("Name on Card"); | 157 field.label = ASCIIToUTF16("Name on Card"); |
158 field.name = ASCIIToUTF16("name_on_card"); | 158 field.name = ASCIIToUTF16("name_on_card"); |
159 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1"))); | 159 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1"))); |
160 | 160 |
161 field.label = ASCIIToUTF16("Card Number"); | 161 field.label = ASCIIToUTF16("Card Number"); |
162 field.name = ASCIIToUTF16("card_number"); | 162 field.name = ASCIIToUTF16("card_number"); |
163 list_.push_back(new AutofillField(field, ASCIIToUTF16("number2"))); | 163 list_.push_back(new AutofillField(field, ASCIIToUTF16("number2"))); |
164 | 164 |
(...skipping 18 matching lines...) Expand all Loading... |
183 ASSERT_TRUE( | 183 ASSERT_TRUE( |
184 field_type_map_.find(ASCIIToUTF16("month3")) != field_type_map_.end()); | 184 field_type_map_.find(ASCIIToUTF16("month3")) != field_type_map_.end()); |
185 EXPECT_EQ(CREDIT_CARD_EXP_MONTH, field_type_map_[ASCIIToUTF16("month3")]); | 185 EXPECT_EQ(CREDIT_CARD_EXP_MONTH, field_type_map_[ASCIIToUTF16("month3")]); |
186 ASSERT_TRUE( | 186 ASSERT_TRUE( |
187 field_type_map_.find(ASCIIToUTF16("year4")) != field_type_map_.end()); | 187 field_type_map_.find(ASCIIToUTF16("year4")) != field_type_map_.end()); |
188 EXPECT_EQ(CREDIT_CARD_EXP_4_DIGIT_YEAR, | 188 EXPECT_EQ(CREDIT_CARD_EXP_4_DIGIT_YEAR, |
189 field_type_map_[ASCIIToUTF16("year4")]); | 189 field_type_map_[ASCIIToUTF16("year4")]); |
190 } | 190 } |
191 | 191 |
192 TEST_F(CreditCardFieldTest, ParseExpMonthYear2) { | 192 TEST_F(CreditCardFieldTest, ParseExpMonthYear2) { |
193 webkit::forms::FormField field; | 193 FormFieldData field; |
194 field.form_control_type = ASCIIToUTF16("text"); | 194 field.form_control_type = ASCIIToUTF16("text"); |
195 | 195 |
196 field.label = ASCIIToUTF16("Name on Card"); | 196 field.label = ASCIIToUTF16("Name on Card"); |
197 field.name = ASCIIToUTF16("name_on_card"); | 197 field.name = ASCIIToUTF16("name_on_card"); |
198 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1"))); | 198 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1"))); |
199 | 199 |
200 field.label = ASCIIToUTF16("Card Number"); | 200 field.label = ASCIIToUTF16("Card Number"); |
201 field.name = ASCIIToUTF16("card_number"); | 201 field.name = ASCIIToUTF16("card_number"); |
202 list_.push_back(new AutofillField(field, ASCIIToUTF16("number2"))); | 202 list_.push_back(new AutofillField(field, ASCIIToUTF16("number2"))); |
203 | 203 |
(...skipping 18 matching lines...) Expand all Loading... |
222 ASSERT_TRUE( | 222 ASSERT_TRUE( |
223 field_type_map_.find(ASCIIToUTF16("month3")) != field_type_map_.end()); | 223 field_type_map_.find(ASCIIToUTF16("month3")) != field_type_map_.end()); |
224 EXPECT_EQ(CREDIT_CARD_EXP_MONTH, field_type_map_[ASCIIToUTF16("month3")]); | 224 EXPECT_EQ(CREDIT_CARD_EXP_MONTH, field_type_map_[ASCIIToUTF16("month3")]); |
225 ASSERT_TRUE( | 225 ASSERT_TRUE( |
226 field_type_map_.find(ASCIIToUTF16("year4")) != field_type_map_.end()); | 226 field_type_map_.find(ASCIIToUTF16("year4")) != field_type_map_.end()); |
227 EXPECT_EQ(CREDIT_CARD_EXP_4_DIGIT_YEAR, | 227 EXPECT_EQ(CREDIT_CARD_EXP_4_DIGIT_YEAR, |
228 field_type_map_[ASCIIToUTF16("year4")]); | 228 field_type_map_[ASCIIToUTF16("year4")]); |
229 } | 229 } |
230 | 230 |
231 TEST_F(CreditCardFieldTest, ParseExpField) { | 231 TEST_F(CreditCardFieldTest, ParseExpField) { |
232 webkit::forms::FormField field; | 232 FormFieldData field; |
233 field.form_control_type = ASCIIToUTF16("text"); | 233 field.form_control_type = ASCIIToUTF16("text"); |
234 | 234 |
235 field.label = ASCIIToUTF16("Name on Card"); | 235 field.label = ASCIIToUTF16("Name on Card"); |
236 field.name = ASCIIToUTF16("name_on_card"); | 236 field.name = ASCIIToUTF16("name_on_card"); |
237 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1"))); | 237 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1"))); |
238 | 238 |
239 field.label = ASCIIToUTF16("Card Number"); | 239 field.label = ASCIIToUTF16("Card Number"); |
240 field.name = ASCIIToUTF16("card_number"); | 240 field.name = ASCIIToUTF16("card_number"); |
241 list_.push_back(new AutofillField(field, ASCIIToUTF16("number2"))); | 241 list_.push_back(new AutofillField(field, ASCIIToUTF16("number2"))); |
242 | 242 |
(...skipping 11 matching lines...) Expand all Loading... |
254 ASSERT_TRUE( | 254 ASSERT_TRUE( |
255 field_type_map_.find(ASCIIToUTF16("number2")) != field_type_map_.end()); | 255 field_type_map_.find(ASCIIToUTF16("number2")) != field_type_map_.end()); |
256 EXPECT_EQ(CREDIT_CARD_NUMBER, field_type_map_[ASCIIToUTF16("number2")]); | 256 EXPECT_EQ(CREDIT_CARD_NUMBER, field_type_map_[ASCIIToUTF16("number2")]); |
257 ASSERT_TRUE( | 257 ASSERT_TRUE( |
258 field_type_map_.find(ASCIIToUTF16("exp3")) != field_type_map_.end()); | 258 field_type_map_.find(ASCIIToUTF16("exp3")) != field_type_map_.end()); |
259 EXPECT_EQ(CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR, | 259 EXPECT_EQ(CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR, |
260 field_type_map_[ASCIIToUTF16("exp3")]); | 260 field_type_map_[ASCIIToUTF16("exp3")]); |
261 } | 261 } |
262 | 262 |
263 TEST_F(CreditCardFieldTest, ParseExpField2DigitYear) { | 263 TEST_F(CreditCardFieldTest, ParseExpField2DigitYear) { |
264 webkit::forms::FormField field; | 264 FormFieldData field; |
265 field.form_control_type = ASCIIToUTF16("text"); | 265 field.form_control_type = ASCIIToUTF16("text"); |
266 | 266 |
267 field.label = ASCIIToUTF16("Name on Card"); | 267 field.label = ASCIIToUTF16("Name on Card"); |
268 field.name = ASCIIToUTF16("name_on_card"); | 268 field.name = ASCIIToUTF16("name_on_card"); |
269 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1"))); | 269 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1"))); |
270 | 270 |
271 field.label = ASCIIToUTF16("Card Number"); | 271 field.label = ASCIIToUTF16("Card Number"); |
272 field.name = ASCIIToUTF16("card_number"); | 272 field.name = ASCIIToUTF16("card_number"); |
273 list_.push_back(new AutofillField(field, ASCIIToUTF16("number2"))); | 273 list_.push_back(new AutofillField(field, ASCIIToUTF16("number2"))); |
274 | 274 |
(...skipping 11 matching lines...) Expand all Loading... |
286 ASSERT_TRUE( | 286 ASSERT_TRUE( |
287 field_type_map_.find(ASCIIToUTF16("number2")) != field_type_map_.end()); | 287 field_type_map_.find(ASCIIToUTF16("number2")) != field_type_map_.end()); |
288 EXPECT_EQ(CREDIT_CARD_NUMBER, field_type_map_[ASCIIToUTF16("number2")]); | 288 EXPECT_EQ(CREDIT_CARD_NUMBER, field_type_map_[ASCIIToUTF16("number2")]); |
289 ASSERT_TRUE( | 289 ASSERT_TRUE( |
290 field_type_map_.find(ASCIIToUTF16("exp3")) != field_type_map_.end()); | 290 field_type_map_.find(ASCIIToUTF16("exp3")) != field_type_map_.end()); |
291 EXPECT_EQ(CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR, | 291 EXPECT_EQ(CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR, |
292 field_type_map_[ASCIIToUTF16("exp3")]); | 292 field_type_map_[ASCIIToUTF16("exp3")]); |
293 } | 293 } |
294 | 294 |
295 TEST_F(CreditCardFieldTest, ParseCreditCardHolderNameWithCCFullName) { | 295 TEST_F(CreditCardFieldTest, ParseCreditCardHolderNameWithCCFullName) { |
296 webkit::forms::FormField field; | 296 FormFieldData field; |
297 field.form_control_type = ASCIIToUTF16("text"); | 297 field.form_control_type = ASCIIToUTF16("text"); |
298 | 298 |
299 field.label = ASCIIToUTF16("Name"); | 299 field.label = ASCIIToUTF16("Name"); |
300 field.name = ASCIIToUTF16("ccfullname"); | 300 field.name = ASCIIToUTF16("ccfullname"); |
301 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1"))); | 301 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1"))); |
302 | 302 |
303 AutofillScanner scanner(list_.get()); | 303 AutofillScanner scanner(list_.get()); |
304 field_.reset(Parse(&scanner)); | 304 field_.reset(Parse(&scanner)); |
305 ASSERT_NE(static_cast<CreditCardField*>(NULL), field_.get()); | 305 ASSERT_NE(static_cast<CreditCardField*>(NULL), field_.get()); |
306 ASSERT_TRUE(field_->ClassifyField(&field_type_map_)); | 306 ASSERT_TRUE(field_->ClassifyField(&field_type_map_)); |
307 ASSERT_TRUE( | 307 ASSERT_TRUE( |
308 field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end()); | 308 field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end()); |
309 EXPECT_EQ(CREDIT_CARD_NAME, field_type_map_[ASCIIToUTF16("name1")]); | 309 EXPECT_EQ(CREDIT_CARD_NAME, field_type_map_[ASCIIToUTF16("name1")]); |
310 } | 310 } |
OLD | NEW |