diff options
author | jhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-06 23:45:25 +0000 |
---|---|---|
committer | jhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-06 23:45:25 +0000 |
commit | 7517ca1ca0fed3ef5bbf8d179edd3632d0257def (patch) | |
tree | b82ed093da654d4562b7a1b5dc72f9a25c88531d | |
parent | 7150962f2e8616b26b5d2861fa360d2150f1e81a (diff) | |
download | chromium_src-7517ca1ca0fed3ef5bbf8d179edd3632d0257def.zip chromium_src-7517ca1ca0fed3ef5bbf8d179edd3632d0257def.tar.gz chromium_src-7517ca1ca0fed3ef5bbf8d179edd3632d0257def.tar.bz2 |
Autofill: Fix GetCreditCardType to return 'generic' if the number does not pass
the Luhn test.
BUG=70064
TEST=none
Review URL: http://codereview.chromium.org/6625004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77096 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/autofill/autofill_manager_unittest.cc | 6 | ||||
-rw-r--r-- | chrome/browser/autofill/credit_card.cc | 4 | ||||
-rw-r--r-- | chrome/browser/autofill/credit_card_unittest.cc | 22 |
3 files changed, 22 insertions, 10 deletions
diff --git a/chrome/browser/autofill/autofill_manager_unittest.cc b/chrome/browser/autofill/autofill_manager_unittest.cc index 9a97b76..c374170 100644 --- a/chrome/browser/autofill/autofill_manager_unittest.cc +++ b/chrome/browser/autofill/autofill_manager_unittest.cc @@ -823,7 +823,7 @@ TEST_F(AutofillManagerTest, GetCreditCardSuggestionsEmptyValue) { string16 expected_labels[] = {ASCIIToUTF16("*3456"), ASCIIToUTF16("*8765")}; string16 expected_icons[] = { ASCIIToUTF16("visaCC"), - ASCIIToUTF16("masterCardCC") + ASCIIToUTF16("genericCC") }; int expected_unique_ids[] = { autofill_manager_->GetPackedCreditCardID(4), @@ -902,7 +902,7 @@ TEST_F(AutofillManagerTest, GetCreditCardSuggestionsNonCCNumber) { string16 expected_labels[] = {ASCIIToUTF16("*3456"), ASCIIToUTF16("*8765")}; string16 expected_icons[] = { ASCIIToUTF16("visaCC"), - ASCIIToUTF16("masterCardCC") + ASCIIToUTF16("genericCC") }; int expected_unique_ids[] = { autofill_manager_->GetPackedCreditCardID(4), @@ -1038,7 +1038,7 @@ TEST_F(AutofillManagerTest, GetAddressAndCreditCardSuggestions) { string16 expected_labels2[] = {ASCIIToUTF16("*3456"), ASCIIToUTF16("*8765")}; string16 expected_icons2[] = { ASCIIToUTF16("visaCC"), - ASCIIToUTF16("masterCardCC") + ASCIIToUTF16("genericCC") }; int expected_unique_ids2[] = { autofill_manager_->GetPackedCreditCardID(4), diff --git a/chrome/browser/autofill/credit_card.cc b/chrome/browser/autofill/credit_card.cc index 3daf323..93e6e4e 100644 --- a/chrome/browser/autofill/credit_card.cc +++ b/chrome/browser/autofill/credit_card.cc @@ -35,6 +35,10 @@ const AutofillFieldType kAutoFillCreditCardTypes[] = { const int kAutoFillCreditCardLength = arraysize(kAutoFillCreditCardTypes); std::string GetCreditCardType(const string16& number) { + // Don't check for a specific type if this is not a credit card number. + if (!CreditCard::IsCreditCardNumber(number)) + return kGenericCard; + // Credit card number specifications taken from: // http://en.wikipedia.org/wiki/Credit_card_numbers and // http://www.beachnet.com/~hstiles/cardtype.html diff --git a/chrome/browser/autofill/credit_card_unittest.cc b/chrome/browser/autofill/credit_card_unittest.cc index 2cd9b85..009a4f7 100644 --- a/chrome/browser/autofill/credit_card_unittest.cc +++ b/chrome/browser/autofill/credit_card_unittest.cc @@ -44,30 +44,30 @@ TEST(CreditCardTest, PreviewSummaryAndObfuscatedNumberStrings) { autofill_test::SetCreditCardInfo(&credit_card2, "John Dillinger", "123456789012", "", "2010"); string16 summary2 = credit_card2.PreviewSummary(); - EXPECT_EQ(string16(ASCIIToUTF16("************9012")), summary2); + EXPECT_EQ(ASCIIToUTF16("************9012"), summary2); string16 obfuscated2 = credit_card2.ObfuscatedNumber(); - EXPECT_EQ(string16(ASCIIToUTF16("************9012")), obfuscated2); + EXPECT_EQ(ASCIIToUTF16("************9012"), obfuscated2); // Case 3: No year. CreditCard credit_card3; autofill_test::SetCreditCardInfo(&credit_card3, "John Dillinger", "123456789012", "01", ""); string16 summary3 = credit_card3.PreviewSummary(); - EXPECT_EQ(string16(ASCIIToUTF16("************9012")), summary3); + EXPECT_EQ(ASCIIToUTF16("************9012"), summary3); string16 obfuscated3 = credit_card3.ObfuscatedNumber(); - EXPECT_EQ(string16(ASCIIToUTF16("************9012")), obfuscated3); + EXPECT_EQ(ASCIIToUTF16("************9012"), obfuscated3); // Case 4: Have everything. CreditCard credit_card4; autofill_test::SetCreditCardInfo(&credit_card4, "John Dillinger", "123456789012", "01", "2010"); string16 summary4 = credit_card4.PreviewSummary(); - EXPECT_EQ(string16(ASCIIToUTF16("************9012, Exp: 01/2010")), summary4); + EXPECT_EQ(ASCIIToUTF16("************9012, Exp: 01/2010"), summary4); string16 obfuscated4 = credit_card4.ObfuscatedNumber(); - EXPECT_EQ(string16(ASCIIToUTF16("************9012")), obfuscated4); + EXPECT_EQ(ASCIIToUTF16("************9012"), obfuscated4); } -TEST(CreditCardTest, AssignmentOperator){ +TEST(CreditCardTest, AssignmentOperator) { CreditCard a, b; // Result of assignment should be logically equal to the original profile. @@ -81,5 +81,13 @@ TEST(CreditCardTest, AssignmentOperator){ EXPECT_TRUE(a == b); } +TEST(CreditCardTest, InvalidMastercardNumber) { + CreditCard card; + + autofill_test::SetCreditCardInfo(&card, "Baby Face Nelson", + "5200000000000004", "01", "2010"); + EXPECT_EQ(ASCIIToUTF16("genericCC"), card.type()); +} + } // namespace |