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

Side by Side Diff: components/autofill/core/browser/credit_card_field_unittest.cc

Issue 2609703002: Remove ScopedVector from autofill. (Closed)
Patch Set: drop the using Created 3 years, 11 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "components/autofill/core/browser/credit_card_field.h" 5 #include "components/autofill/core/browser/credit_card_field.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <vector>
8 9
9 #include "base/macros.h" 10 #include "base/macros.h"
10 #include "base/memory/ptr_util.h" 11 #include "base/memory/ptr_util.h"
11 #include "base/memory/scoped_vector.h"
12 #include "base/strings/utf_string_conversions.h" 12 #include "base/strings/utf_string_conversions.h"
13 #include "components/autofill/core/browser/autofill_field.h" 13 #include "components/autofill/core/browser/autofill_field.h"
14 #include "components/autofill/core/browser/autofill_scanner.h" 14 #include "components/autofill/core/browser/autofill_scanner.h"
15 #include "components/autofill/core/common/form_field_data.h" 15 #include "components/autofill/core/common/form_field_data.h"
16 #include "testing/gtest/include/gtest/gtest.h" 16 #include "testing/gtest/include/gtest/gtest.h"
17 17
18 using base::ASCIIToUTF16; 18 using base::ASCIIToUTF16;
19 19
20 namespace autofill { 20 namespace autofill {
21 21
22 class CreditCardFieldTest : public testing::Test { 22 class CreditCardFieldTest : public testing::Test {
23 public: 23 public:
24 CreditCardFieldTest() {} 24 CreditCardFieldTest() {}
25 ~CreditCardFieldTest() override {} 25 ~CreditCardFieldTest() override {}
26 26
27 protected: 27 protected:
28 ScopedVector<AutofillField> list_; 28 std::vector<std::unique_ptr<AutofillField>> list_;
29 std::unique_ptr<const CreditCardField> field_; 29 std::unique_ptr<const CreditCardField> field_;
30 FieldCandidatesMap field_candidates_map_; 30 FieldCandidatesMap field_candidates_map_;
31 31
32 // Parses the contents of |list_| as a form, and stores the result into 32 // Parses the contents of |list_| as a form, and stores the result into
33 // |field_|. 33 // |field_|.
34 void Parse() { 34 void Parse() {
35 AutofillScanner scanner(list_.get()); 35 AutofillScanner scanner(list_);
36 std::unique_ptr<FormField> field = CreditCardField::Parse(&scanner); 36 std::unique_ptr<FormField> field = CreditCardField::Parse(&scanner);
37 field_ = base::WrapUnique(static_cast<CreditCardField*>(field.release())); 37 field_ = base::WrapUnique(static_cast<CreditCardField*>(field.release()));
38 } 38 }
39 39
40 void MultipleParses() { 40 void MultipleParses() {
41 std::unique_ptr<FormField> field; 41 std::unique_ptr<FormField> field;
42 42
43 AutofillScanner scanner(list_.get()); 43 AutofillScanner scanner(list_);
44 while (!scanner.IsEnd()) { 44 while (!scanner.IsEnd()) {
45 field = CreditCardField::Parse(&scanner); 45 field = CreditCardField::Parse(&scanner);
46 field_ = base::WrapUnique(static_cast<CreditCardField*>(field.release())); 46 field_ = base::WrapUnique(static_cast<CreditCardField*>(field.release()));
47 if (field_ == nullptr) { 47 if (field_ == nullptr) {
48 scanner.Advance(); 48 scanner.Advance();
49 } else { 49 } else {
50 AddClassifications(); 50 AddClassifications();
51 } 51 }
52 } 52 }
53 } 53 }
54 54
55 // Associates fields with their corresponding types, based on the previous 55 // Associates fields with their corresponding types, based on the previous
56 // call to Parse(). 56 // call to Parse().
57 void AddClassifications() { 57 void AddClassifications() {
58 return field_->AddClassifications(&field_candidates_map_); 58 return field_->AddClassifications(&field_candidates_map_);
59 } 59 }
60 60
61 private: 61 private:
62 DISALLOW_COPY_AND_ASSIGN(CreditCardFieldTest); 62 DISALLOW_COPY_AND_ASSIGN(CreditCardFieldTest);
63 }; 63 };
64 64
65 TEST_F(CreditCardFieldTest, Empty) { 65 TEST_F(CreditCardFieldTest, Empty) {
66 Parse(); 66 Parse();
67 ASSERT_EQ(nullptr, field_.get()); 67 ASSERT_EQ(nullptr, field_.get());
68 } 68 }
69 69
70 TEST_F(CreditCardFieldTest, NonParse) { 70 TEST_F(CreditCardFieldTest, NonParse) {
71 list_.push_back(new AutofillField); 71 list_.push_back(base::MakeUnique<AutofillField>());
72 Parse(); 72 Parse();
73 ASSERT_EQ(nullptr, field_.get()); 73 ASSERT_EQ(nullptr, field_.get());
74 } 74 }
75 75
76 TEST_F(CreditCardFieldTest, ParseCreditCardNoNumber) { 76 TEST_F(CreditCardFieldTest, ParseCreditCardNoNumber) {
77 FormFieldData field; 77 FormFieldData field;
78 field.form_control_type = "text"; 78 field.form_control_type = "text";
79 79
80 field.label = ASCIIToUTF16("Exp Month"); 80 field.label = ASCIIToUTF16("Exp Month");
81 field.name = ASCIIToUTF16("ccmonth"); 81 field.name = ASCIIToUTF16("ccmonth");
82 list_.push_back(new AutofillField(field, ASCIIToUTF16("month1"))); 82 list_.push_back(
83 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("month1")));
83 84
84 field.label = ASCIIToUTF16("Exp Year"); 85 field.label = ASCIIToUTF16("Exp Year");
85 field.name = ASCIIToUTF16("ccyear"); 86 field.name = ASCIIToUTF16("ccyear");
86 list_.push_back(new AutofillField(field, ASCIIToUTF16("year2"))); 87 list_.push_back(
88 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("year2")));
87 89
88 Parse(); 90 Parse();
89 ASSERT_EQ(nullptr, field_.get()); 91 ASSERT_EQ(nullptr, field_.get());
90 } 92 }
91 93
92 TEST_F(CreditCardFieldTest, ParseCreditCardNoDate) { 94 TEST_F(CreditCardFieldTest, ParseCreditCardNoDate) {
93 FormFieldData field; 95 FormFieldData field;
94 field.form_control_type = "text"; 96 field.form_control_type = "text";
95 97
96 field.label = ASCIIToUTF16("Card Number"); 98 field.label = ASCIIToUTF16("Card Number");
97 field.name = ASCIIToUTF16("card_number"); 99 field.name = ASCIIToUTF16("card_number");
98 list_.push_back(new AutofillField(field, ASCIIToUTF16("number1"))); 100 list_.push_back(
101 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("number1")));
99 102
100 Parse(); 103 Parse();
101 ASSERT_EQ(nullptr, field_.get()); 104 ASSERT_EQ(nullptr, field_.get());
102 } 105 }
103 106
104 TEST_F(CreditCardFieldTest, ParseMiniumCreditCard) { 107 TEST_F(CreditCardFieldTest, ParseMiniumCreditCard) {
105 FormFieldData field; 108 FormFieldData field;
106 field.form_control_type = "text"; 109 field.form_control_type = "text";
107 110
108 field.label = ASCIIToUTF16("Card Number"); 111 field.label = ASCIIToUTF16("Card Number");
109 field.name = ASCIIToUTF16("card_number"); 112 field.name = ASCIIToUTF16("card_number");
110 list_.push_back(new AutofillField(field, ASCIIToUTF16("number1"))); 113 list_.push_back(
114 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("number1")));
111 115
112 field.label = ASCIIToUTF16("Exp Month"); 116 field.label = ASCIIToUTF16("Exp Month");
113 field.name = ASCIIToUTF16("ccmonth"); 117 field.name = ASCIIToUTF16("ccmonth");
114 list_.push_back(new AutofillField(field, ASCIIToUTF16("month2"))); 118 list_.push_back(
119 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("month2")));
115 120
116 field.label = ASCIIToUTF16("Exp Year"); 121 field.label = ASCIIToUTF16("Exp Year");
117 field.name = ASCIIToUTF16("ccyear"); 122 field.name = ASCIIToUTF16("ccyear");
118 list_.push_back(new AutofillField(field, ASCIIToUTF16("year3"))); 123 list_.push_back(
124 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("year3")));
119 125
120 Parse(); 126 Parse();
121 ASSERT_NE(nullptr, field_.get()); 127 ASSERT_NE(nullptr, field_.get());
122 AddClassifications(); 128 AddClassifications();
123 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("number1")) != 129 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("number1")) !=
124 field_candidates_map_.end()); 130 field_candidates_map_.end());
125 EXPECT_EQ(CREDIT_CARD_NUMBER, 131 EXPECT_EQ(CREDIT_CARD_NUMBER,
126 field_candidates_map_[ASCIIToUTF16("number1")].BestHeuristicType()); 132 field_candidates_map_[ASCIIToUTF16("number1")].BestHeuristicType());
127 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("month2")) != 133 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("month2")) !=
128 field_candidates_map_.end()); 134 field_candidates_map_.end());
129 EXPECT_EQ(CREDIT_CARD_EXP_MONTH, 135 EXPECT_EQ(CREDIT_CARD_EXP_MONTH,
130 field_candidates_map_[ASCIIToUTF16("month2")].BestHeuristicType()); 136 field_candidates_map_[ASCIIToUTF16("month2")].BestHeuristicType());
131 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("year3")) != 137 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("year3")) !=
132 field_candidates_map_.end()); 138 field_candidates_map_.end());
133 EXPECT_EQ(CREDIT_CARD_EXP_4_DIGIT_YEAR, 139 EXPECT_EQ(CREDIT_CARD_EXP_4_DIGIT_YEAR,
134 field_candidates_map_[ASCIIToUTF16("year3")].BestHeuristicType()); 140 field_candidates_map_[ASCIIToUTF16("year3")].BestHeuristicType());
135 } 141 }
136 142
137 TEST_F(CreditCardFieldTest, ParseFullCreditCard) { 143 TEST_F(CreditCardFieldTest, ParseFullCreditCard) {
138 FormFieldData field; 144 FormFieldData field;
139 field.form_control_type = "text"; 145 field.form_control_type = "text";
140 146
141 field.label = ASCIIToUTF16("Name on Card"); 147 field.label = ASCIIToUTF16("Name on Card");
142 field.name = ASCIIToUTF16("name_on_card"); 148 field.name = ASCIIToUTF16("name_on_card");
143 list_.push_back(new AutofillField(field, ASCIIToUTF16("name"))); 149 list_.push_back(base::MakeUnique<AutofillField>(field, ASCIIToUTF16("name")));
144 150
145 field.label = ASCIIToUTF16("Card Number"); 151 field.label = ASCIIToUTF16("Card Number");
146 field.name = ASCIIToUTF16("card_number"); 152 field.name = ASCIIToUTF16("card_number");
147 list_.push_back(new AutofillField(field, ASCIIToUTF16("number"))); 153 list_.push_back(
154 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("number")));
148 155
149 field.label = ASCIIToUTF16("Exp Month"); 156 field.label = ASCIIToUTF16("Exp Month");
150 field.name = ASCIIToUTF16("ccmonth"); 157 field.name = ASCIIToUTF16("ccmonth");
151 list_.push_back(new AutofillField(field, ASCIIToUTF16("month"))); 158 list_.push_back(
159 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("month")));
152 160
153 field.label = ASCIIToUTF16("Exp Year"); 161 field.label = ASCIIToUTF16("Exp Year");
154 field.name = ASCIIToUTF16("ccyear"); 162 field.name = ASCIIToUTF16("ccyear");
155 list_.push_back(new AutofillField(field, ASCIIToUTF16("year"))); 163 list_.push_back(base::MakeUnique<AutofillField>(field, ASCIIToUTF16("year")));
156 164
157 field.label = ASCIIToUTF16("Verification"); 165 field.label = ASCIIToUTF16("Verification");
158 field.name = ASCIIToUTF16("verification"); 166 field.name = ASCIIToUTF16("verification");
159 list_.push_back(new AutofillField(field, ASCIIToUTF16("cvc"))); 167 list_.push_back(base::MakeUnique<AutofillField>(field, ASCIIToUTF16("cvc")));
160 168
161 field.form_control_type = "select-one"; 169 field.form_control_type = "select-one";
162 field.label = ASCIIToUTF16("Card Type"); 170 field.label = ASCIIToUTF16("Card Type");
163 field.name = ASCIIToUTF16("card_type"); 171 field.name = ASCIIToUTF16("card_type");
164 field.option_contents.push_back(ASCIIToUTF16("visa")); 172 field.option_contents.push_back(ASCIIToUTF16("visa"));
165 field.option_values.push_back(ASCIIToUTF16("visa")); 173 field.option_values.push_back(ASCIIToUTF16("visa"));
166 list_.push_back(new AutofillField(field, ASCIIToUTF16("type"))); 174 list_.push_back(base::MakeUnique<AutofillField>(field, ASCIIToUTF16("type")));
167 175
168 Parse(); 176 Parse();
169 ASSERT_NE(nullptr, field_.get()); 177 ASSERT_NE(nullptr, field_.get());
170 AddClassifications(); 178 AddClassifications();
171 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("type")) != 179 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("type")) !=
172 field_candidates_map_.end()); 180 field_candidates_map_.end());
173 EXPECT_EQ(CREDIT_CARD_TYPE, 181 EXPECT_EQ(CREDIT_CARD_TYPE,
174 field_candidates_map_[ASCIIToUTF16("type")].BestHeuristicType()); 182 field_candidates_map_[ASCIIToUTF16("type")].BestHeuristicType());
175 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name")) != 183 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name")) !=
176 field_candidates_map_.end()); 184 field_candidates_map_.end());
(...skipping 16 matching lines...) Expand all
193 EXPECT_EQ(CREDIT_CARD_VERIFICATION_CODE, 201 EXPECT_EQ(CREDIT_CARD_VERIFICATION_CODE,
194 field_candidates_map_[ASCIIToUTF16("cvc")].BestHeuristicType()); 202 field_candidates_map_[ASCIIToUTF16("cvc")].BestHeuristicType());
195 } 203 }
196 204
197 TEST_F(CreditCardFieldTest, ParseExpMonthYear) { 205 TEST_F(CreditCardFieldTest, ParseExpMonthYear) {
198 FormFieldData field; 206 FormFieldData field;
199 field.form_control_type = "text"; 207 field.form_control_type = "text";
200 208
201 field.label = ASCIIToUTF16("Name on Card"); 209 field.label = ASCIIToUTF16("Name on Card");
202 field.name = ASCIIToUTF16("name_on_card"); 210 field.name = ASCIIToUTF16("name_on_card");
203 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1"))); 211 list_.push_back(
212 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("name1")));
204 213
205 field.label = ASCIIToUTF16("Card Number"); 214 field.label = ASCIIToUTF16("Card Number");
206 field.name = ASCIIToUTF16("card_number"); 215 field.name = ASCIIToUTF16("card_number");
207 list_.push_back(new AutofillField(field, ASCIIToUTF16("number2"))); 216 list_.push_back(
217 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("number2")));
208 218
209 field.label = ASCIIToUTF16("ExpDate Month / Year"); 219 field.label = ASCIIToUTF16("ExpDate Month / Year");
210 field.name = ASCIIToUTF16("ExpDate"); 220 field.name = ASCIIToUTF16("ExpDate");
211 list_.push_back(new AutofillField(field, ASCIIToUTF16("month3"))); 221 list_.push_back(
222 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("month3")));
212 223
213 field.label = ASCIIToUTF16("ExpDate Month / Year"); 224 field.label = ASCIIToUTF16("ExpDate Month / Year");
214 field.name = ASCIIToUTF16("ExpDate"); 225 field.name = ASCIIToUTF16("ExpDate");
215 list_.push_back(new AutofillField(field, ASCIIToUTF16("year4"))); 226 list_.push_back(
227 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("year4")));
216 228
217 Parse(); 229 Parse();
218 ASSERT_NE(nullptr, field_.get()); 230 ASSERT_NE(nullptr, field_.get());
219 AddClassifications(); 231 AddClassifications();
220 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name1")) != 232 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name1")) !=
221 field_candidates_map_.end()); 233 field_candidates_map_.end());
222 EXPECT_EQ(CREDIT_CARD_NAME_FULL, 234 EXPECT_EQ(CREDIT_CARD_NAME_FULL,
223 field_candidates_map_[ASCIIToUTF16("name1")].BestHeuristicType()); 235 field_candidates_map_[ASCIIToUTF16("name1")].BestHeuristicType());
224 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("number2")) != 236 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("number2")) !=
225 field_candidates_map_.end()); 237 field_candidates_map_.end());
226 EXPECT_EQ(CREDIT_CARD_NUMBER, 238 EXPECT_EQ(CREDIT_CARD_NUMBER,
227 field_candidates_map_[ASCIIToUTF16("number2")].BestHeuristicType()); 239 field_candidates_map_[ASCIIToUTF16("number2")].BestHeuristicType());
228 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("month3")) != 240 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("month3")) !=
229 field_candidates_map_.end()); 241 field_candidates_map_.end());
230 EXPECT_EQ(CREDIT_CARD_EXP_MONTH, 242 EXPECT_EQ(CREDIT_CARD_EXP_MONTH,
231 field_candidates_map_[ASCIIToUTF16("month3")].BestHeuristicType()); 243 field_candidates_map_[ASCIIToUTF16("month3")].BestHeuristicType());
232 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("year4")) != 244 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("year4")) !=
233 field_candidates_map_.end()); 245 field_candidates_map_.end());
234 EXPECT_EQ(CREDIT_CARD_EXP_4_DIGIT_YEAR, 246 EXPECT_EQ(CREDIT_CARD_EXP_4_DIGIT_YEAR,
235 field_candidates_map_[ASCIIToUTF16("year4")].BestHeuristicType()); 247 field_candidates_map_[ASCIIToUTF16("year4")].BestHeuristicType());
236 } 248 }
237 249
238 TEST_F(CreditCardFieldTest, ParseExpMonthYear2) { 250 TEST_F(CreditCardFieldTest, ParseExpMonthYear2) {
239 FormFieldData field; 251 FormFieldData field;
240 field.form_control_type = "text"; 252 field.form_control_type = "text";
241 253
242 field.label = ASCIIToUTF16("Name on Card"); 254 field.label = ASCIIToUTF16("Name on Card");
243 field.name = ASCIIToUTF16("name_on_card"); 255 field.name = ASCIIToUTF16("name_on_card");
244 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1"))); 256 list_.push_back(
257 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("name1")));
245 258
246 field.label = ASCIIToUTF16("Card Number"); 259 field.label = ASCIIToUTF16("Card Number");
247 field.name = ASCIIToUTF16("card_number"); 260 field.name = ASCIIToUTF16("card_number");
248 list_.push_back(new AutofillField(field, ASCIIToUTF16("number2"))); 261 list_.push_back(
262 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("number2")));
249 263
250 field.label = ASCIIToUTF16("Expiration date Month / Year"); 264 field.label = ASCIIToUTF16("Expiration date Month / Year");
251 field.name = ASCIIToUTF16("ExpDate"); 265 field.name = ASCIIToUTF16("ExpDate");
252 list_.push_back(new AutofillField(field, ASCIIToUTF16("month3"))); 266 list_.push_back(
267 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("month3")));
253 268
254 field.label = ASCIIToUTF16("Expiration date Month / Year"); 269 field.label = ASCIIToUTF16("Expiration date Month / Year");
255 field.name = ASCIIToUTF16("ExpDate"); 270 field.name = ASCIIToUTF16("ExpDate");
256 list_.push_back(new AutofillField(field, ASCIIToUTF16("year4"))); 271 list_.push_back(
272 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("year4")));
257 273
258 Parse(); 274 Parse();
259 ASSERT_NE(nullptr, field_.get()); 275 ASSERT_NE(nullptr, field_.get());
260 AddClassifications(); 276 AddClassifications();
261 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name1")) != 277 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name1")) !=
262 field_candidates_map_.end()); 278 field_candidates_map_.end());
263 EXPECT_EQ(CREDIT_CARD_NAME_FULL, 279 EXPECT_EQ(CREDIT_CARD_NAME_FULL,
264 field_candidates_map_[ASCIIToUTF16("name1")].BestHeuristicType()); 280 field_candidates_map_[ASCIIToUTF16("name1")].BestHeuristicType());
265 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("number2")) != 281 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("number2")) !=
266 field_candidates_map_.end()); 282 field_candidates_map_.end());
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 // Clean up after previous test cases. 352 // Clean up after previous test cases.
337 list_.clear(); 353 list_.clear();
338 field_.reset(); 354 field_.reset();
339 field_candidates_map_.clear(); 355 field_candidates_map_.clear();
340 356
341 FormFieldData field; 357 FormFieldData field;
342 field.form_control_type = "text"; 358 field.form_control_type = "text";
343 359
344 field.label = ASCIIToUTF16("Name on Card"); 360 field.label = ASCIIToUTF16("Name on Card");
345 field.name = ASCIIToUTF16("name_on_card"); 361 field.name = ASCIIToUTF16("name_on_card");
346 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1"))); 362 list_.push_back(
363 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("name1")));
347 364
348 field.label = ASCIIToUTF16("Card Number"); 365 field.label = ASCIIToUTF16("Card Number");
349 field.name = ASCIIToUTF16("card_number"); 366 field.name = ASCIIToUTF16("card_number");
350 list_.push_back(new AutofillField(field, ASCIIToUTF16("num2"))); 367 list_.push_back(
368 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("num2")));
351 369
352 field.label = ASCIIToUTF16(test_case.label); 370 field.label = ASCIIToUTF16(test_case.label);
353 if (test_case.max_length != 0) { 371 if (test_case.max_length != 0) {
354 field.max_length = test_case.max_length; 372 field.max_length = test_case.max_length;
355 } 373 }
356 field.name = ASCIIToUTF16("cc_exp"); 374 field.name = ASCIIToUTF16("cc_exp");
357 list_.push_back(new AutofillField(field, ASCIIToUTF16("exp3"))); 375 list_.push_back(
376 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("exp3")));
358 377
359 Parse(); 378 Parse();
360 379
361 // Assists in identifing which case has failed. 380 // Assists in identifing which case has failed.
362 SCOPED_TRACE(test_case.expected_prediction); 381 SCOPED_TRACE(test_case.expected_prediction);
363 SCOPED_TRACE(test_case.max_length); 382 SCOPED_TRACE(test_case.max_length);
364 SCOPED_TRACE(test_case.label); 383 SCOPED_TRACE(test_case.label);
365 384
366 if (test_case.expected_prediction == UNKNOWN_TYPE) { 385 if (test_case.expected_prediction == UNKNOWN_TYPE) {
367 // Expect failure and continue to next test case. 386 // Expect failure and continue to next test case.
(...skipping 22 matching lines...) Expand all
390 field_candidates_map_[ASCIIToUTF16("exp3")].BestHeuristicType()); 409 field_candidates_map_[ASCIIToUTF16("exp3")].BestHeuristicType());
391 } 410 }
392 } 411 }
393 412
394 TEST_F(CreditCardFieldTest, ParseCreditCardHolderNameWithCCFullName) { 413 TEST_F(CreditCardFieldTest, ParseCreditCardHolderNameWithCCFullName) {
395 FormFieldData field; 414 FormFieldData field;
396 field.form_control_type = "text"; 415 field.form_control_type = "text";
397 416
398 field.label = ASCIIToUTF16("Name"); 417 field.label = ASCIIToUTF16("Name");
399 field.name = ASCIIToUTF16("ccfullname"); 418 field.name = ASCIIToUTF16("ccfullname");
400 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1"))); 419 list_.push_back(
420 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("name1")));
401 421
402 Parse(); 422 Parse();
403 ASSERT_NE(nullptr, field_.get()); 423 ASSERT_NE(nullptr, field_.get());
404 AddClassifications(); 424 AddClassifications();
405 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name1")) != 425 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name1")) !=
406 field_candidates_map_.end()); 426 field_candidates_map_.end());
407 EXPECT_EQ(CREDIT_CARD_NAME_FULL, 427 EXPECT_EQ(CREDIT_CARD_NAME_FULL,
408 field_candidates_map_[ASCIIToUTF16("name1")].BestHeuristicType()); 428 field_candidates_map_[ASCIIToUTF16("name1")].BestHeuristicType());
409 } 429 }
410 430
411 // Verifies that <input type="month"> controls are able to be parsed correctly. 431 // Verifies that <input type="month"> controls are able to be parsed correctly.
412 TEST_F(CreditCardFieldTest, ParseMonthControl) { 432 TEST_F(CreditCardFieldTest, ParseMonthControl) {
413 FormFieldData field; 433 FormFieldData field;
414 434
415 field.form_control_type = "text"; 435 field.form_control_type = "text";
416 field.label = ASCIIToUTF16("Card number:"); 436 field.label = ASCIIToUTF16("Card number:");
417 field.name = ASCIIToUTF16("ccnumber"); 437 field.name = ASCIIToUTF16("ccnumber");
418 list_.push_back(new AutofillField(field, ASCIIToUTF16("number1"))); 438 list_.push_back(
439 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("number1")));
419 440
420 field.form_control_type = "month"; 441 field.form_control_type = "month";
421 field.label = ASCIIToUTF16("Expiration date:"); 442 field.label = ASCIIToUTF16("Expiration date:");
422 field.name = ASCIIToUTF16("ccexp"); 443 field.name = ASCIIToUTF16("ccexp");
423 list_.push_back(new AutofillField(field, ASCIIToUTF16("date2"))); 444 list_.push_back(
445 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("date2")));
424 446
425 Parse(); 447 Parse();
426 ASSERT_NE(nullptr, field_.get()); 448 ASSERT_NE(nullptr, field_.get());
427 AddClassifications(); 449 AddClassifications();
428 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("number1")) != 450 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("number1")) !=
429 field_candidates_map_.end()); 451 field_candidates_map_.end());
430 EXPECT_EQ(CREDIT_CARD_NUMBER, 452 EXPECT_EQ(CREDIT_CARD_NUMBER,
431 field_candidates_map_[ASCIIToUTF16("number1")].BestHeuristicType()); 453 field_candidates_map_[ASCIIToUTF16("number1")].BestHeuristicType());
432 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("date2")) != 454 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("date2")) !=
433 field_candidates_map_.end()); 455 field_candidates_map_.end());
434 EXPECT_EQ(CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR, 456 EXPECT_EQ(CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR,
435 field_candidates_map_[ASCIIToUTF16("date2")].BestHeuristicType()); 457 field_candidates_map_[ASCIIToUTF16("date2")].BestHeuristicType());
436 } 458 }
437 459
438 // Verify that heuristics <input name="ccyear" maxlength="2"/> considers 460 // Verify that heuristics <input name="ccyear" maxlength="2"/> considers
439 // *maxlength* attribute while parsing 2 Digit expiration year. 461 // *maxlength* attribute while parsing 2 Digit expiration year.
440 TEST_F(CreditCardFieldTest, ParseCreditCardExpYear_2DigitMaxLength) { 462 TEST_F(CreditCardFieldTest, ParseCreditCardExpYear_2DigitMaxLength) {
441 FormFieldData field; 463 FormFieldData field;
442 field.form_control_type = "text"; 464 field.form_control_type = "text";
443 465
444 field.label = ASCIIToUTF16("Card Number"); 466 field.label = ASCIIToUTF16("Card Number");
445 field.name = ASCIIToUTF16("card_number"); 467 field.name = ASCIIToUTF16("card_number");
446 list_.push_back(new AutofillField(field, ASCIIToUTF16("number"))); 468 list_.push_back(
469 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("number")));
447 470
448 field.label = ASCIIToUTF16("Expiration Date"); 471 field.label = ASCIIToUTF16("Expiration Date");
449 field.name = ASCIIToUTF16("ccmonth"); 472 field.name = ASCIIToUTF16("ccmonth");
450 list_.push_back(new AutofillField(field, ASCIIToUTF16("month"))); 473 list_.push_back(
474 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("month")));
451 475
452 field.name = ASCIIToUTF16("ccyear"); 476 field.name = ASCIIToUTF16("ccyear");
453 field.max_length = 2; 477 field.max_length = 2;
454 list_.push_back(new AutofillField(field, ASCIIToUTF16("year"))); 478 list_.push_back(base::MakeUnique<AutofillField>(field, ASCIIToUTF16("year")));
455 479
456 Parse(); 480 Parse();
457 ASSERT_NE(nullptr, field_.get()); 481 ASSERT_NE(nullptr, field_.get());
458 AddClassifications(); 482 AddClassifications();
459 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("number")) != 483 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("number")) !=
460 field_candidates_map_.end()); 484 field_candidates_map_.end());
461 EXPECT_EQ(CREDIT_CARD_NUMBER, 485 EXPECT_EQ(CREDIT_CARD_NUMBER,
462 field_candidates_map_[ASCIIToUTF16("number")].BestHeuristicType()); 486 field_candidates_map_[ASCIIToUTF16("number")].BestHeuristicType());
463 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("month")) != 487 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("month")) !=
464 field_candidates_map_.end()); 488 field_candidates_map_.end());
465 EXPECT_EQ(CREDIT_CARD_EXP_MONTH, 489 EXPECT_EQ(CREDIT_CARD_EXP_MONTH,
466 field_candidates_map_[ASCIIToUTF16("month")].BestHeuristicType()); 490 field_candidates_map_[ASCIIToUTF16("month")].BestHeuristicType());
467 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("year")) != 491 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("year")) !=
468 field_candidates_map_.end()); 492 field_candidates_map_.end());
469 EXPECT_EQ(CREDIT_CARD_EXP_2_DIGIT_YEAR, 493 EXPECT_EQ(CREDIT_CARD_EXP_2_DIGIT_YEAR,
470 field_candidates_map_[ASCIIToUTF16("year")].BestHeuristicType()); 494 field_candidates_map_[ASCIIToUTF16("year")].BestHeuristicType());
471 } 495 }
472 496
473 TEST_F(CreditCardFieldTest, ParseCreditCardNumberWithSplit) { 497 TEST_F(CreditCardFieldTest, ParseCreditCardNumberWithSplit) {
474 FormFieldData field; 498 FormFieldData field;
475 field.form_control_type = "text"; 499 field.form_control_type = "text";
476 500
477 field.label = ASCIIToUTF16("Card Number"); 501 field.label = ASCIIToUTF16("Card Number");
478 field.name = ASCIIToUTF16("card_number_q1"); 502 field.name = ASCIIToUTF16("card_number_q1");
479 field.max_length = 4; 503 field.max_length = 4;
480 list_.push_back(new AutofillField(field, ASCIIToUTF16("number1"))); 504 list_.push_back(
505 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("number1")));
481 506
482 field.label = ASCIIToUTF16("Card Number"); 507 field.label = ASCIIToUTF16("Card Number");
483 field.name = ASCIIToUTF16("card_number_q2"); 508 field.name = ASCIIToUTF16("card_number_q2");
484 field.max_length = 4; 509 field.max_length = 4;
485 list_.push_back(new AutofillField(field, ASCIIToUTF16("number2"))); 510 list_.push_back(
511 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("number2")));
486 512
487 field.label = ASCIIToUTF16("Card Number"); 513 field.label = ASCIIToUTF16("Card Number");
488 field.name = ASCIIToUTF16("card_number_q3"); 514 field.name = ASCIIToUTF16("card_number_q3");
489 field.max_length = 4; 515 field.max_length = 4;
490 list_.push_back(new AutofillField(field, ASCIIToUTF16("number3"))); 516 list_.push_back(
517 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("number3")));
491 518
492 // For last credit card number input field it simply ignores the |max_length| 519 // For last credit card number input field it simply ignores the |max_length|
493 // attribute. So even having a very big number, does not conside it an invalid 520 // attribute. So even having a very big number, does not conside it an invalid
494 // split for autofilling. 521 // split for autofilling.
495 field.label = ASCIIToUTF16("Card Number"); 522 field.label = ASCIIToUTF16("Card Number");
496 field.name = ASCIIToUTF16("card_number_q4"); 523 field.name = ASCIIToUTF16("card_number_q4");
497 field.max_length = 20; 524 field.max_length = 20;
498 list_.push_back(new AutofillField(field, ASCIIToUTF16("number4"))); 525 list_.push_back(
526 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("number4")));
499 527
500 field.label = ASCIIToUTF16("Exp Month"); 528 field.label = ASCIIToUTF16("Exp Month");
501 field.name = ASCIIToUTF16("ccmonth"); 529 field.name = ASCIIToUTF16("ccmonth");
502 list_.push_back(new AutofillField(field, ASCIIToUTF16("month5"))); 530 list_.push_back(
531 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("month5")));
503 532
504 field.label = ASCIIToUTF16("Exp Year"); 533 field.label = ASCIIToUTF16("Exp Year");
505 field.name = ASCIIToUTF16("ccyear"); 534 field.name = ASCIIToUTF16("ccyear");
506 list_.push_back(new AutofillField(field, ASCIIToUTF16("year6"))); 535 list_.push_back(
536 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("year6")));
507 537
508 Parse(); 538 Parse();
509 ASSERT_NE(nullptr, field_.get()); 539 ASSERT_NE(nullptr, field_.get());
510 AddClassifications(); 540 AddClassifications();
511 541
512 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("number1")) != 542 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("number1")) !=
513 field_candidates_map_.end()); 543 field_candidates_map_.end());
514 EXPECT_EQ(CREDIT_CARD_NUMBER, 544 EXPECT_EQ(CREDIT_CARD_NUMBER,
515 field_candidates_map_[ASCIIToUTF16("number1")].BestHeuristicType()); 545 field_candidates_map_[ASCIIToUTF16("number1")].BestHeuristicType());
516 EXPECT_EQ(0U, list_[0]->credit_card_number_offset()); 546 EXPECT_EQ(0U, list_[0]->credit_card_number_offset());
(...skipping 25 matching lines...) Expand all
542 EXPECT_EQ(CREDIT_CARD_EXP_4_DIGIT_YEAR, 572 EXPECT_EQ(CREDIT_CARD_EXP_4_DIGIT_YEAR,
543 field_candidates_map_[ASCIIToUTF16("year6")].BestHeuristicType()); 573 field_candidates_map_[ASCIIToUTF16("year6")].BestHeuristicType());
544 } 574 }
545 575
546 TEST_F(CreditCardFieldTest, ParseMultipleCreditCardNumbers) { 576 TEST_F(CreditCardFieldTest, ParseMultipleCreditCardNumbers) {
547 FormFieldData field; 577 FormFieldData field;
548 field.form_control_type = "text"; 578 field.form_control_type = "text";
549 579
550 field.label = ASCIIToUTF16("Name on Card"); 580 field.label = ASCIIToUTF16("Name on Card");
551 field.name = ASCIIToUTF16("name_on_card"); 581 field.name = ASCIIToUTF16("name_on_card");
552 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1"))); 582 list_.push_back(
583 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("name1")));
553 584
554 field.label = ASCIIToUTF16("Card Number"); 585 field.label = ASCIIToUTF16("Card Number");
555 field.name = ASCIIToUTF16("card_number"); 586 field.name = ASCIIToUTF16("card_number");
556 list_.push_back(new AutofillField(field, ASCIIToUTF16("number2"))); 587 list_.push_back(
588 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("number2")));
557 589
558 field.label = ASCIIToUTF16("Confirm Card Number"); 590 field.label = ASCIIToUTF16("Confirm Card Number");
559 field.name = ASCIIToUTF16("confirm_card_number"); 591 field.name = ASCIIToUTF16("confirm_card_number");
560 list_.push_back(new AutofillField(field, ASCIIToUTF16("number3"))); 592 list_.push_back(
593 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("number3")));
561 594
562 field.label = ASCIIToUTF16("Exp Month"); 595 field.label = ASCIIToUTF16("Exp Month");
563 field.name = ASCIIToUTF16("ccmonth"); 596 field.name = ASCIIToUTF16("ccmonth");
564 list_.push_back(new AutofillField(field, ASCIIToUTF16("month4"))); 597 list_.push_back(
598 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("month4")));
565 599
566 field.label = ASCIIToUTF16("Exp Year"); 600 field.label = ASCIIToUTF16("Exp Year");
567 field.name = ASCIIToUTF16("ccyear"); 601 field.name = ASCIIToUTF16("ccyear");
568 list_.push_back(new AutofillField(field, ASCIIToUTF16("year5"))); 602 list_.push_back(
603 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("year5")));
569 604
570 Parse(); 605 Parse();
571 ASSERT_NE(nullptr, field_.get()); 606 ASSERT_NE(nullptr, field_.get());
572 AddClassifications(); 607 AddClassifications();
573 608
574 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name1")) != 609 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name1")) !=
575 field_candidates_map_.end()); 610 field_candidates_map_.end());
576 EXPECT_EQ(CREDIT_CARD_NAME_FULL, 611 EXPECT_EQ(CREDIT_CARD_NAME_FULL,
577 field_candidates_map_[ASCIIToUTF16("name1")].BestHeuristicType()); 612 field_candidates_map_[ASCIIToUTF16("name1")].BestHeuristicType());
578 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("number2")) != 613 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("number2")) !=
(...skipping 13 matching lines...) Expand all
592 EXPECT_EQ(CREDIT_CARD_EXP_4_DIGIT_YEAR, 627 EXPECT_EQ(CREDIT_CARD_EXP_4_DIGIT_YEAR,
593 field_candidates_map_[ASCIIToUTF16("year5")].BestHeuristicType()); 628 field_candidates_map_[ASCIIToUTF16("year5")].BestHeuristicType());
594 } 629 }
595 630
596 TEST_F(CreditCardFieldTest, ParseFirstAndLastNames) { 631 TEST_F(CreditCardFieldTest, ParseFirstAndLastNames) {
597 FormFieldData field; 632 FormFieldData field;
598 field.form_control_type = "text"; 633 field.form_control_type = "text";
599 634
600 field.label = ASCIIToUTF16("First Name on Card"); 635 field.label = ASCIIToUTF16("First Name on Card");
601 field.name = ASCIIToUTF16("cc-fname"); 636 field.name = ASCIIToUTF16("cc-fname");
602 list_.push_back(new AutofillField(field, ASCIIToUTF16("name1"))); 637 list_.push_back(
638 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("name1")));
603 639
604 field.label = ASCIIToUTF16("Last Name"); 640 field.label = ASCIIToUTF16("Last Name");
605 field.name = ASCIIToUTF16("cc-lname"); 641 field.name = ASCIIToUTF16("cc-lname");
606 list_.push_back(new AutofillField(field, ASCIIToUTF16("name2"))); 642 list_.push_back(
643 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("name2")));
607 644
608 field.label = ASCIIToUTF16("Card Number"); 645 field.label = ASCIIToUTF16("Card Number");
609 field.name = ASCIIToUTF16("card_number"); 646 field.name = ASCIIToUTF16("card_number");
610 list_.push_back(new AutofillField(field, ASCIIToUTF16("number3"))); 647 list_.push_back(
648 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("number3")));
611 649
612 field.label = ASCIIToUTF16("Exp Month"); 650 field.label = ASCIIToUTF16("Exp Month");
613 field.name = ASCIIToUTF16("ccmonth"); 651 field.name = ASCIIToUTF16("ccmonth");
614 list_.push_back(new AutofillField(field, ASCIIToUTF16("month4"))); 652 list_.push_back(
653 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("month4")));
615 654
616 field.label = ASCIIToUTF16("Exp Year"); 655 field.label = ASCIIToUTF16("Exp Year");
617 field.name = ASCIIToUTF16("ccyear"); 656 field.name = ASCIIToUTF16("ccyear");
618 list_.push_back(new AutofillField(field, ASCIIToUTF16("year5"))); 657 list_.push_back(
658 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("year5")));
619 659
620 Parse(); 660 Parse();
621 ASSERT_NE(nullptr, field_.get()); 661 ASSERT_NE(nullptr, field_.get());
622 AddClassifications(); 662 AddClassifications();
623 663
624 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name1")) != 664 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name1")) !=
625 field_candidates_map_.end()); 665 field_candidates_map_.end());
626 EXPECT_EQ(CREDIT_CARD_NAME_FIRST, 666 EXPECT_EQ(CREDIT_CARD_NAME_FIRST,
627 field_candidates_map_[ASCIIToUTF16("name1")].BestHeuristicType()); 667 field_candidates_map_[ASCIIToUTF16("name1")].BestHeuristicType());
628 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name2")) != 668 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name2")) !=
(...skipping 13 matching lines...) Expand all
642 EXPECT_EQ(CREDIT_CARD_EXP_4_DIGIT_YEAR, 682 EXPECT_EQ(CREDIT_CARD_EXP_4_DIGIT_YEAR,
643 field_candidates_map_[ASCIIToUTF16("year5")].BestHeuristicType()); 683 field_candidates_map_[ASCIIToUTF16("year5")].BestHeuristicType());
644 } 684 }
645 685
646 TEST_F(CreditCardFieldTest, ParseConsecutiveCvc) { 686 TEST_F(CreditCardFieldTest, ParseConsecutiveCvc) {
647 FormFieldData field; 687 FormFieldData field;
648 field.form_control_type = "text"; 688 field.form_control_type = "text";
649 689
650 field.label = ASCIIToUTF16("Name on Card"); 690 field.label = ASCIIToUTF16("Name on Card");
651 field.name = ASCIIToUTF16("name_on_card"); 691 field.name = ASCIIToUTF16("name_on_card");
652 list_.push_back(new AutofillField(field, ASCIIToUTF16("name"))); 692 list_.push_back(base::MakeUnique<AutofillField>(field, ASCIIToUTF16("name")));
653 693
654 field.label = ASCIIToUTF16("Card Number"); 694 field.label = ASCIIToUTF16("Card Number");
655 field.name = ASCIIToUTF16("card_number"); 695 field.name = ASCIIToUTF16("card_number");
656 list_.push_back(new AutofillField(field, ASCIIToUTF16("number"))); 696 list_.push_back(
697 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("number")));
657 698
658 field.label = ASCIIToUTF16("Exp Month"); 699 field.label = ASCIIToUTF16("Exp Month");
659 field.name = ASCIIToUTF16("ccmonth"); 700 field.name = ASCIIToUTF16("ccmonth");
660 list_.push_back(new AutofillField(field, ASCIIToUTF16("month"))); 701 list_.push_back(
702 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("month")));
661 703
662 field.label = ASCIIToUTF16("Exp Year"); 704 field.label = ASCIIToUTF16("Exp Year");
663 field.name = ASCIIToUTF16("ccyear"); 705 field.name = ASCIIToUTF16("ccyear");
664 list_.push_back(new AutofillField(field, ASCIIToUTF16("year"))); 706 list_.push_back(base::MakeUnique<AutofillField>(field, ASCIIToUTF16("year")));
665 707
666 field.label = ASCIIToUTF16("Verification"); 708 field.label = ASCIIToUTF16("Verification");
667 field.name = ASCIIToUTF16("verification"); 709 field.name = ASCIIToUTF16("verification");
668 list_.push_back(new AutofillField(field, ASCIIToUTF16("cvc"))); 710 list_.push_back(base::MakeUnique<AutofillField>(field, ASCIIToUTF16("cvc")));
669 711
670 field.label = ASCIIToUTF16("Verification"); 712 field.label = ASCIIToUTF16("Verification");
671 field.name = ASCIIToUTF16("verification"); 713 field.name = ASCIIToUTF16("verification");
672 list_.push_back(new AutofillField(field, ASCIIToUTF16("cvc2"))); 714 list_.push_back(base::MakeUnique<AutofillField>(field, ASCIIToUTF16("cvc2")));
673 715
674 MultipleParses(); 716 MultipleParses();
675 717
676 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name")) != 718 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name")) !=
677 field_candidates_map_.end()); 719 field_candidates_map_.end());
678 EXPECT_EQ(CREDIT_CARD_NAME_FULL, 720 EXPECT_EQ(CREDIT_CARD_NAME_FULL,
679 field_candidates_map_[ASCIIToUTF16("name")].BestHeuristicType()); 721 field_candidates_map_[ASCIIToUTF16("name")].BestHeuristicType());
680 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("number")) != 722 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("number")) !=
681 field_candidates_map_.end()); 723 field_candidates_map_.end());
682 EXPECT_EQ(CREDIT_CARD_NUMBER, 724 EXPECT_EQ(CREDIT_CARD_NUMBER,
(...skipping 15 matching lines...) Expand all
698 EXPECT_EQ(CREDIT_CARD_VERIFICATION_CODE, 740 EXPECT_EQ(CREDIT_CARD_VERIFICATION_CODE,
699 field_candidates_map_[ASCIIToUTF16("cvc2")].BestHeuristicType()); 741 field_candidates_map_[ASCIIToUTF16("cvc2")].BestHeuristicType());
700 } 742 }
701 743
702 TEST_F(CreditCardFieldTest, ParseNonConsecutiveCvc) { 744 TEST_F(CreditCardFieldTest, ParseNonConsecutiveCvc) {
703 FormFieldData field; 745 FormFieldData field;
704 field.form_control_type = "text"; 746 field.form_control_type = "text";
705 747
706 field.label = ASCIIToUTF16("Name on Card"); 748 field.label = ASCIIToUTF16("Name on Card");
707 field.name = ASCIIToUTF16("name_on_card"); 749 field.name = ASCIIToUTF16("name_on_card");
708 list_.push_back(new AutofillField(field, ASCIIToUTF16("name"))); 750 list_.push_back(base::MakeUnique<AutofillField>(field, ASCIIToUTF16("name")));
709 751
710 field.label = ASCIIToUTF16("Card Number"); 752 field.label = ASCIIToUTF16("Card Number");
711 field.name = ASCIIToUTF16("card_number"); 753 field.name = ASCIIToUTF16("card_number");
712 list_.push_back(new AutofillField(field, ASCIIToUTF16("number"))); 754 list_.push_back(
755 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("number")));
713 756
714 field.label = ASCIIToUTF16("Exp Month"); 757 field.label = ASCIIToUTF16("Exp Month");
715 field.name = ASCIIToUTF16("ccmonth"); 758 field.name = ASCIIToUTF16("ccmonth");
716 list_.push_back(new AutofillField(field, ASCIIToUTF16("month"))); 759 list_.push_back(
760 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("month")));
717 761
718 field.label = ASCIIToUTF16("Exp Year"); 762 field.label = ASCIIToUTF16("Exp Year");
719 field.name = ASCIIToUTF16("ccyear"); 763 field.name = ASCIIToUTF16("ccyear");
720 list_.push_back(new AutofillField(field, ASCIIToUTF16("year"))); 764 list_.push_back(base::MakeUnique<AutofillField>(field, ASCIIToUTF16("year")));
721 765
722 field.label = ASCIIToUTF16("Verification"); 766 field.label = ASCIIToUTF16("Verification");
723 field.name = ASCIIToUTF16("verification"); 767 field.name = ASCIIToUTF16("verification");
724 list_.push_back(new AutofillField(field, ASCIIToUTF16("cvc"))); 768 list_.push_back(base::MakeUnique<AutofillField>(field, ASCIIToUTF16("cvc")));
725 769
726 field.label = ASCIIToUTF16("Unknown"); 770 field.label = ASCIIToUTF16("Unknown");
727 field.name = ASCIIToUTF16("unknown"); 771 field.name = ASCIIToUTF16("unknown");
728 list_.push_back(new AutofillField(field, ASCIIToUTF16("unknown"))); 772 list_.push_back(
773 base::MakeUnique<AutofillField>(field, ASCIIToUTF16("unknown")));
729 774
730 field.label = ASCIIToUTF16("Verification"); 775 field.label = ASCIIToUTF16("Verification");
731 field.name = ASCIIToUTF16("verification"); 776 field.name = ASCIIToUTF16("verification");
732 list_.push_back(new AutofillField(field, ASCIIToUTF16("cvc2"))); 777 list_.push_back(base::MakeUnique<AutofillField>(field, ASCIIToUTF16("cvc2")));
733 778
734 MultipleParses(); 779 MultipleParses();
735 780
736 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name")) != 781 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("name")) !=
737 field_candidates_map_.end()); 782 field_candidates_map_.end());
738 EXPECT_EQ(CREDIT_CARD_NAME_FULL, 783 EXPECT_EQ(CREDIT_CARD_NAME_FULL,
739 field_candidates_map_[ASCIIToUTF16("name")].BestHeuristicType()); 784 field_candidates_map_[ASCIIToUTF16("name")].BestHeuristicType());
740 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("number")) != 785 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("number")) !=
741 field_candidates_map_.end()); 786 field_candidates_map_.end());
742 EXPECT_EQ(CREDIT_CARD_NUMBER, 787 EXPECT_EQ(CREDIT_CARD_NUMBER,
(...skipping 10 matching lines...) Expand all
753 field_candidates_map_.end()); 798 field_candidates_map_.end());
754 EXPECT_EQ(CREDIT_CARD_VERIFICATION_CODE, 799 EXPECT_EQ(CREDIT_CARD_VERIFICATION_CODE,
755 field_candidates_map_[ASCIIToUTF16("cvc")].BestHeuristicType()); 800 field_candidates_map_[ASCIIToUTF16("cvc")].BestHeuristicType());
756 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("unknown")) == 801 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("unknown")) ==
757 field_candidates_map_.end()); 802 field_candidates_map_.end());
758 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("cvc2")) == 803 ASSERT_TRUE(field_candidates_map_.find(ASCIIToUTF16("cvc2")) ==
759 field_candidates_map_.end()); 804 field_candidates_map_.end());
760 } 805 }
761 806
762 } // namespace autofill 807 } // namespace autofill
OLDNEW
« no previous file with comments | « components/autofill/core/browser/autofill_scanner.cc ('k') | components/autofill/core/browser/form_field.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698