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 "chrome/common/form_field_data.h" |
12 #include "testing/gtest/include/gtest/gtest.h" | 12 #include "testing/gtest/include/gtest/gtest.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 |
23 // Downcast for tests. | 23 // Downcast for tests. |
24 static CreditCardField* Parse(AutofillScanner* scanner) { | 24 static CreditCardField* Parse(AutofillScanner* scanner) { |
25 return | 25 return static_cast<CreditCardField*>(CreditCardField::Parse(scanner)); |
26 static_cast<CreditCardField*>(CreditCardField::Parse(scanner, false)); | |
27 } | |
28 static CreditCardField* ParseWithNewFieldTypes(AutofillScanner* scanner) { | |
29 return static_cast<CreditCardField*>(CreditCardField::Parse(scanner, true)); | |
30 } | 26 } |
31 | 27 |
32 private: | 28 private: |
33 DISALLOW_COPY_AND_ASSIGN(CreditCardFieldTest); | 29 DISALLOW_COPY_AND_ASSIGN(CreditCardFieldTest); |
34 }; | 30 }; |
35 | 31 |
36 TEST_F(CreditCardFieldTest, Empty) { | 32 TEST_F(CreditCardFieldTest, Empty) { |
37 AutofillScanner scanner(list_.get()); | 33 AutofillScanner scanner(list_.get()); |
38 field_.reset(Parse(&scanner)); | 34 field_.reset(Parse(&scanner)); |
39 ASSERT_EQ(static_cast<CreditCardField*>(NULL), field_.get()); | 35 ASSERT_EQ(static_cast<CreditCardField*>(NULL), field_.get()); |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
134 | 130 |
135 field.label = ASCIIToUTF16("Verification"); | 131 field.label = ASCIIToUTF16("Verification"); |
136 field.name = ASCIIToUTF16("verification"); | 132 field.name = ASCIIToUTF16("verification"); |
137 list_.push_back(new AutofillField(field, ASCIIToUTF16("cvc"))); | 133 list_.push_back(new AutofillField(field, ASCIIToUTF16("cvc"))); |
138 | 134 |
139 AutofillScanner scanner(list_.get()); | 135 AutofillScanner scanner(list_.get()); |
140 field_.reset(Parse(&scanner)); | 136 field_.reset(Parse(&scanner)); |
141 ASSERT_NE(static_cast<CreditCardField*>(NULL), field_.get()); | 137 ASSERT_NE(static_cast<CreditCardField*>(NULL), field_.get()); |
142 ASSERT_TRUE(field_->ClassifyField(&field_type_map_)); | 138 ASSERT_TRUE(field_->ClassifyField(&field_type_map_)); |
143 ASSERT_TRUE( | 139 ASSERT_TRUE( |
144 field_type_map_.find(ASCIIToUTF16("name")) != field_type_map_.end()); | |
145 EXPECT_EQ(CREDIT_CARD_NAME, field_type_map_[ASCIIToUTF16("name")]); | |
146 ASSERT_TRUE( | |
147 field_type_map_.find(ASCIIToUTF16("number")) != field_type_map_.end()); | |
148 EXPECT_EQ(CREDIT_CARD_NUMBER, field_type_map_[ASCIIToUTF16("number")]); | |
149 ASSERT_TRUE( | |
150 field_type_map_.find(ASCIIToUTF16("month")) != field_type_map_.end()); | |
151 EXPECT_EQ(CREDIT_CARD_EXP_MONTH, field_type_map_[ASCIIToUTF16("month")]); | |
152 ASSERT_TRUE( | |
153 field_type_map_.find(ASCIIToUTF16("year")) != field_type_map_.end()); | |
154 EXPECT_EQ(CREDIT_CARD_EXP_4_DIGIT_YEAR, | |
155 field_type_map_[ASCIIToUTF16("year")]); | |
156 ASSERT_TRUE( | |
157 field_type_map_.find(ASCIIToUTF16("cvc")) != field_type_map_.end()); | |
158 EXPECT_EQ(CREDIT_CARD_VERIFICATION_CODE, | |
159 field_type_map_[ASCIIToUTF16("cvc")]); | |
160 // We don't fill card types by default. | |
161 EXPECT_TRUE( | |
162 field_type_map_.find(ASCIIToUTF16("type")) == field_type_map_.end()); | |
163 } | |
164 | |
165 TEST_F(CreditCardFieldTest, ParseCreditCardType) { | |
166 FormFieldData field; | |
167 field.form_control_type = "text"; | |
168 | |
169 field.label = ASCIIToUTF16("Card Type"); | |
170 field.name = ASCIIToUTF16("card_type"); | |
171 list_.push_back(new AutofillField(field, ASCIIToUTF16("type"))); | |
172 | |
173 field.label = ASCIIToUTF16("Name on Card"); | |
174 field.name = ASCIIToUTF16("name_on_card"); | |
175 list_.push_back(new AutofillField(field, ASCIIToUTF16("name"))); | |
176 | |
177 field.label = ASCIIToUTF16("Card Number"); | |
178 field.name = ASCIIToUTF16("card_number"); | |
179 list_.push_back(new AutofillField(field, ASCIIToUTF16("number"))); | |
180 | |
181 field.label = ASCIIToUTF16("Exp Month"); | |
182 field.name = ASCIIToUTF16("ccmonth"); | |
183 list_.push_back(new AutofillField(field, ASCIIToUTF16("month"))); | |
184 | |
185 field.label = ASCIIToUTF16("Exp Year"); | |
186 field.name = ASCIIToUTF16("ccyear"); | |
187 list_.push_back(new AutofillField(field, ASCIIToUTF16("year"))); | |
188 | |
189 field.label = ASCIIToUTF16("Verification"); | |
190 field.name = ASCIIToUTF16("verification"); | |
191 list_.push_back(new AutofillField(field, ASCIIToUTF16("cvc"))); | |
192 | |
193 AutofillScanner scanner(list_.get()); | |
194 field_.reset(ParseWithNewFieldTypes(&scanner)); | |
195 ASSERT_NE(static_cast<CreditCardField*>(NULL), field_.get()); | |
196 ASSERT_TRUE(field_->ClassifyField(&field_type_map_)); | |
197 ASSERT_TRUE( | |
198 field_type_map_.find(ASCIIToUTF16("type")) != field_type_map_.end()); | 140 field_type_map_.find(ASCIIToUTF16("type")) != field_type_map_.end()); |
199 EXPECT_EQ(CREDIT_CARD_TYPE, field_type_map_[ASCIIToUTF16("type")]); | 141 EXPECT_EQ(CREDIT_CARD_TYPE, field_type_map_[ASCIIToUTF16("type")]); |
200 ASSERT_TRUE( | 142 ASSERT_TRUE( |
201 field_type_map_.find(ASCIIToUTF16("name")) != field_type_map_.end()); | 143 field_type_map_.find(ASCIIToUTF16("name")) != field_type_map_.end()); |
202 EXPECT_EQ(CREDIT_CARD_NAME, field_type_map_[ASCIIToUTF16("name")]); | 144 EXPECT_EQ(CREDIT_CARD_NAME, field_type_map_[ASCIIToUTF16("name")]); |
203 ASSERT_TRUE( | 145 ASSERT_TRUE( |
204 field_type_map_.find(ASCIIToUTF16("number")) != field_type_map_.end()); | 146 field_type_map_.find(ASCIIToUTF16("number")) != field_type_map_.end()); |
205 EXPECT_EQ(CREDIT_CARD_NUMBER, field_type_map_[ASCIIToUTF16("number")]); | 147 EXPECT_EQ(CREDIT_CARD_NUMBER, field_type_map_[ASCIIToUTF16("number")]); |
206 ASSERT_TRUE( | 148 ASSERT_TRUE( |
207 field_type_map_.find(ASCIIToUTF16("month")) != field_type_map_.end()); | 149 field_type_map_.find(ASCIIToUTF16("month")) != field_type_map_.end()); |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
367 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1"))); | 309 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1"))); |
368 | 310 |
369 AutofillScanner scanner(list_.get()); | 311 AutofillScanner scanner(list_.get()); |
370 field_.reset(Parse(&scanner)); | 312 field_.reset(Parse(&scanner)); |
371 ASSERT_NE(static_cast<CreditCardField*>(NULL), field_.get()); | 313 ASSERT_NE(static_cast<CreditCardField*>(NULL), field_.get()); |
372 ASSERT_TRUE(field_->ClassifyField(&field_type_map_)); | 314 ASSERT_TRUE(field_->ClassifyField(&field_type_map_)); |
373 ASSERT_TRUE( | 315 ASSERT_TRUE( |
374 field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end()); | 316 field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end()); |
375 EXPECT_EQ(CREDIT_CARD_NAME, field_type_map_[ASCIIToUTF16("name1")]); | 317 EXPECT_EQ(CREDIT_CARD_NAME, field_type_map_[ASCIIToUTF16("name1")]); |
376 } | 318 } |
OLD | NEW |