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

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

Issue 12260054: [Autofill] Enable heuristic detection of credit card issuer fields. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/autofill/credit_card_field.cc ('k') | chrome/browser/autofill/email_field.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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 }
OLDNEW
« no previous file with comments | « chrome/browser/autofill/credit_card_field.cc ('k') | chrome/browser/autofill/email_field.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698