| 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" |
| (...skipping 26 matching lines...) Expand all Loading... |
| 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 FormFieldData field; | 46 FormFieldData field; |
| 47 field.form_control_type = ASCIIToUTF16("text"); | 47 field.form_control_type = "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 FormFieldData field; | 63 FormFieldData field; |
| 64 field.form_control_type = ASCIIToUTF16("text"); | 64 field.form_control_type = "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 FormFieldData field; | 76 FormFieldData field; |
| 77 field.form_control_type = ASCIIToUTF16("text"); | 77 field.form_control_type = "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 |
| 87 field.label = ASCIIToUTF16("Exp Year"); | 87 field.label = ASCIIToUTF16("Exp Year"); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 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 FormFieldData field; | 108 FormFieldData field; |
| 109 field.form_control_type = ASCIIToUTF16("text"); | 109 field.form_control_type = "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 |
| 119 field.label = ASCIIToUTF16("Exp Month"); | 119 field.label = ASCIIToUTF16("Exp Month"); |
| (...skipping 25 matching lines...) Expand all Loading... |
| 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 FormFieldData field; | 154 FormFieldData field; |
| 155 field.form_control_type = ASCIIToUTF16("text"); | 155 field.form_control_type = "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 |
| 165 field.label = ASCIIToUTF16("ExpDate Month / Year"); | 165 field.label = ASCIIToUTF16("ExpDate Month / Year"); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 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 FormFieldData field; | 193 FormFieldData field; |
| 194 field.form_control_type = ASCIIToUTF16("text"); | 194 field.form_control_type = "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 |
| 204 field.label = ASCIIToUTF16("Expiration date Month / Year"); | 204 field.label = ASCIIToUTF16("Expiration date Month / Year"); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 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 FormFieldData field; | 232 FormFieldData field; |
| 233 field.form_control_type = ASCIIToUTF16("text"); | 233 field.form_control_type = "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 |
| 243 field.label = ASCIIToUTF16("Expiration Date (MM/YYYY)"); | 243 field.label = ASCIIToUTF16("Expiration Date (MM/YYYY)"); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 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 FormFieldData field; | 264 FormFieldData field; |
| 265 field.form_control_type = ASCIIToUTF16("text"); | 265 field.form_control_type = "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 |
| 275 field.label = ASCIIToUTF16("Expiration Date (MM/YY)"); | 275 field.label = ASCIIToUTF16("Expiration Date (MM/YY)"); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 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 FormFieldData field; | 296 FormFieldData field; |
| 297 field.form_control_type = ASCIIToUTF16("text"); | 297 field.form_control_type = "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 |