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..701ac61dca5e7ee48c4e4eacfb08d7cdf70d8c1c 100644 |
--- a/components/autofill/core/browser/form_structure_unittest.cc |
+++ b/components/autofill/core/browser/form_structure_unittest.cc |
@@ -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 at |
+// the in the middle of the form. |
Mathieu
2016/02/23 15:23:03
fix comment
sebsg
2016/02/24 18:49:44
Done.
|
+TEST_F(FormStructureTest, CreditCardNames) { |
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 fist name has to contains some credit card |
Mathieu
2016/02/12 20:53:30
nit:first
sebsg
2016/02/24 18:49:44
Done.
|
+// keyword. |
+TEST_F(FormStructureTest, CreditCardSplitNames_first) { |
Mathieu
2016/02/12 20:53:30
more descriptive name?
sebsg
2016/02/24 18:49:44
Done.
|
+ 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()); |
+ |
+ // Card Number. |
+ EXPECT_EQ(CREDIT_CARD_NUMBER, form_structure->field(2)->heuristic_type()); |
Mathieu
2016/02/12 20:53:30
nit: can they be in order?
sebsg
2016/02/24 18:49:44
Done.
|
+ // 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()); |
// Expiration Date. |
EXPECT_EQ(CREDIT_CARD_EXP_MONTH, form_structure->field(3)->heuristic_type()); |
// Expiration Year. |