| Index: components/autofill/core/browser/form_structure_unittest.cc
|
| diff --git a/components/autofill/core/browser/form_structure_unittest.cc b/components/autofill/core/browser/form_structure_unittest.cc
|
| index 4d1812a3e88f58796042e7029f7c07fbefb2335c..8a200e4eef09c35ed292bbc6716946f0d5f2eb72 100644
|
| --- a/components/autofill/core/browser/form_structure_unittest.cc
|
| +++ b/components/autofill/core/browser/form_structure_unittest.cc
|
| @@ -1211,7 +1211,7 @@ TEST_F(FormStructureTest, HeuristicsCreditCardInfo) {
|
| ASSERT_EQ(5U, form_structure->autofill_count());
|
|
|
| // Credit card name.
|
| - EXPECT_EQ(CREDIT_CARD_NAME, form_structure->field(0)->heuristic_type());
|
| + EXPECT_EQ(CREDIT_CARD_NAME_FULL, form_structure->field(0)->heuristic_type());
|
| // Credit card number.
|
| EXPECT_EQ(CREDIT_CARD_NUMBER, form_structure->field(1)->heuristic_type());
|
| // Credit card expiration month.
|
| @@ -1271,7 +1271,7 @@ TEST_F(FormStructureTest, HeuristicsCreditCardInfoWithUnknownCardField) {
|
| ASSERT_EQ(5U, form_structure->autofill_count());
|
|
|
| // Credit card name.
|
| - EXPECT_EQ(CREDIT_CARD_NAME, form_structure->field(0)->heuristic_type());
|
| + EXPECT_EQ(CREDIT_CARD_NAME_FULL, form_structure->field(0)->heuristic_type());
|
| // Credit card type. This is an unknown type but related to the credit card.
|
| EXPECT_EQ(UNKNOWN_TYPE, form_structure->field(1)->heuristic_type());
|
| // Credit card number.
|
| @@ -1634,7 +1634,7 @@ TEST_F(FormStructureTest, HeuristicsInfernoCC) {
|
| EXPECT_EQ(5U, form_structure->autofill_count());
|
|
|
| // Name on Card.
|
| - EXPECT_EQ(CREDIT_CARD_NAME, form_structure->field(0)->heuristic_type());
|
| + EXPECT_EQ(CREDIT_CARD_NAME_FULL, form_structure->field(0)->heuristic_type());
|
| // Address.
|
| EXPECT_EQ(ADDRESS_HOME_LINE1, form_structure->field(1)->heuristic_type());
|
| // Card Number.
|
| @@ -1646,7 +1646,9 @@ TEST_F(FormStructureTest, HeuristicsInfernoCC) {
|
| form_structure->field(4)->heuristic_type());
|
| }
|
|
|
| -TEST_F(FormStructureTest, CVCCodeClash) {
|
| +// Tests that the heuristics detect split credit card names if they appear in
|
| +// the middle of the form.
|
| +TEST_F(FormStructureTest, HeuristicsInferCCNames_NamesNotFirst) {
|
| scoped_ptr<FormStructure> form_structure;
|
| FormData form;
|
|
|
| @@ -1683,14 +1685,72 @@ TEST_F(FormStructureTest, CVCCodeClash) {
|
|
|
| // Expect the correct number of fields.
|
| ASSERT_EQ(6U, form_structure->field_count());
|
| - ASSERT_EQ(5U, form_structure->autofill_count());
|
| + ASSERT_EQ(6U, form_structure->autofill_count());
|
|
|
| // Card Number.
|
| EXPECT_EQ(CREDIT_CARD_NUMBER, form_structure->field(0)->heuristic_type());
|
| - // First name, taken as name on card.
|
| - EXPECT_EQ(CREDIT_CARD_NAME, form_structure->field(1)->heuristic_type());
|
| - // Last name is not merged.
|
| - EXPECT_EQ(UNKNOWN_TYPE, form_structure->field(2)->heuristic_type());
|
| + // First name.
|
| + EXPECT_EQ(CREDIT_CARD_NAME_FIRST, form_structure->field(1)->heuristic_type());
|
| + // Last name.
|
| + EXPECT_EQ(CREDIT_CARD_NAME_LAST, form_structure->field(2)->heuristic_type());
|
| + // Expiration Date.
|
| + EXPECT_EQ(CREDIT_CARD_EXP_MONTH, form_structure->field(3)->heuristic_type());
|
| + // Expiration Year.
|
| + EXPECT_EQ(CREDIT_CARD_EXP_4_DIGIT_YEAR,
|
| + form_structure->field(4)->heuristic_type());
|
| + // CVC code.
|
| + EXPECT_EQ(CREDIT_CARD_VERIFICATION_CODE,
|
| + form_structure->field(5)->heuristic_type());
|
| +}
|
| +
|
| +// Tests that the heuristics detect split credit card names if they appear at
|
| +// the beginning of the form. The first name has to contains some credit card
|
| +// keyword.
|
| +TEST_F(FormStructureTest, HeuristicsInferCCNames_NamesFirst) {
|
| + scoped_ptr<FormStructure> form_structure;
|
| + FormData form;
|
| +
|
| + FormFieldData field;
|
| + field.form_control_type = "text";
|
| +
|
| + field.label = ASCIIToUTF16("Cardholder Name");
|
| + field.name = ASCIIToUTF16("cc_first_name");
|
| + form.fields.push_back(field);
|
| +
|
| + field.label = ASCIIToUTF16("Last name");
|
| + field.name = ASCIIToUTF16("last_name");
|
| + form.fields.push_back(field);
|
| +
|
| + field.label = ASCIIToUTF16("Card number");
|
| + field.name = ASCIIToUTF16("ccnumber");
|
| + form.fields.push_back(field);
|
| +
|
| + field.label = ASCIIToUTF16("Expiration date");
|
| + field.name = ASCIIToUTF16("ccexpiresmonth");
|
| + form.fields.push_back(field);
|
| +
|
| + field.label = base::string16();
|
| + field.name = ASCIIToUTF16("ccexpiresyear");
|
| + form.fields.push_back(field);
|
| +
|
| + field.label = ASCIIToUTF16("cvc number");
|
| + field.name = ASCIIToUTF16("csc");
|
| + form.fields.push_back(field);
|
| +
|
| + form_structure.reset(new FormStructure(form));
|
| + form_structure->DetermineHeuristicTypes();
|
| + EXPECT_TRUE(form_structure->IsAutofillable());
|
| +
|
| + // Expect the correct number of fields.
|
| + ASSERT_EQ(6U, form_structure->field_count());
|
| + ASSERT_EQ(6U, form_structure->autofill_count());
|
| +
|
| + // First name.
|
| + EXPECT_EQ(CREDIT_CARD_NAME_FIRST, form_structure->field(0)->heuristic_type());
|
| + // Last name.
|
| + EXPECT_EQ(CREDIT_CARD_NAME_LAST, form_structure->field(1)->heuristic_type());
|
| + // Card Number.
|
| + EXPECT_EQ(CREDIT_CARD_NUMBER, form_structure->field(2)->heuristic_type());
|
| // Expiration Date.
|
| EXPECT_EQ(CREDIT_CARD_EXP_MONTH, form_structure->field(3)->heuristic_type());
|
| // Expiration Year.
|
| @@ -2675,7 +2735,7 @@ TEST_F(FormStructureTest, CheckDataPresence) {
|
| // datapresent should be "0000000000001fc0" == trimmmed(0x0000000000001fc0) ==
|
| // 0b0000000000000000000000000000000000000000000000000001111111000000
|
| // The set bits are:
|
| - // 51 == CREDIT_CARD_NAME
|
| + // 51 == CREDIT_CARD_NAME_FULL
|
| // 52 == CREDIT_CARD_NUMBER
|
| // 53 == CREDIT_CARD_EXP_MONTH
|
| // 54 == CREDIT_CARD_EXP_2_DIGIT_YEAR
|
| @@ -2683,7 +2743,7 @@ TEST_F(FormStructureTest, CheckDataPresence) {
|
| // 56 == CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR
|
| // 57 == CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR
|
| available_field_types.clear();
|
| - available_field_types.insert(CREDIT_CARD_NAME);
|
| + available_field_types.insert(CREDIT_CARD_NAME_FULL);
|
| available_field_types.insert(CREDIT_CARD_NUMBER);
|
| available_field_types.insert(CREDIT_CARD_EXP_MONTH);
|
| available_field_types.insert(CREDIT_CARD_EXP_2_DIGIT_YEAR);
|
| @@ -2723,7 +2783,7 @@ TEST_F(FormStructureTest, CheckDataPresence) {
|
| // 34 == ADDRESS_HOME_STATE
|
| // 35 == ADDRESS_HOME_ZIP
|
| // 36 == ADDRESS_HOME_COUNTRY
|
| - // 51 == CREDIT_CARD_NAME
|
| + // 51 == CREDIT_CARD_NAME_FULL
|
| // 52 == CREDIT_CARD_NUMBER
|
| // 53 == CREDIT_CARD_EXP_MONTH
|
| // 54 == CREDIT_CARD_EXP_2_DIGIT_YEAR
|
| @@ -2749,7 +2809,7 @@ TEST_F(FormStructureTest, CheckDataPresence) {
|
| available_field_types.insert(ADDRESS_HOME_STATE);
|
| available_field_types.insert(ADDRESS_HOME_ZIP);
|
| available_field_types.insert(ADDRESS_HOME_COUNTRY);
|
| - available_field_types.insert(CREDIT_CARD_NAME);
|
| + available_field_types.insert(CREDIT_CARD_NAME_FULL);
|
| available_field_types.insert(CREDIT_CARD_NUMBER);
|
| available_field_types.insert(CREDIT_CARD_EXP_MONTH);
|
| available_field_types.insert(CREDIT_CARD_EXP_2_DIGIT_YEAR);
|
|
|