diff options
author | dhollowa@chromium.org <dhollowa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-24 02:29:39 +0000 |
---|---|---|
committer | dhollowa@chromium.org <dhollowa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-24 02:29:39 +0000 |
commit | e731a7edd7a30d2934de85876604093d9a738e6e (patch) | |
tree | b216aa0f524f94addd9b3fbffcb55b13b49d3e99 /chrome/browser/autofill/form_structure_unittest.cc | |
parent | b411da300f6a750553c2d4e30150a83a2be4895a (diff) | |
download | chromium_src-e731a7edd7a30d2934de85876604093d9a738e6e.zip chromium_src-e731a7edd7a30d2934de85876604093d9a738e6e.tar.gz chromium_src-e731a7edd7a30d2934de85876604093d9a738e6e.tar.bz2 |
Autofill infobar doesn't come up when security code is filled
Adds back in the notion of credit card cvc for heuristics purposes. The additional logic filters out cvc numbers from the forms. They were getting interpreted, in some cases, as card numbers.
BUG=64131
TEST=FormStructureTest.CVCCodeClash
Review URL: http://codereview.chromium.org/5268004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67204 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/autofill/form_structure_unittest.cc')
-rw-r--r-- | chrome/browser/autofill/form_structure_unittest.cc | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/chrome/browser/autofill/form_structure_unittest.cc b/chrome/browser/autofill/form_structure_unittest.cc index 8eb03fd..4097a69 100644 --- a/chrome/browser/autofill/form_structure_unittest.cc +++ b/chrome/browser/autofill/form_structure_unittest.cc @@ -1287,6 +1287,62 @@ TEST(FormStructureTest, HeuristicsInfernoCC) { form_structure->field(4)->heuristic_type()); } +TEST(FormStructureTest, CVCCodeClash) { + scoped_ptr<FormStructure> form_structure; + FormData form; + form.method = ASCIIToUTF16("post"); + form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Card number"), + ASCIIToUTF16("ccnumber"), + string16(), + ASCIIToUTF16("text"), + 0)); + form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("First name"), + ASCIIToUTF16("first_name"), + string16(), + ASCIIToUTF16("text"), + 0)); + form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Last name"), + ASCIIToUTF16("last_name"), + string16(), + ASCIIToUTF16("text"), + 0)); + form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Expiration date"), + ASCIIToUTF16("ccexpiresmonth"), + string16(), + ASCIIToUTF16("text"), + 0)); + form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16(""), + ASCIIToUTF16("ccexpiresyear"), + string16(), + ASCIIToUTF16("text"), + 0)); + form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("cvc number"), + ASCIIToUTF16("csc"), + string16(), + ASCIIToUTF16("text"), + 0)); + form_structure.reset(new FormStructure(form)); + EXPECT_TRUE(form_structure->IsAutoFillable(true)); + + // Expect the correct number of fields. + ASSERT_EQ(6U, form_structure->field_count()); + ASSERT_EQ(4U, 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()); + // 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 should not match. + EXPECT_EQ(UNKNOWN_TYPE, form_structure->field(5)->heuristic_type()); +} + TEST(FormStructureTest, EncodeQueryRequest) { FormData form; form.method = ASCIIToUTF16("post"); |