| Index: components/autofill/core/browser/credit_card_field_unittest.cc
|
| diff --git a/components/autofill/core/browser/credit_card_field_unittest.cc b/components/autofill/core/browser/credit_card_field_unittest.cc
|
| index 037a302c340359eaef21595384e09f04342dddfc..d39a13ba5e9384685facfa5f738811690afcfa56 100644
|
| --- a/components/autofill/core/browser/credit_card_field_unittest.cc
|
| +++ b/components/autofill/core/browser/credit_card_field_unittest.cc
|
| @@ -21,7 +21,7 @@ class CreditCardFieldTest : public testing::Test {
|
| virtual ~CreditCardFieldTest() {}
|
|
|
| protected:
|
| - ScopedVector<const AutofillField> list_;
|
| + ScopedVector<AutofillField> list_;
|
| scoped_ptr<const CreditCardField> field_;
|
| ServerFieldTypeMap field_type_map_;
|
|
|
| @@ -347,4 +347,119 @@ TEST_F(CreditCardFieldTest, ParseMonthControl) {
|
| field_type_map_[ASCIIToUTF16("date2")]);
|
| }
|
|
|
| +TEST_F(CreditCardFieldTest, ParseCreditCardNumberWithSplit) {
|
| + FormFieldData field;
|
| + field.form_control_type = "text";
|
| +
|
| + field.label = ASCIIToUTF16("Card Number");
|
| + field.name = ASCIIToUTF16("card_number_q1");
|
| + field.max_length = 4;
|
| + list_.push_back(new AutofillField(field, ASCIIToUTF16("number1")));
|
| +
|
| + field.label = ASCIIToUTF16("Card Number");
|
| + field.name = ASCIIToUTF16("card_number_q2");
|
| + field.max_length = 4;
|
| + list_.push_back(new AutofillField(field, ASCIIToUTF16("number2")));
|
| +
|
| + field.label = ASCIIToUTF16("Card Number");
|
| + field.name = ASCIIToUTF16("card_number_q3");
|
| + field.max_length = 4;
|
| + list_.push_back(new AutofillField(field, ASCIIToUTF16("number3")));
|
| +
|
| + field.label = ASCIIToUTF16("Card Number");
|
| + field.name = ASCIIToUTF16("card_number_q4");
|
| + field.max_length = 4;
|
| + list_.push_back(new AutofillField(field, ASCIIToUTF16("number4")));
|
| +
|
| + field.label = ASCIIToUTF16("Exp Month");
|
| + field.name = ASCIIToUTF16("ccmonth");
|
| + list_.push_back(new AutofillField(field, ASCIIToUTF16("month5")));
|
| +
|
| + field.label = ASCIIToUTF16("Exp Year");
|
| + field.name = ASCIIToUTF16("ccyear");
|
| + list_.push_back(new AutofillField(field, ASCIIToUTF16("year6")));
|
| +
|
| + Parse();
|
| + ASSERT_NE(static_cast<CreditCardField*>(NULL), field_.get());
|
| + EXPECT_TRUE(ClassifyField());
|
| +
|
| + ASSERT_TRUE(field_type_map_.find(ASCIIToUTF16("number1")) !=
|
| + field_type_map_.end());
|
| + EXPECT_EQ(CREDIT_CARD_NUMBER, field_type_map_[ASCIIToUTF16("number1")]);
|
| + EXPECT_EQ(0U, list_[0]->credit_card_number_start_index());
|
| +
|
| + ASSERT_TRUE(field_type_map_.find(ASCIIToUTF16("number2")) !=
|
| + field_type_map_.end());
|
| + EXPECT_EQ(CREDIT_CARD_NUMBER, field_type_map_[ASCIIToUTF16("number2")]);
|
| + EXPECT_EQ(4U, list_[1]->credit_card_number_start_index());
|
| +
|
| + ASSERT_TRUE(field_type_map_.find(ASCIIToUTF16("number3")) !=
|
| + field_type_map_.end());
|
| + EXPECT_EQ(CREDIT_CARD_NUMBER, field_type_map_[ASCIIToUTF16("number3")]);
|
| + EXPECT_EQ(8U, list_[2]->credit_card_number_start_index());
|
| +
|
| + ASSERT_TRUE(field_type_map_.find(ASCIIToUTF16("number4")) !=
|
| + field_type_map_.end());
|
| + EXPECT_EQ(CREDIT_CARD_NUMBER, field_type_map_[ASCIIToUTF16("number4")]);
|
| + EXPECT_EQ(12U, list_[3]->credit_card_number_start_index());
|
| +
|
| + ASSERT_TRUE(field_type_map_.find(ASCIIToUTF16("month5")) !=
|
| + field_type_map_.end());
|
| + EXPECT_EQ(CREDIT_CARD_EXP_MONTH, field_type_map_[ASCIIToUTF16("month5")]);
|
| + ASSERT_TRUE(field_type_map_.find(ASCIIToUTF16("year6")) !=
|
| + field_type_map_.end());
|
| + EXPECT_EQ(CREDIT_CARD_EXP_4_DIGIT_YEAR,
|
| + field_type_map_[ASCIIToUTF16("year6")]);
|
| +}
|
| +
|
| +TEST_F(CreditCardFieldTest, ParseCreditCardNumberWithInvalidSplit) {
|
| + FormFieldData field;
|
| + field.form_control_type = "text";
|
| +
|
| + field.label = ASCIIToUTF16("Card Number");
|
| + field.name = ASCIIToUTF16("card_number_q1");
|
| + field.max_length = 4;
|
| + list_.push_back(new AutofillField(field, ASCIIToUTF16("number1")));
|
| +
|
| + field.label = ASCIIToUTF16("Card Number");
|
| + field.name = ASCIIToUTF16("card_number_q2");
|
| + field.max_length = 20;
|
| + list_.push_back(new AutofillField(field, ASCIIToUTF16("number2")));
|
| +
|
| + field.label = ASCIIToUTF16("Card Number");
|
| + field.name = ASCIIToUTF16("card_number_q3");
|
| + field.max_length = 4;
|
| + list_.push_back(new AutofillField(field, ASCIIToUTF16("number3")));
|
| +
|
| + field.label = ASCIIToUTF16("Card Number");
|
| + field.name = ASCIIToUTF16("card_number_q4");
|
| + field.max_length = 4;
|
| + list_.push_back(new AutofillField(field, ASCIIToUTF16("number4")));
|
| +
|
| + field.label = ASCIIToUTF16("Exp Month");
|
| + field.name = ASCIIToUTF16("ccmonth");
|
| + list_.push_back(new AutofillField(field, ASCIIToUTF16("month5")));
|
| +
|
| + field.label = ASCIIToUTF16("Exp Year");
|
| + field.name = ASCIIToUTF16("ccyear");
|
| + list_.push_back(new AutofillField(field, ASCIIToUTF16("year6")));
|
| +
|
| + Parse();
|
| + ASSERT_NE(static_cast<CreditCardField*>(NULL), field_.get());
|
| + EXPECT_FALSE(ClassifyField());
|
| +
|
| + ASSERT_TRUE(field_type_map_.find(ASCIIToUTF16("number1")) ==
|
| + field_type_map_.end());
|
| + ASSERT_TRUE(field_type_map_.find(ASCIIToUTF16("number2")) ==
|
| + field_type_map_.end());
|
| + ASSERT_TRUE(field_type_map_.find(ASCIIToUTF16("number3")) ==
|
| + field_type_map_.end());
|
| + ASSERT_TRUE(field_type_map_.find(ASCIIToUTF16("number4")) ==
|
| + field_type_map_.end());
|
| + ASSERT_TRUE(field_type_map_.find(ASCIIToUTF16("month5")) ==
|
| + field_type_map_.end());
|
| + ASSERT_TRUE(field_type_map_.find(ASCIIToUTF16("year6")) ==
|
| + field_type_map_.end());
|
| +}
|
| +
|
| } // namespace autofill
|
|
|