| 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 <stddef.h> | 5 #include <stddef.h> |
| 6 | 6 |
| 7 #include "base/guid.h" | 7 #include "base/guid.h" |
| 8 #include "base/macros.h" | 8 #include "base/macros.h" |
| 9 #include "base/strings/string_number_conversions.h" | 9 #include "base/strings/string_number_conversions.h" |
| 10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 54 "6331101999990016", | 54 "6331101999990016", |
| 55 "6247130048162403", | 55 "6247130048162403", |
| 56 }; | 56 }; |
| 57 const char* const kInvalidNumbers[] = { | 57 const char* const kInvalidNumbers[] = { |
| 58 "4111 1111 112", /* too short */ | 58 "4111 1111 112", /* too short */ |
| 59 "41111111111111111115", /* too long */ | 59 "41111111111111111115", /* too long */ |
| 60 "4111-1111-1111-1110", /* wrong Luhn checksum */ | 60 "4111-1111-1111-1110", /* wrong Luhn checksum */ |
| 61 "3056 9309 0259 04aa", /* non-digit characters */ | 61 "3056 9309 0259 04aa", /* non-digit characters */ |
| 62 }; | 62 }; |
| 63 | 63 |
| 64 const std::string kUTF8MidlineEllipsis = | 64 const char kUTF8MidlineEllipsis[] = |
| 65 " " | 65 " " |
| 66 "\xE2\x80\xA2\xE2\x80\x86" | 66 "\xE2\x80\xA2\xE2\x80\x86" |
| 67 "\xE2\x80\xA2\xE2\x80\x86" | 67 "\xE2\x80\xA2\xE2\x80\x86" |
| 68 "\xE2\x80\xA2\xE2\x80\x86" | 68 "\xE2\x80\xA2\xE2\x80\x86" |
| 69 "\xE2\x80\xA2\xE2\x80\x86"; | 69 "\xE2\x80\xA2\xE2\x80\x86"; |
| 70 | 70 |
| 71 } // namespace | 71 } // namespace |
| 72 | 72 |
| 73 // Tests credit card summary string generation. This test simulates a variety | 73 // Tests credit card summary string generation. This test simulates a variety |
| 74 // of different possible summary strings. Variations occur based on the | 74 // of different possible summary strings. Variations occur based on the |
| 75 // existence of credit card number, month, and year fields. | 75 // existence of credit card number, month, and year fields. |
| 76 TEST(CreditCardTest, PreviewSummaryAndTypeAndLastFourDigitsStrings) { | 76 TEST(CreditCardTest, PreviewSummaryAndNetworkAndLastFourDigitsStrings) { |
| 77 // Case 0: empty credit card. | 77 // Case 0: empty credit card. |
| 78 CreditCard credit_card0(base::GenerateGUID(), "https://www.example.com/"); | 78 CreditCard credit_card0(base::GenerateGUID(), "https://www.example.com/"); |
| 79 base::string16 summary0 = credit_card0.Label(); | 79 base::string16 summary0 = credit_card0.Label(); |
| 80 EXPECT_EQ(base::string16(), summary0); | 80 EXPECT_EQ(base::string16(), summary0); |
| 81 base::string16 obfuscated0 = credit_card0.TypeAndLastFourDigits(); | 81 base::string16 obfuscated0 = credit_card0.NetworkAndLastFourDigits(); |
| 82 EXPECT_EQ(ASCIIToUTF16("Card"), obfuscated0); | 82 EXPECT_EQ(ASCIIToUTF16(std::string("Card")), obfuscated0); |
| 83 | 83 |
| 84 // Case 00: Empty credit card with empty strings. | 84 // Case 00: Empty credit card with empty strings. |
| 85 CreditCard credit_card00(base::GenerateGUID(), "https://www.example.com/"); | 85 CreditCard credit_card00(base::GenerateGUID(), "https://www.example.com/"); |
| 86 test::SetCreditCardInfo(&credit_card00,"John Dillinger", "", "", ""); | 86 test::SetCreditCardInfo(&credit_card00, "John Dillinger", "", "", ""); |
| 87 base::string16 summary00 = credit_card00.Label(); | 87 base::string16 summary00 = credit_card00.Label(); |
| 88 EXPECT_EQ(base::string16(ASCIIToUTF16("John Dillinger")), summary00); | 88 EXPECT_EQ(base::string16(ASCIIToUTF16("John Dillinger")), summary00); |
| 89 base::string16 obfuscated00 = credit_card00.TypeAndLastFourDigits(); | 89 base::string16 obfuscated00 = credit_card00.NetworkAndLastFourDigits(); |
| 90 EXPECT_EQ(ASCIIToUTF16("Card"), obfuscated00); | 90 EXPECT_EQ(ASCIIToUTF16(std::string("Card")), obfuscated00); |
| 91 | 91 |
| 92 // Case 1: No credit card number. | 92 // Case 1: No credit card number. |
| 93 CreditCard credit_card1(base::GenerateGUID(), "https://www.example.com/"); | 93 CreditCard credit_card1(base::GenerateGUID(), "https://www.example.com/"); |
| 94 test::SetCreditCardInfo(&credit_card1,"John Dillinger", "", "01", "2010"); | 94 test::SetCreditCardInfo(&credit_card1, "John Dillinger", "", "01", "2010"); |
| 95 base::string16 summary1 = credit_card1.Label(); | 95 base::string16 summary1 = credit_card1.Label(); |
| 96 EXPECT_EQ(base::string16(ASCIIToUTF16("John Dillinger")), summary1); | 96 EXPECT_EQ(base::string16(ASCIIToUTF16("John Dillinger")), summary1); |
| 97 base::string16 obfuscated1 = credit_card1.TypeAndLastFourDigits(); | 97 base::string16 obfuscated1 = credit_card1.NetworkAndLastFourDigits(); |
| 98 EXPECT_EQ(ASCIIToUTF16("Card"), obfuscated1); | 98 EXPECT_EQ(ASCIIToUTF16(std::string("Card")), obfuscated1); |
| 99 | 99 |
| 100 // Case 2: No month. | 100 // Case 2: No month. |
| 101 CreditCard credit_card2(base::GenerateGUID(), "https://www.example.com/"); | 101 CreditCard credit_card2(base::GenerateGUID(), "https://www.example.com/"); |
| 102 test::SetCreditCardInfo( | 102 test::SetCreditCardInfo( |
| 103 &credit_card2, "John Dillinger", "5105 1051 0510 5100", "", "2010"); | 103 &credit_card2, "John Dillinger", "5105 1051 0510 5100", "", "2010"); |
| 104 base::string16 summary2 = credit_card2.Label(); | 104 base::string16 summary2 = credit_card2.Label(); |
| 105 EXPECT_EQ(UTF8ToUTF16("MasterCard" + kUTF8MidlineEllipsis + "5100"), | 105 EXPECT_EQ( |
| 106 summary2); | 106 UTF8ToUTF16(std::string("MasterCard") + kUTF8MidlineEllipsis + "5100"), |
| 107 base::string16 obfuscated2 = credit_card2.TypeAndLastFourDigits(); | 107 summary2); |
| 108 EXPECT_EQ(UTF8ToUTF16("MasterCard" + kUTF8MidlineEllipsis + "5100"), | 108 base::string16 obfuscated2 = credit_card2.NetworkAndLastFourDigits(); |
| 109 obfuscated2); | 109 EXPECT_EQ( |
| 110 UTF8ToUTF16(std::string("MasterCard") + kUTF8MidlineEllipsis + "5100"), |
| 111 obfuscated2); |
| 110 | 112 |
| 111 // Case 3: No year. | 113 // Case 3: No year. |
| 112 CreditCard credit_card3(base::GenerateGUID(), "https://www.example.com/"); | 114 CreditCard credit_card3(base::GenerateGUID(), "https://www.example.com/"); |
| 113 test::SetCreditCardInfo( | 115 test::SetCreditCardInfo( |
| 114 &credit_card3, "John Dillinger", "5105 1051 0510 5100", "01", ""); | 116 &credit_card3, "John Dillinger", "5105 1051 0510 5100", "01", ""); |
| 115 base::string16 summary3 = credit_card3.Label(); | 117 base::string16 summary3 = credit_card3.Label(); |
| 116 EXPECT_EQ(UTF8ToUTF16("MasterCard" + kUTF8MidlineEllipsis + "5100"), | 118 EXPECT_EQ( |
| 117 summary3); | 119 UTF8ToUTF16(std::string("MasterCard") + kUTF8MidlineEllipsis + "5100"), |
| 118 base::string16 obfuscated3 = credit_card3.TypeAndLastFourDigits(); | 120 summary3); |
| 119 EXPECT_EQ(UTF8ToUTF16("MasterCard" + kUTF8MidlineEllipsis + "5100"), | 121 base::string16 obfuscated3 = credit_card3.NetworkAndLastFourDigits(); |
| 120 obfuscated3); | 122 EXPECT_EQ( |
| 123 UTF8ToUTF16(std::string("MasterCard") + kUTF8MidlineEllipsis + "5100"), |
| 124 obfuscated3); |
| 121 | 125 |
| 122 // Case 4: Have everything. | 126 // Case 4: Have everything. |
| 123 CreditCard credit_card4(base::GenerateGUID(), "https://www.example.com/"); | 127 CreditCard credit_card4(base::GenerateGUID(), "https://www.example.com/"); |
| 124 test::SetCreditCardInfo( | 128 test::SetCreditCardInfo( |
| 125 &credit_card4, "John Dillinger", "5105 1051 0510 5100", "01", "2010"); | 129 &credit_card4, "John Dillinger", "5105 1051 0510 5100", "01", "2010"); |
| 126 base::string16 summary4 = credit_card4.Label(); | 130 base::string16 summary4 = credit_card4.Label(); |
| 127 EXPECT_EQ(UTF8ToUTF16("MasterCard" + kUTF8MidlineEllipsis + "5100, 01/2010"), | 131 EXPECT_EQ(UTF8ToUTF16(std::string("MasterCard") + kUTF8MidlineEllipsis + |
| 132 "5100, 01/2010"), |
| 128 summary4); | 133 summary4); |
| 129 base::string16 obfuscated4 = credit_card4.TypeAndLastFourDigits(); | 134 base::string16 obfuscated4 = credit_card4.NetworkAndLastFourDigits(); |
| 130 EXPECT_EQ(UTF8ToUTF16("MasterCard" + kUTF8MidlineEllipsis + "5100"), | 135 EXPECT_EQ( |
| 131 obfuscated4); | 136 UTF8ToUTF16(std::string("MasterCard") + kUTF8MidlineEllipsis + "5100"), |
| 137 obfuscated4); |
| 132 | 138 |
| 133 // Case 5: Very long credit card | 139 // Case 5: Very long credit card |
| 134 CreditCard credit_card5(base::GenerateGUID(), "https://www.example.com/"); | 140 CreditCard credit_card5(base::GenerateGUID(), "https://www.example.com/"); |
| 135 test::SetCreditCardInfo( | 141 test::SetCreditCardInfo( |
| 136 &credit_card5, | 142 &credit_card5, |
| 137 "John Dillinger", | 143 "John Dillinger", |
| 138 "0123456789 0123456789 0123456789 5105 1051 0510 5100", "01", "2010"); | 144 "0123456789 0123456789 0123456789 5105 1051 0510 5100", "01", "2010"); |
| 139 base::string16 summary5 = credit_card5.Label(); | 145 base::string16 summary5 = credit_card5.Label(); |
| 140 EXPECT_EQ(UTF8ToUTF16("Card" + kUTF8MidlineEllipsis + "5100, 01/2010"), | 146 EXPECT_EQ( |
| 141 summary5); | 147 UTF8ToUTF16(std::string("Card") + kUTF8MidlineEllipsis + "5100, 01/2010"), |
| 142 base::string16 obfuscated5 = credit_card5.TypeAndLastFourDigits(); | 148 summary5); |
| 143 EXPECT_EQ(UTF8ToUTF16("Card" + kUTF8MidlineEllipsis + "5100"), | 149 base::string16 obfuscated5 = credit_card5.NetworkAndLastFourDigits(); |
| 150 EXPECT_EQ(UTF8ToUTF16(std::string("Card") + kUTF8MidlineEllipsis + "5100"), |
| 144 obfuscated5); | 151 obfuscated5); |
| 145 } | 152 } |
| 146 | 153 |
| 147 TEST(CreditCardTest, AssignmentOperator) { | 154 TEST(CreditCardTest, AssignmentOperator) { |
| 148 CreditCard a(base::GenerateGUID(), "some origin"); | 155 CreditCard a(base::GenerateGUID(), "some origin"); |
| 149 test::SetCreditCardInfo(&a, "John Dillinger", "123456789012", "01", "2010"); | 156 test::SetCreditCardInfo(&a, "John Dillinger", "123456789012", "01", "2010"); |
| 150 | 157 |
| 151 // Result of assignment should be logically equal to the original profile. | 158 // Result of assignment should be logically equal to the original profile. |
| 152 CreditCard b(base::GenerateGUID(), "some other origin"); | 159 CreditCard b(base::GenerateGUID(), "some other origin"); |
| 153 b = a; | 160 b = a; |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 256 const char* first_card_name; | 263 const char* first_card_name; |
| 257 const char* first_card_number; | 264 const char* first_card_number; |
| 258 const char* first_card_exp_mo; | 265 const char* first_card_exp_mo; |
| 259 const char* first_card_exp_yr; | 266 const char* first_card_exp_yr; |
| 260 | 267 |
| 261 CreditCard::RecordType second_card_record_type; | 268 CreditCard::RecordType second_card_record_type; |
| 262 const char* second_card_name; | 269 const char* second_card_name; |
| 263 const char* second_card_number; | 270 const char* second_card_number; |
| 264 const char* second_card_exp_mo; | 271 const char* second_card_exp_mo; |
| 265 const char* second_card_exp_yr; | 272 const char* second_card_exp_yr; |
| 266 const char* second_card_type; | 273 const char* second_card_issuer_network; |
| 267 | 274 |
| 268 bool is_local_duplicate; | 275 bool is_local_duplicate; |
| 269 }; | 276 }; |
| 270 | 277 |
| 271 class IsLocalDuplicateOfServerCardTest | 278 class IsLocalDuplicateOfServerCardTest |
| 272 : public testing::TestWithParam<IsLocalDuplicateOfServerCardTestCase> {}; | 279 : public testing::TestWithParam<IsLocalDuplicateOfServerCardTestCase> {}; |
| 273 | 280 |
| 274 TEST_P(IsLocalDuplicateOfServerCardTest, IsLocalDuplicateOfServerCard) { | 281 TEST_P(IsLocalDuplicateOfServerCardTest, IsLocalDuplicateOfServerCard) { |
| 275 auto test_case = GetParam(); | 282 auto test_case = GetParam(); |
| 276 CreditCard a(base::GenerateGUID(), std::string()); | 283 CreditCard a(base::GenerateGUID(), std::string()); |
| 277 a.set_record_type(test_case.first_card_record_type); | 284 a.set_record_type(test_case.first_card_record_type); |
| 278 test::SetCreditCardInfo( | 285 test::SetCreditCardInfo( |
| 279 &a, test_case.first_card_name, test_case.first_card_number, | 286 &a, test_case.first_card_name, test_case.first_card_number, |
| 280 test_case.first_card_exp_mo, test_case.first_card_exp_yr); | 287 test_case.first_card_exp_mo, test_case.first_card_exp_yr); |
| 281 | 288 |
| 282 CreditCard b(base::GenerateGUID(), std::string()); | 289 CreditCard b(base::GenerateGUID(), std::string()); |
| 283 b.set_record_type(test_case.second_card_record_type); | 290 b.set_record_type(test_case.second_card_record_type); |
| 284 test::SetCreditCardInfo( | 291 test::SetCreditCardInfo( |
| 285 &b, test_case.second_card_name, test_case.second_card_number, | 292 &b, test_case.second_card_name, test_case.second_card_number, |
| 286 test_case.second_card_exp_mo, test_case.second_card_exp_yr); | 293 test_case.second_card_exp_mo, test_case.second_card_exp_yr); |
| 287 | 294 |
| 288 if (test_case.second_card_record_type == CreditCard::MASKED_SERVER_CARD) | 295 if (test_case.second_card_record_type == CreditCard::MASKED_SERVER_CARD) |
| 289 b.SetTypeForMaskedCard(test_case.second_card_type); | 296 b.SetNetworkForMaskedCard(test_case.second_card_issuer_network); |
| 290 | 297 |
| 291 EXPECT_EQ(test_case.is_local_duplicate, a.IsLocalDuplicateOfServerCard(b)) | 298 EXPECT_EQ(test_case.is_local_duplicate, a.IsLocalDuplicateOfServerCard(b)) |
| 292 << " when comparing cards " << a.Label() << " and " << b.Label(); | 299 << " when comparing cards " << a.Label() << " and " << b.Label(); |
| 293 } | 300 } |
| 294 | 301 |
| 295 INSTANTIATE_TEST_CASE_P( | 302 INSTANTIATE_TEST_CASE_P( |
| 296 CreditCardTest, | 303 CreditCardTest, |
| 297 IsLocalDuplicateOfServerCardTest, | 304 IsLocalDuplicateOfServerCardTest, |
| 298 testing::Values( | 305 testing::Values( |
| 299 IsLocalDuplicateOfServerCardTestCase{LOCAL_CARD, "", "", "", "", | 306 IsLocalDuplicateOfServerCardTestCase{LOCAL_CARD, "", "", "", "", |
| (...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 623 } | 630 } |
| 624 | 631 |
| 625 TEST(CreditCardTest, CreditCardVerificationCode) { | 632 TEST(CreditCardTest, CreditCardVerificationCode) { |
| 626 CreditCard card(base::GenerateGUID(), "https://www.example.com/"); | 633 CreditCard card(base::GenerateGUID(), "https://www.example.com/"); |
| 627 | 634 |
| 628 // The verification code cannot be set, as Chrome does not store this data. | 635 // The verification code cannot be set, as Chrome does not store this data. |
| 629 card.SetRawInfo(CREDIT_CARD_VERIFICATION_CODE, ASCIIToUTF16("999")); | 636 card.SetRawInfo(CREDIT_CARD_VERIFICATION_CODE, ASCIIToUTF16("999")); |
| 630 EXPECT_EQ(base::string16(), card.GetRawInfo(CREDIT_CARD_VERIFICATION_CODE)); | 637 EXPECT_EQ(base::string16(), card.GetRawInfo(CREDIT_CARD_VERIFICATION_CODE)); |
| 631 } | 638 } |
| 632 | 639 |
| 633 struct GetCreditCardTypeTestCase { | 640 struct GetCardNetworkTestCase { |
| 634 std::string card_number; | 641 std::string card_number; |
| 635 std::string type; | 642 std::string issuer_network; |
| 636 bool is_valid; | 643 bool is_valid; |
| 637 }; | 644 }; |
| 638 | 645 |
| 639 // We are doing batches here because INSTANTIATE_TEST_CASE_P has a | 646 // We are doing batches here because INSTANTIATE_TEST_CASE_P has a |
| 640 // 50 upper limit. | 647 // 50 upper limit. |
| 641 class GetCreditCardTypeTestBatch1 | 648 class GetCardNetworkTestBatch1 |
| 642 : public testing::TestWithParam<GetCreditCardTypeTestCase> {}; | 649 : public testing::TestWithParam<GetCardNetworkTestCase> {}; |
| 643 | 650 |
| 644 TEST_P(GetCreditCardTypeTestBatch1, GetCreditCardType) { | 651 TEST_P(GetCardNetworkTestBatch1, GetCardNetwork) { |
| 645 auto test_case = GetParam(); | 652 auto test_case = GetParam(); |
| 646 base::string16 card_number = ASCIIToUTF16(test_case.card_number); | 653 base::string16 card_number = ASCIIToUTF16(test_case.card_number); |
| 647 SCOPED_TRACE(card_number); | 654 SCOPED_TRACE(card_number); |
| 648 EXPECT_EQ(test_case.type, CreditCard::GetCreditCardType(card_number)); | 655 EXPECT_EQ(test_case.issuer_network, CreditCard::GetCardNetwork(card_number)); |
| 649 EXPECT_EQ(test_case.is_valid, IsValidCreditCardNumber(card_number)); | 656 EXPECT_EQ(test_case.is_valid, IsValidCreditCardNumber(card_number)); |
| 650 } | 657 } |
| 651 | 658 |
| 652 INSTANTIATE_TEST_CASE_P( | 659 INSTANTIATE_TEST_CASE_P( |
| 653 CreditCardTest, | 660 CreditCardTest, |
| 654 GetCreditCardTypeTestBatch1, | 661 GetCardNetworkTestBatch1, |
| 655 testing::Values( | 662 testing::Values( |
| 656 // The relevant sample numbers from | 663 // The relevant sample numbers from |
| 657 // http://www.paypalobjects.com/en_US/vhelp/paypalmanager_help/credit_ca
rd_numbers.htm | 664 // http://www.paypalobjects.com/en_US/vhelp/paypalmanager_help/credit_ca
rd_numbers.htm |
| 658 GetCreditCardTypeTestCase{"378282246310005", kAmericanExpressCard, | 665 GetCardNetworkTestCase{"378282246310005", kAmericanExpressCard, true}, |
| 659 true}, | 666 GetCardNetworkTestCase{"371449635398431", kAmericanExpressCard, true}, |
| 660 GetCreditCardTypeTestCase{"371449635398431", kAmericanExpressCard, | 667 GetCardNetworkTestCase{"378734493671000", kAmericanExpressCard, true}, |
| 661 true}, | 668 GetCardNetworkTestCase{"30569309025904", kDinersCard, true}, |
| 662 GetCreditCardTypeTestCase{"378734493671000", kAmericanExpressCard, | 669 GetCardNetworkTestCase{"38520000023237", kDinersCard, true}, |
| 663 true}, | 670 GetCardNetworkTestCase{"6011111111111117", kDiscoverCard, true}, |
| 664 GetCreditCardTypeTestCase{"30569309025904", kDinersCard, true}, | 671 GetCardNetworkTestCase{"6011000990139424", kDiscoverCard, true}, |
| 665 GetCreditCardTypeTestCase{"38520000023237", kDinersCard, true}, | 672 GetCardNetworkTestCase{"3530111333300000", kJCBCard, true}, |
| 666 GetCreditCardTypeTestCase{"6011111111111117", kDiscoverCard, true}, | 673 GetCardNetworkTestCase{"3566002020360505", kJCBCard, true}, |
| 667 GetCreditCardTypeTestCase{"6011000990139424", kDiscoverCard, true}, | 674 GetCardNetworkTestCase{"5555555555554444", kMasterCard, true}, |
| 668 GetCreditCardTypeTestCase{"3530111333300000", kJCBCard, true}, | 675 GetCardNetworkTestCase{"5105105105105100", kMasterCard, true}, |
| 669 GetCreditCardTypeTestCase{"3566002020360505", kJCBCard, true}, | 676 GetCardNetworkTestCase{"4111111111111111", kVisaCard, true}, |
| 670 GetCreditCardTypeTestCase{"5555555555554444", kMasterCard, true}, | 677 GetCardNetworkTestCase{"4012888888881881", kVisaCard, true}, |
| 671 GetCreditCardTypeTestCase{"5105105105105100", kMasterCard, true}, | 678 GetCardNetworkTestCase{"4222222222222", kVisaCard, true}, |
| 672 GetCreditCardTypeTestCase{"4111111111111111", kVisaCard, true}, | |
| 673 GetCreditCardTypeTestCase{"4012888888881881", kVisaCard, true}, | |
| 674 GetCreditCardTypeTestCase{"4222222222222", kVisaCard, true}, | |
| 675 | 679 |
| 676 // The relevant sample numbers from | 680 // The relevant sample numbers from |
| 677 // https://www.auricsystems.com/sample-credit-card-numbers/ | 681 // https://www.auricsystems.com/sample-credit-card-numbers/ |
| 678 GetCreditCardTypeTestCase{"343434343434343", kAmericanExpressCard, | 682 GetCardNetworkTestCase{"343434343434343", kAmericanExpressCard, true}, |
| 679 true}, | 683 GetCardNetworkTestCase{"371144371144376", kAmericanExpressCard, true}, |
| 680 GetCreditCardTypeTestCase{"371144371144376", kAmericanExpressCard, | 684 GetCardNetworkTestCase{"341134113411347", kAmericanExpressCard, true}, |
| 681 true}, | 685 GetCardNetworkTestCase{"36438936438936", kDinersCard, true}, |
| 682 GetCreditCardTypeTestCase{"341134113411347", kAmericanExpressCard, | 686 GetCardNetworkTestCase{"36110361103612", kDinersCard, true}, |
| 683 true}, | 687 GetCardNetworkTestCase{"36111111111111", kDinersCard, true}, |
| 684 GetCreditCardTypeTestCase{"36438936438936", kDinersCard, true}, | 688 GetCardNetworkTestCase{"6011016011016011", kDiscoverCard, true}, |
| 685 GetCreditCardTypeTestCase{"36110361103612", kDinersCard, true}, | 689 GetCardNetworkTestCase{"6011000990139424", kDiscoverCard, true}, |
| 686 GetCreditCardTypeTestCase{"36111111111111", kDinersCard, true}, | 690 GetCardNetworkTestCase{"6011000000000004", kDiscoverCard, true}, |
| 687 GetCreditCardTypeTestCase{"6011016011016011", kDiscoverCard, true}, | 691 GetCardNetworkTestCase{"6011000995500000", kDiscoverCard, true}, |
| 688 GetCreditCardTypeTestCase{"6011000990139424", kDiscoverCard, true}, | 692 GetCardNetworkTestCase{"6500000000000002", kDiscoverCard, true}, |
| 689 GetCreditCardTypeTestCase{"6011000000000004", kDiscoverCard, true}, | 693 GetCardNetworkTestCase{"3566002020360505", kJCBCard, true}, |
| 690 GetCreditCardTypeTestCase{"6011000995500000", kDiscoverCard, true}, | 694 GetCardNetworkTestCase{"3528000000000007", kJCBCard, true}, |
| 691 GetCreditCardTypeTestCase{"6500000000000002", kDiscoverCard, true}, | 695 GetCardNetworkTestCase{"5500005555555559", kMasterCard, true}, |
| 692 GetCreditCardTypeTestCase{"3566002020360505", kJCBCard, true}, | 696 GetCardNetworkTestCase{"5555555555555557", kMasterCard, true}, |
| 693 GetCreditCardTypeTestCase{"3528000000000007", kJCBCard, true}, | 697 GetCardNetworkTestCase{"5454545454545454", kMasterCard, true}, |
| 694 GetCreditCardTypeTestCase{"5500005555555559", kMasterCard, true}, | 698 GetCardNetworkTestCase{"5555515555555551", kMasterCard, true}, |
| 695 GetCreditCardTypeTestCase{"5555555555555557", kMasterCard, true}, | 699 GetCardNetworkTestCase{"5405222222222226", kMasterCard, true}, |
| 696 GetCreditCardTypeTestCase{"5454545454545454", kMasterCard, true}, | 700 GetCardNetworkTestCase{"5478050000000007", kMasterCard, true}, |
| 697 GetCreditCardTypeTestCase{"5555515555555551", kMasterCard, true}, | 701 GetCardNetworkTestCase{"5111005111051128", kMasterCard, true}, |
| 698 GetCreditCardTypeTestCase{"5405222222222226", kMasterCard, true}, | 702 GetCardNetworkTestCase{"5112345112345114", kMasterCard, true}, |
| 699 GetCreditCardTypeTestCase{"5478050000000007", kMasterCard, true}, | 703 GetCardNetworkTestCase{"5115915115915118", kMasterCard, true}, |
| 700 GetCreditCardTypeTestCase{"5111005111051128", kMasterCard, true}, | 704 GetCardNetworkTestCase{"6247130048162403", kUnionPay, true}, |
| 701 GetCreditCardTypeTestCase{"5112345112345114", kMasterCard, true}, | 705 GetCardNetworkTestCase{"6247130048162403", kUnionPay, true}, |
| 702 GetCreditCardTypeTestCase{"5115915115915118", kMasterCard, true}, | 706 GetCardNetworkTestCase{"622384452162063648", kUnionPay, true}, |
| 703 GetCreditCardTypeTestCase{"6247130048162403", kUnionPay, true}, | 707 GetCardNetworkTestCase{"2204883716636153", kMirCard, true}, |
| 704 GetCreditCardTypeTestCase{"6247130048162403", kUnionPay, true}, | 708 GetCardNetworkTestCase{"2200111234567898", kMirCard, true}, |
| 705 GetCreditCardTypeTestCase{"622384452162063648", kUnionPay, true}, | 709 GetCardNetworkTestCase{"2200481349288130", kMirCard, true}, |
| 706 GetCreditCardTypeTestCase{"2204883716636153", kMirCard, true}, | |
| 707 GetCreditCardTypeTestCase{"2200111234567898", kMirCard, true}, | |
| 708 GetCreditCardTypeTestCase{"2200481349288130", kMirCard, true}, | |
| 709 | 710 |
| 710 // Empty string | 711 // Empty string |
| 711 GetCreditCardTypeTestCase{std::string(), kGenericCard, false}, | 712 GetCardNetworkTestCase{std::string(), kGenericCard, false}, |
| 712 | 713 |
| 713 // Non-numeric | 714 // Non-numeric |
| 714 GetCreditCardTypeTestCase{"garbage", kGenericCard, false}, | 715 GetCardNetworkTestCase{"garbage", kGenericCard, false}, |
| 715 GetCreditCardTypeTestCase{"4garbage", kVisaCard, false}, | 716 GetCardNetworkTestCase{"4garbage", kVisaCard, false}, |
| 716 | 717 |
| 717 // Fails Luhn check. | 718 // Fails Luhn check. |
| 718 GetCreditCardTypeTestCase{"4111111111111112", kVisaCard, false}, | 719 GetCardNetworkTestCase{"4111111111111112", kVisaCard, false}, |
| 719 GetCreditCardTypeTestCase{"6247130048162413", kUnionPay, false}, | 720 GetCardNetworkTestCase{"6247130048162413", kUnionPay, false}, |
| 720 GetCreditCardTypeTestCase{"2204883716636154", kMirCard, false})); | 721 GetCardNetworkTestCase{"2204883716636154", kMirCard, false})); |
| 721 | 722 |
| 722 class GetCreditCardTypeTestBatch2 | 723 class GetCardNetworkTestBatch2 |
| 723 : public testing::TestWithParam<GetCreditCardTypeTestCase> {}; | 724 : public testing::TestWithParam<GetCardNetworkTestCase> {}; |
| 724 | 725 |
| 725 TEST_P(GetCreditCardTypeTestBatch2, GetCreditCardType) { | 726 TEST_P(GetCardNetworkTestBatch2, GetCardNetwork) { |
| 726 auto test_case = GetParam(); | 727 auto test_case = GetParam(); |
| 727 base::string16 card_number = ASCIIToUTF16(test_case.card_number); | 728 base::string16 card_number = ASCIIToUTF16(test_case.card_number); |
| 728 SCOPED_TRACE(card_number); | 729 SCOPED_TRACE(card_number); |
| 729 EXPECT_EQ(test_case.type, CreditCard::GetCreditCardType(card_number)); | 730 EXPECT_EQ(test_case.issuer_network, CreditCard::GetCardNetwork(card_number)); |
| 730 EXPECT_EQ(test_case.is_valid, IsValidCreditCardNumber(card_number)); | 731 EXPECT_EQ(test_case.is_valid, IsValidCreditCardNumber(card_number)); |
| 731 } | 732 } |
| 732 | 733 |
| 733 INSTANTIATE_TEST_CASE_P( | 734 INSTANTIATE_TEST_CASE_P( |
| 734 CreditCardTest, | 735 CreditCardTest, |
| 735 GetCreditCardTypeTestBatch2, | 736 GetCardNetworkTestBatch2, |
| 736 testing::Values( | 737 testing::Values( |
| 737 // Invalid length. | 738 // Invalid length. |
| 738 GetCreditCardTypeTestCase{"3434343434343434", kAmericanExpressCard, | 739 GetCardNetworkTestCase{"3434343434343434", kAmericanExpressCard, false}, |
| 739 false}, | 740 GetCardNetworkTestCase{"411111111111116", kVisaCard, false}, |
| 740 GetCreditCardTypeTestCase{"411111111111116", kVisaCard, false}, | 741 GetCardNetworkTestCase{"220011123456783", kMirCard, false}, |
| 741 GetCreditCardTypeTestCase{"220011123456783", kMirCard, false}, | |
| 742 | 742 |
| 743 // Issuer Identification Numbers (IINs) that Chrome recognizes. | 743 // Issuer Identification Numbers (IINs) that Chrome recognizes. |
| 744 GetCreditCardTypeTestCase{"4", kVisaCard, false}, | 744 GetCardNetworkTestCase{"4", kVisaCard, false}, |
| 745 GetCreditCardTypeTestCase{"22", kMirCard, false}, | 745 GetCardNetworkTestCase{"22", kMirCard, false}, |
| 746 GetCreditCardTypeTestCase{"34", kAmericanExpressCard, false}, | 746 GetCardNetworkTestCase{"34", kAmericanExpressCard, false}, |
| 747 GetCreditCardTypeTestCase{"37", kAmericanExpressCard, false}, | 747 GetCardNetworkTestCase{"37", kAmericanExpressCard, false}, |
| 748 GetCreditCardTypeTestCase{"300", kDinersCard, false}, | 748 GetCardNetworkTestCase{"300", kDinersCard, false}, |
| 749 GetCreditCardTypeTestCase{"301", kDinersCard, false}, | 749 GetCardNetworkTestCase{"301", kDinersCard, false}, |
| 750 GetCreditCardTypeTestCase{"302", kDinersCard, false}, | 750 GetCardNetworkTestCase{"302", kDinersCard, false}, |
| 751 GetCreditCardTypeTestCase{"303", kDinersCard, false}, | 751 GetCardNetworkTestCase{"303", kDinersCard, false}, |
| 752 GetCreditCardTypeTestCase{"304", kDinersCard, false}, | 752 GetCardNetworkTestCase{"304", kDinersCard, false}, |
| 753 GetCreditCardTypeTestCase{"305", kDinersCard, false}, | 753 GetCardNetworkTestCase{"305", kDinersCard, false}, |
| 754 GetCreditCardTypeTestCase{"3095", kDinersCard, false}, | 754 GetCardNetworkTestCase{"3095", kDinersCard, false}, |
| 755 GetCreditCardTypeTestCase{"36", kDinersCard, false}, | 755 GetCardNetworkTestCase{"36", kDinersCard, false}, |
| 756 GetCreditCardTypeTestCase{"38", kDinersCard, false}, | 756 GetCardNetworkTestCase{"38", kDinersCard, false}, |
| 757 GetCreditCardTypeTestCase{"39", kDinersCard, false}, | 757 GetCardNetworkTestCase{"39", kDinersCard, false}, |
| 758 GetCreditCardTypeTestCase{"6011", kDiscoverCard, false}, | 758 GetCardNetworkTestCase{"6011", kDiscoverCard, false}, |
| 759 GetCreditCardTypeTestCase{"644", kDiscoverCard, false}, | 759 GetCardNetworkTestCase{"644", kDiscoverCard, false}, |
| 760 GetCreditCardTypeTestCase{"645", kDiscoverCard, false}, | 760 GetCardNetworkTestCase{"645", kDiscoverCard, false}, |
| 761 GetCreditCardTypeTestCase{"646", kDiscoverCard, false}, | 761 GetCardNetworkTestCase{"646", kDiscoverCard, false}, |
| 762 GetCreditCardTypeTestCase{"647", kDiscoverCard, false}, | 762 GetCardNetworkTestCase{"647", kDiscoverCard, false}, |
| 763 GetCreditCardTypeTestCase{"648", kDiscoverCard, false}, | 763 GetCardNetworkTestCase{"648", kDiscoverCard, false}, |
| 764 GetCreditCardTypeTestCase{"649", kDiscoverCard, false}, | 764 GetCardNetworkTestCase{"649", kDiscoverCard, false}, |
| 765 GetCreditCardTypeTestCase{"65", kDiscoverCard, false}, | 765 GetCardNetworkTestCase{"65", kDiscoverCard, false}, |
| 766 GetCreditCardTypeTestCase{"3528", kJCBCard, false}, | 766 GetCardNetworkTestCase{"3528", kJCBCard, false}, |
| 767 GetCreditCardTypeTestCase{"3531", kJCBCard, false}, | 767 GetCardNetworkTestCase{"3531", kJCBCard, false}, |
| 768 GetCreditCardTypeTestCase{"3589", kJCBCard, false}, | 768 GetCardNetworkTestCase{"3589", kJCBCard, false}, |
| 769 GetCreditCardTypeTestCase{"51", kMasterCard, false}, | 769 GetCardNetworkTestCase{"51", kMasterCard, false}, |
| 770 GetCreditCardTypeTestCase{"52", kMasterCard, false}, | 770 GetCardNetworkTestCase{"52", kMasterCard, false}, |
| 771 GetCreditCardTypeTestCase{"53", kMasterCard, false}, | 771 GetCardNetworkTestCase{"53", kMasterCard, false}, |
| 772 GetCreditCardTypeTestCase{"54", kMasterCard, false}, | 772 GetCardNetworkTestCase{"54", kMasterCard, false}, |
| 773 GetCreditCardTypeTestCase{"55", kMasterCard, false}, | 773 GetCardNetworkTestCase{"55", kMasterCard, false}, |
| 774 GetCreditCardTypeTestCase{"62", kUnionPay, false}, | 774 GetCardNetworkTestCase{"62", kUnionPay, false}, |
| 775 | 775 |
| 776 // Not enough data to determine an IIN uniquely. | 776 // Not enough data to determine an IIN uniquely. |
| 777 GetCreditCardTypeTestCase{"2", kGenericCard, false}, | 777 GetCardNetworkTestCase{"2", kGenericCard, false}, |
| 778 GetCreditCardTypeTestCase{"3", kGenericCard, false}, | 778 GetCardNetworkTestCase{"3", kGenericCard, false}, |
| 779 GetCreditCardTypeTestCase{"30", kGenericCard, false}, | 779 GetCardNetworkTestCase{"30", kGenericCard, false}, |
| 780 GetCreditCardTypeTestCase{"309", kGenericCard, false}, | 780 GetCardNetworkTestCase{"309", kGenericCard, false}, |
| 781 GetCreditCardTypeTestCase{"35", kGenericCard, false}, | 781 GetCardNetworkTestCase{"35", kGenericCard, false}, |
| 782 GetCreditCardTypeTestCase{"5", kGenericCard, false}, | 782 GetCardNetworkTestCase{"5", kGenericCard, false}, |
| 783 GetCreditCardTypeTestCase{"6", kGenericCard, false}, | 783 GetCardNetworkTestCase{"6", kGenericCard, false}, |
| 784 GetCreditCardTypeTestCase{"60", kGenericCard, false}, | 784 GetCardNetworkTestCase{"60", kGenericCard, false}, |
| 785 GetCreditCardTypeTestCase{"601", kGenericCard, false}, | 785 GetCardNetworkTestCase{"601", kGenericCard, false}, |
| 786 GetCreditCardTypeTestCase{"64", kGenericCard, false})); | 786 GetCardNetworkTestCase{"64", kGenericCard, false})); |
| 787 | 787 |
| 788 class GetCreditCardTypeTestBatch3 | 788 class GetCardNetworkTestBatch3 |
| 789 : public testing::TestWithParam<GetCreditCardTypeTestCase> {}; | 789 : public testing::TestWithParam<GetCardNetworkTestCase> {}; |
| 790 | 790 |
| 791 TEST_P(GetCreditCardTypeTestBatch3, GetCreditCardType) { | 791 TEST_P(GetCardNetworkTestBatch3, GetCardNetwork) { |
| 792 auto test_case = GetParam(); | 792 auto test_case = GetParam(); |
| 793 base::string16 card_number = ASCIIToUTF16(test_case.card_number); | 793 base::string16 card_number = ASCIIToUTF16(test_case.card_number); |
| 794 SCOPED_TRACE(card_number); | 794 SCOPED_TRACE(card_number); |
| 795 EXPECT_EQ(test_case.type, CreditCard::GetCreditCardType(card_number)); | 795 EXPECT_EQ(test_case.issuer_network, CreditCard::GetCardNetwork(card_number)); |
| 796 EXPECT_EQ(test_case.is_valid, IsValidCreditCardNumber(card_number)); | 796 EXPECT_EQ(test_case.is_valid, IsValidCreditCardNumber(card_number)); |
| 797 } | 797 } |
| 798 | 798 |
| 799 INSTANTIATE_TEST_CASE_P( | 799 INSTANTIATE_TEST_CASE_P( |
| 800 CreditCardTest, | 800 CreditCardTest, |
| 801 GetCreditCardTypeTestBatch3, | 801 GetCardNetworkTestBatch3, |
| 802 testing::Values( | 802 testing::Values( |
| 803 // Unknown IINs. | 803 // Unknown IINs. |
| 804 GetCreditCardTypeTestCase{"0", kGenericCard, false}, | 804 GetCardNetworkTestCase{"0", kGenericCard, false}, |
| 805 GetCreditCardTypeTestCase{"1", kGenericCard, false}, | 805 GetCardNetworkTestCase{"1", kGenericCard, false}, |
| 806 GetCreditCardTypeTestCase{"306", kGenericCard, false}, | 806 GetCardNetworkTestCase{"306", kGenericCard, false}, |
| 807 GetCreditCardTypeTestCase{"307", kGenericCard, false}, | 807 GetCardNetworkTestCase{"307", kGenericCard, false}, |
| 808 GetCreditCardTypeTestCase{"308", kGenericCard, false}, | 808 GetCardNetworkTestCase{"308", kGenericCard, false}, |
| 809 GetCreditCardTypeTestCase{"3091", kGenericCard, false}, | 809 GetCardNetworkTestCase{"3091", kGenericCard, false}, |
| 810 GetCreditCardTypeTestCase{"3094", kGenericCard, false}, | 810 GetCardNetworkTestCase{"3094", kGenericCard, false}, |
| 811 GetCreditCardTypeTestCase{"3096", kGenericCard, false}, | 811 GetCardNetworkTestCase{"3096", kGenericCard, false}, |
| 812 GetCreditCardTypeTestCase{"31", kGenericCard, false}, | 812 GetCardNetworkTestCase{"31", kGenericCard, false}, |
| 813 GetCreditCardTypeTestCase{"32", kGenericCard, false}, | 813 GetCardNetworkTestCase{"32", kGenericCard, false}, |
| 814 GetCreditCardTypeTestCase{"33", kGenericCard, false}, | 814 GetCardNetworkTestCase{"33", kGenericCard, false}, |
| 815 GetCreditCardTypeTestCase{"351", kGenericCard, false}, | 815 GetCardNetworkTestCase{"351", kGenericCard, false}, |
| 816 GetCreditCardTypeTestCase{"3527", kGenericCard, false}, | 816 GetCardNetworkTestCase{"3527", kGenericCard, false}, |
| 817 GetCreditCardTypeTestCase{"359", kGenericCard, false}, | 817 GetCardNetworkTestCase{"359", kGenericCard, false}, |
| 818 GetCreditCardTypeTestCase{"50", kGenericCard, false}, | 818 GetCardNetworkTestCase{"50", kGenericCard, false}, |
| 819 GetCreditCardTypeTestCase{"56", kGenericCard, false}, | 819 GetCardNetworkTestCase{"56", kGenericCard, false}, |
| 820 GetCreditCardTypeTestCase{"57", kGenericCard, false}, | 820 GetCardNetworkTestCase{"57", kGenericCard, false}, |
| 821 GetCreditCardTypeTestCase{"58", kGenericCard, false}, | 821 GetCardNetworkTestCase{"58", kGenericCard, false}, |
| 822 GetCreditCardTypeTestCase{"59", kGenericCard, false}, | 822 GetCardNetworkTestCase{"59", kGenericCard, false}, |
| 823 GetCreditCardTypeTestCase{"600", kGenericCard, false}, | 823 GetCardNetworkTestCase{"600", kGenericCard, false}, |
| 824 GetCreditCardTypeTestCase{"602", kGenericCard, false}, | 824 GetCardNetworkTestCase{"602", kGenericCard, false}, |
| 825 GetCreditCardTypeTestCase{"603", kGenericCard, false}, | 825 GetCardNetworkTestCase{"603", kGenericCard, false}, |
| 826 GetCreditCardTypeTestCase{"604", kGenericCard, false}, | 826 GetCardNetworkTestCase{"604", kGenericCard, false}, |
| 827 GetCreditCardTypeTestCase{"605", kGenericCard, false}, | 827 GetCardNetworkTestCase{"605", kGenericCard, false}, |
| 828 GetCreditCardTypeTestCase{"606", kGenericCard, false}, | 828 GetCardNetworkTestCase{"606", kGenericCard, false}, |
| 829 GetCreditCardTypeTestCase{"607", kGenericCard, false}, | 829 GetCardNetworkTestCase{"607", kGenericCard, false}, |
| 830 GetCreditCardTypeTestCase{"608", kGenericCard, false}, | 830 GetCardNetworkTestCase{"608", kGenericCard, false}, |
| 831 GetCreditCardTypeTestCase{"609", kGenericCard, false}, | 831 GetCardNetworkTestCase{"609", kGenericCard, false}, |
| 832 GetCreditCardTypeTestCase{"61", kGenericCard, false}, | 832 GetCardNetworkTestCase{"61", kGenericCard, false}, |
| 833 GetCreditCardTypeTestCase{"63", kGenericCard, false}, | 833 GetCardNetworkTestCase{"63", kGenericCard, false}, |
| 834 GetCreditCardTypeTestCase{"640", kGenericCard, false}, | 834 GetCardNetworkTestCase{"640", kGenericCard, false}, |
| 835 GetCreditCardTypeTestCase{"641", kGenericCard, false}, | 835 GetCardNetworkTestCase{"641", kGenericCard, false}, |
| 836 GetCreditCardTypeTestCase{"642", kGenericCard, false}, | 836 GetCardNetworkTestCase{"642", kGenericCard, false}, |
| 837 GetCreditCardTypeTestCase{"643", kGenericCard, false}, | 837 GetCardNetworkTestCase{"643", kGenericCard, false}, |
| 838 GetCreditCardTypeTestCase{"66", kGenericCard, false}, | 838 GetCardNetworkTestCase{"66", kGenericCard, false}, |
| 839 GetCreditCardTypeTestCase{"67", kGenericCard, false}, | 839 GetCardNetworkTestCase{"67", kGenericCard, false}, |
| 840 GetCreditCardTypeTestCase{"68", kGenericCard, false}, | 840 GetCardNetworkTestCase{"68", kGenericCard, false}, |
| 841 GetCreditCardTypeTestCase{"69", kGenericCard, false}, | 841 GetCardNetworkTestCase{"69", kGenericCard, false}, |
| 842 GetCreditCardTypeTestCase{"7", kGenericCard, false}, | 842 GetCardNetworkTestCase{"7", kGenericCard, false}, |
| 843 GetCreditCardTypeTestCase{"8", kGenericCard, false}, | 843 GetCardNetworkTestCase{"8", kGenericCard, false}, |
| 844 GetCreditCardTypeTestCase{"9", kGenericCard, false}, | 844 GetCardNetworkTestCase{"9", kGenericCard, false}, |
| 845 | 845 |
| 846 // Oddball case: Unknown issuer, but valid Luhn check and plausible | 846 // Oddball case: Unknown issuer, but valid Luhn check and plausible |
| 847 // length. | 847 // length. |
| 848 GetCreditCardTypeTestCase{"7000700070007000", kGenericCard, true})); | 848 GetCardNetworkTestCase{"7000700070007000", kGenericCard, true})); |
| 849 | 849 |
| 850 TEST(CreditCardTest, LastFourDigits) { | 850 TEST(CreditCardTest, LastFourDigits) { |
| 851 CreditCard card(base::GenerateGUID(), "https://www.example.com/"); | 851 CreditCard card(base::GenerateGUID(), "https://www.example.com/"); |
| 852 ASSERT_EQ(base::string16(), card.LastFourDigits()); | 852 ASSERT_EQ(base::string16(), card.LastFourDigits()); |
| 853 | 853 |
| 854 test::SetCreditCardInfo(&card, "Baby Face Nelson", | 854 test::SetCreditCardInfo(&card, "Baby Face Nelson", |
| 855 "5212341234123489", "01", "2010"); | 855 "5212341234123489", "01", "2010"); |
| 856 ASSERT_EQ(base::ASCIIToUTF16("3489"), card.LastFourDigits()); | 856 ASSERT_EQ(base::ASCIIToUTF16("3489"), card.LastFourDigits()); |
| 857 | 857 |
| 858 card.SetRawInfo(CREDIT_CARD_NUMBER, ASCIIToUTF16("3489")); | 858 card.SetRawInfo(CREDIT_CARD_NUMBER, ASCIIToUTF16("3489")); |
| (...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1068 credit_card0.GetLastUsedDateForDisplay(test_case.app_locale)); | 1068 credit_card0.GetLastUsedDateForDisplay(test_case.app_locale)); |
| 1069 EXPECT_EQ(test_case.last_used_date, | 1069 EXPECT_EQ(test_case.last_used_date, |
| 1070 credit_card1.GetLastUsedDateForDisplay(test_case.app_locale)); | 1070 credit_card1.GetLastUsedDateForDisplay(test_case.app_locale)); |
| 1071 EXPECT_EQ(test_case.last_used_year_ago, | 1071 EXPECT_EQ(test_case.last_used_year_ago, |
| 1072 credit_card2.GetLastUsedDateForDisplay(test_case.app_locale)); | 1072 credit_card2.GetLastUsedDateForDisplay(test_case.app_locale)); |
| 1073 variation_params_.ClearAllVariationParams(); | 1073 variation_params_.ClearAllVariationParams(); |
| 1074 } | 1074 } |
| 1075 } | 1075 } |
| 1076 | 1076 |
| 1077 } // namespace autofill | 1077 } // namespace autofill |
| OLD | NEW |