| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/basictypes.h" | 5 #include "base/basictypes.h" |
| 6 #include "base/guid.h" | 6 #include "base/guid.h" |
| 7 #include "base/strings/utf_string_conversions.h" | 7 #include "base/strings/utf_string_conversions.h" |
| 8 #include "components/autofill/core/browser/autofill_common_test.h" | 8 #include "components/autofill/core/browser/autofill_common_test.h" |
| 9 #include "components/autofill/core/browser/credit_card.h" | 9 #include "components/autofill/core/browser/credit_card.h" |
| 10 #include "components/autofill/core/browser/validation.h" | 10 #include "components/autofill/core/browser/validation.h" |
| (...skipping 16 matching lines...) Expand all Loading... |
| 27 "6011 0009 9013 9424", | 27 "6011 0009 9013 9424", |
| 28 "3530-1113-3330-0000", | 28 "3530-1113-3330-0000", |
| 29 "3566002020360505", | 29 "3566002020360505", |
| 30 "5555 5555 5555 4444", | 30 "5555 5555 5555 4444", |
| 31 "5105-1051-0510-5100", | 31 "5105-1051-0510-5100", |
| 32 "4111111111111111", | 32 "4111111111111111", |
| 33 "4012 8888 8888 1881", | 33 "4012 8888 8888 1881", |
| 34 "4222-2222-2222-2", | 34 "4222-2222-2222-2", |
| 35 "5019717010103742", | 35 "5019717010103742", |
| 36 "6331101999990016", | 36 "6331101999990016", |
| 37 |
| 38 // A UnionPay card that doesn't pass the Luhn checksum |
| 39 "6200000000000000", |
| 37 }; | 40 }; |
| 38 const char* const kInvalidNumbers[] = { | 41 const char* const kInvalidNumbers[] = { |
| 39 "4111 1111 112", /* too short */ | 42 "4111 1111 112", /* too short */ |
| 40 "41111111111111111115", /* too long */ | 43 "41111111111111111115", /* too long */ |
| 41 "4111-1111-1111-1110", /* wrong Luhn checksum */ | 44 "4111-1111-1111-1110", /* wrong Luhn checksum */ |
| 42 "3056 9309 0259 04aa", /* non-digit characters */ | 45 "3056 9309 0259 04aa", /* non-digit characters */ |
| 43 }; | 46 }; |
| 44 | 47 |
| 45 } // namespace | 48 } // namespace |
| 46 | 49 |
| (...skipping 505 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 552 { "5500005555555559", kMasterCard, true }, | 555 { "5500005555555559", kMasterCard, true }, |
| 553 { "5555555555555557", kMasterCard, true }, | 556 { "5555555555555557", kMasterCard, true }, |
| 554 { "5454545454545454", kMasterCard, true }, | 557 { "5454545454545454", kMasterCard, true }, |
| 555 { "5555515555555551", kMasterCard, true }, | 558 { "5555515555555551", kMasterCard, true }, |
| 556 { "5405222222222226", kMasterCard, true }, | 559 { "5405222222222226", kMasterCard, true }, |
| 557 { "5478050000000007", kMasterCard, true }, | 560 { "5478050000000007", kMasterCard, true }, |
| 558 { "5111005111051128", kMasterCard, true }, | 561 { "5111005111051128", kMasterCard, true }, |
| 559 { "5112345112345114", kMasterCard, true }, | 562 { "5112345112345114", kMasterCard, true }, |
| 560 { "5115915115915118", kMasterCard, true }, | 563 { "5115915115915118", kMasterCard, true }, |
| 561 | 564 |
| 565 // A UnionPay card that doesn't pass the Luhn checksum |
| 566 { "6200000000000000", kUnionPay, true }, |
| 567 |
| 562 // Empty string | 568 // Empty string |
| 563 { std::string(), kGenericCard, false }, | 569 { std::string(), kGenericCard, false }, |
| 564 | 570 |
| 565 // Non-numeric | 571 // Non-numeric |
| 566 { "garbage", kGenericCard, false }, | 572 { "garbage", kGenericCard, false }, |
| 567 { "4garbage", kVisaCard, false }, | 573 { "4garbage", kVisaCard, false }, |
| 568 | 574 |
| 569 // Fails Luhn check. | 575 // Fails Luhn check. |
| 570 { "4111111111111112", kVisaCard, false }, | 576 { "4111111111111112", kVisaCard, false }, |
| 571 | 577 |
| (...skipping 24 matching lines...) Expand all Loading... |
| 596 { "649", kDiscoverCard, false }, | 602 { "649", kDiscoverCard, false }, |
| 597 { "65", kDiscoverCard, false }, | 603 { "65", kDiscoverCard, false }, |
| 598 { "3528", kJCBCard, false }, | 604 { "3528", kJCBCard, false }, |
| 599 { "3531", kJCBCard, false }, | 605 { "3531", kJCBCard, false }, |
| 600 { "3589", kJCBCard, false }, | 606 { "3589", kJCBCard, false }, |
| 601 { "51", kMasterCard, false }, | 607 { "51", kMasterCard, false }, |
| 602 { "52", kMasterCard, false }, | 608 { "52", kMasterCard, false }, |
| 603 { "53", kMasterCard, false }, | 609 { "53", kMasterCard, false }, |
| 604 { "54", kMasterCard, false }, | 610 { "54", kMasterCard, false }, |
| 605 { "55", kMasterCard, false }, | 611 { "55", kMasterCard, false }, |
| 612 { "62", kUnionPay, false }, |
| 606 | 613 |
| 607 // Not enough data to determine an IIN uniquely. | 614 // Not enough data to determine an IIN uniquely. |
| 608 { "3", kGenericCard, false }, | 615 { "3", kGenericCard, false }, |
| 609 { "30", kGenericCard, false }, | 616 { "30", kGenericCard, false }, |
| 610 { "309", kGenericCard, false }, | 617 { "309", kGenericCard, false }, |
| 611 { "35", kGenericCard, false }, | 618 { "35", kGenericCard, false }, |
| 612 { "5", kGenericCard, false }, | 619 { "5", kGenericCard, false }, |
| 613 { "6", kGenericCard, false }, | 620 { "6", kGenericCard, false }, |
| 614 { "60", kGenericCard, false }, | 621 { "60", kGenericCard, false }, |
| 615 { "601", kGenericCard, false }, | 622 { "601", kGenericCard, false }, |
| (...skipping 23 matching lines...) Expand all Loading... |
| 639 { "600", kGenericCard, false }, | 646 { "600", kGenericCard, false }, |
| 640 { "602", kGenericCard, false }, | 647 { "602", kGenericCard, false }, |
| 641 { "603", kGenericCard, false }, | 648 { "603", kGenericCard, false }, |
| 642 { "604", kGenericCard, false }, | 649 { "604", kGenericCard, false }, |
| 643 { "605", kGenericCard, false }, | 650 { "605", kGenericCard, false }, |
| 644 { "606", kGenericCard, false }, | 651 { "606", kGenericCard, false }, |
| 645 { "607", kGenericCard, false }, | 652 { "607", kGenericCard, false }, |
| 646 { "608", kGenericCard, false }, | 653 { "608", kGenericCard, false }, |
| 647 { "609", kGenericCard, false }, | 654 { "609", kGenericCard, false }, |
| 648 { "61", kGenericCard, false }, | 655 { "61", kGenericCard, false }, |
| 649 { "62", kGenericCard, false }, | |
| 650 { "63", kGenericCard, false }, | 656 { "63", kGenericCard, false }, |
| 651 { "640", kGenericCard, false }, | 657 { "640", kGenericCard, false }, |
| 652 { "641", kGenericCard, false }, | 658 { "641", kGenericCard, false }, |
| 653 { "642", kGenericCard, false }, | 659 { "642", kGenericCard, false }, |
| 654 { "643", kGenericCard, false }, | 660 { "643", kGenericCard, false }, |
| 655 { "66", kGenericCard, false }, | 661 { "66", kGenericCard, false }, |
| 656 { "67", kGenericCard, false }, | 662 { "67", kGenericCard, false }, |
| 657 { "68", kGenericCard, false }, | 663 { "68", kGenericCard, false }, |
| 658 { "69", kGenericCard, false }, | 664 { "69", kGenericCard, false }, |
| 659 { "7", kGenericCard, false }, | 665 { "7", kGenericCard, false }, |
| 660 { "8", kGenericCard, false }, | 666 { "8", kGenericCard, false }, |
| 661 { "9", kGenericCard, false }, | 667 { "9", kGenericCard, false }, |
| 662 | 668 |
| 663 // Oddball case: Unknown issuer, but valid Luhn check and plausible length. | 669 // Oddball case: Unknown issuer, but valid Luhn check and plausible length. |
| 664 { "7000700070007000", kGenericCard, true }, | 670 { "7000700070007000", kGenericCard, true }, |
| 665 }; | 671 }; |
| 666 | 672 |
| 667 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_cases); ++i) { | 673 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_cases); ++i) { |
| 668 base::string16 card_number = ASCIIToUTF16(test_cases[i].card_number); | 674 base::string16 card_number = ASCIIToUTF16(test_cases[i].card_number); |
| 669 SCOPED_TRACE(card_number); | 675 SCOPED_TRACE(card_number); |
| 670 EXPECT_EQ(test_cases[i].type, CreditCard::GetCreditCardType(card_number)); | 676 EXPECT_EQ(test_cases[i].type, CreditCard::GetCreditCardType(card_number)); |
| 671 EXPECT_EQ(test_cases[i].is_valid, IsValidCreditCardNumber(card_number)); | 677 EXPECT_EQ(test_cases[i].is_valid, IsValidCreditCardNumber(card_number)); |
| 672 } | 678 } |
| 673 } | 679 } |
| 674 | 680 |
| 675 } // namespace autofill | 681 } // namespace autofill |
| OLD | NEW |