Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(281)

Side by Side Diff: components/autofill/core/browser/credit_card_unittest.cc

Issue 2849523003: Add billing address as a mandatory field of Payments credit cards. (Closed)
Patch Set: Components Unittests fix Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 TEST(CreditCardTest, PreviewSummaryAndNetworkAndLastFourDigitsStrings) { 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.NetworkAndLastFourDigits(); 81 base::string16 obfuscated0 = credit_card0.NetworkAndLastFourDigits();
82 EXPECT_EQ(ASCIIToUTF16(std::string("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.NetworkAndLastFourDigits(); 89 base::string16 obfuscated00 = credit_card00.NetworkAndLastFourDigits();
90 EXPECT_EQ(ASCIIToUTF16(std::string("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 "1");
95 base::string16 summary1 = credit_card1.Label(); 96 base::string16 summary1 = credit_card1.Label();
96 EXPECT_EQ(base::string16(ASCIIToUTF16("John Dillinger")), summary1); 97 EXPECT_EQ(base::string16(ASCIIToUTF16("John Dillinger")), summary1);
97 base::string16 obfuscated1 = credit_card1.NetworkAndLastFourDigits(); 98 base::string16 obfuscated1 = credit_card1.NetworkAndLastFourDigits();
98 EXPECT_EQ(ASCIIToUTF16(std::string("Card")), obfuscated1); 99 EXPECT_EQ(ASCIIToUTF16(std::string("Card")), obfuscated1);
99 100
100 // Case 2: No month. 101 // Case 2: No month.
101 CreditCard credit_card2(base::GenerateGUID(), "https://www.example.com/"); 102 CreditCard credit_card2(base::GenerateGUID(), "https://www.example.com/");
102 test::SetCreditCardInfo( 103 test::SetCreditCardInfo(&credit_card2, "John Dillinger",
103 &credit_card2, "John Dillinger", "5105 1051 0510 5100", "", "2010"); 104 "5105 1051 0510 5100", "", "2010", "1");
104 base::string16 summary2 = credit_card2.Label(); 105 base::string16 summary2 = credit_card2.Label();
105 EXPECT_EQ( 106 EXPECT_EQ(
106 UTF8ToUTF16(std::string("MasterCard") + kUTF8MidlineEllipsis + "5100"), 107 UTF8ToUTF16(std::string("MasterCard") + kUTF8MidlineEllipsis + "5100"),
107 summary2); 108 summary2);
108 base::string16 obfuscated2 = credit_card2.NetworkAndLastFourDigits(); 109 base::string16 obfuscated2 = credit_card2.NetworkAndLastFourDigits();
109 EXPECT_EQ( 110 EXPECT_EQ(
110 UTF8ToUTF16(std::string("MasterCard") + kUTF8MidlineEllipsis + "5100"), 111 UTF8ToUTF16(std::string("MasterCard") + kUTF8MidlineEllipsis + "5100"),
111 obfuscated2); 112 obfuscated2);
112 113
113 // Case 3: No year. 114 // Case 3: No year.
114 CreditCard credit_card3(base::GenerateGUID(), "https://www.example.com/"); 115 CreditCard credit_card3(base::GenerateGUID(), "https://www.example.com/");
115 test::SetCreditCardInfo( 116 test::SetCreditCardInfo(&credit_card3, "John Dillinger",
116 &credit_card3, "John Dillinger", "5105 1051 0510 5100", "01", ""); 117 "5105 1051 0510 5100", "01", "", "1");
117 base::string16 summary3 = credit_card3.Label(); 118 base::string16 summary3 = credit_card3.Label();
118 EXPECT_EQ( 119 EXPECT_EQ(
119 UTF8ToUTF16(std::string("MasterCard") + kUTF8MidlineEllipsis + "5100"), 120 UTF8ToUTF16(std::string("MasterCard") + kUTF8MidlineEllipsis + "5100"),
120 summary3); 121 summary3);
121 base::string16 obfuscated3 = credit_card3.NetworkAndLastFourDigits(); 122 base::string16 obfuscated3 = credit_card3.NetworkAndLastFourDigits();
122 EXPECT_EQ( 123 EXPECT_EQ(
123 UTF8ToUTF16(std::string("MasterCard") + kUTF8MidlineEllipsis + "5100"), 124 UTF8ToUTF16(std::string("MasterCard") + kUTF8MidlineEllipsis + "5100"),
124 obfuscated3); 125 obfuscated3);
125 126
126 // Case 4: Have everything. 127 // Case 4: Have everything.
127 CreditCard credit_card4(base::GenerateGUID(), "https://www.example.com/"); 128 CreditCard credit_card4(base::GenerateGUID(), "https://www.example.com/");
128 test::SetCreditCardInfo( 129 test::SetCreditCardInfo(&credit_card4, "John Dillinger",
129 &credit_card4, "John Dillinger", "5105 1051 0510 5100", "01", "2010"); 130 "5105 1051 0510 5100", "01", "2010", "1");
130 base::string16 summary4 = credit_card4.Label(); 131 base::string16 summary4 = credit_card4.Label();
131 EXPECT_EQ(UTF8ToUTF16(std::string("MasterCard") + kUTF8MidlineEllipsis + 132 EXPECT_EQ(UTF8ToUTF16(std::string("MasterCard") + kUTF8MidlineEllipsis +
132 "5100, 01/2010"), 133 "5100, 01/2010"),
133 summary4); 134 summary4);
134 base::string16 obfuscated4 = credit_card4.NetworkAndLastFourDigits(); 135 base::string16 obfuscated4 = credit_card4.NetworkAndLastFourDigits();
135 EXPECT_EQ( 136 EXPECT_EQ(
136 UTF8ToUTF16(std::string("MasterCard") + kUTF8MidlineEllipsis + "5100"), 137 UTF8ToUTF16(std::string("MasterCard") + kUTF8MidlineEllipsis + "5100"),
137 obfuscated4); 138 obfuscated4);
138 139
139 // Case 5: Very long credit card 140 // Case 5: Very long credit card
140 CreditCard credit_card5(base::GenerateGUID(), "https://www.example.com/"); 141 CreditCard credit_card5(base::GenerateGUID(), "https://www.example.com/");
141 test::SetCreditCardInfo( 142 test::SetCreditCardInfo(
142 &credit_card5, 143 &credit_card5, "John Dillinger",
143 "John Dillinger", 144 "0123456789 0123456789 0123456789 5105 1051 0510 5100", "01", "2010",
144 "0123456789 0123456789 0123456789 5105 1051 0510 5100", "01", "2010"); 145 "1");
145 base::string16 summary5 = credit_card5.Label(); 146 base::string16 summary5 = credit_card5.Label();
146 EXPECT_EQ( 147 EXPECT_EQ(
147 UTF8ToUTF16(std::string("Card") + kUTF8MidlineEllipsis + "5100, 01/2010"), 148 UTF8ToUTF16(std::string("Card") + kUTF8MidlineEllipsis + "5100, 01/2010"),
148 summary5); 149 summary5);
149 base::string16 obfuscated5 = credit_card5.NetworkAndLastFourDigits(); 150 base::string16 obfuscated5 = credit_card5.NetworkAndLastFourDigits();
150 EXPECT_EQ(UTF8ToUTF16(std::string("Card") + kUTF8MidlineEllipsis + "5100"), 151 EXPECT_EQ(UTF8ToUTF16(std::string("Card") + kUTF8MidlineEllipsis + "5100"),
151 obfuscated5); 152 obfuscated5);
152 } 153 }
153 154
154 TEST(CreditCardTest, AssignmentOperator) { 155 TEST(CreditCardTest, AssignmentOperator) {
155 CreditCard a(base::GenerateGUID(), "some origin"); 156 CreditCard a(base::GenerateGUID(), "some origin");
156 test::SetCreditCardInfo(&a, "John Dillinger", "123456789012", "01", "2010"); 157 test::SetCreditCardInfo(&a, "John Dillinger", "123456789012", "01", "2010",
158 "1");
157 159
158 // Result of assignment should be logically equal to the original profile. 160 // Result of assignment should be logically equal to the original profile.
159 CreditCard b(base::GenerateGUID(), "some other origin"); 161 CreditCard b(base::GenerateGUID(), "some other origin");
160 b = a; 162 b = a;
161 EXPECT_TRUE(a == b); 163 EXPECT_TRUE(a == b);
162 164
163 // Assignment to self should not change the profile value. 165 // Assignment to self should not change the profile value.
164 a = a; 166 a = a;
165 EXPECT_TRUE(a == b); 167 EXPECT_TRUE(a == b);
166 } 168 }
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 246
245 // Invalid values. 247 // Invalid values.
246 SetExpirationDateFromStringTestCase{"13/2016", 0, 2016}, 248 SetExpirationDateFromStringTestCase{"13/2016", 0, 2016},
247 SetExpirationDateFromStringTestCase{"16/13", 0, 2013}, 249 SetExpirationDateFromStringTestCase{"16/13", 0, 2013},
248 SetExpirationDateFromStringTestCase{"May-2015", 0, 0}, 250 SetExpirationDateFromStringTestCase{"May-2015", 0, 0},
249 SetExpirationDateFromStringTestCase{"05-/2045", 0, 0}, 251 SetExpirationDateFromStringTestCase{"05-/2045", 0, 0},
250 SetExpirationDateFromStringTestCase{"05_2045", 0, 0})); 252 SetExpirationDateFromStringTestCase{"05_2045", 0, 0}));
251 253
252 TEST(CreditCardTest, Copy) { 254 TEST(CreditCardTest, Copy) {
253 CreditCard a(base::GenerateGUID(), "https://www.example.com"); 255 CreditCard a(base::GenerateGUID(), "https://www.example.com");
254 test::SetCreditCardInfo(&a, "John Dillinger", "123456789012", "01", "2010"); 256 test::SetCreditCardInfo(&a, "John Dillinger", "123456789012", "01", "2010",
257 base::GenerateGUID());
255 258
256 // Clone should be logically equal to the original. 259 // Clone should be logically equal to the original.
257 CreditCard b(a); 260 CreditCard b(a);
258 EXPECT_TRUE(a == b); 261 EXPECT_TRUE(a == b);
259 } 262 }
260 263
261 struct IsLocalDuplicateOfServerCardTestCase { 264 struct IsLocalDuplicateOfServerCardTestCase {
262 CreditCard::RecordType first_card_record_type; 265 CreditCard::RecordType first_card_record_type;
263 const char* first_card_name; 266 const char* first_card_name;
264 const char* first_card_number; 267 const char* first_card_number;
265 const char* first_card_exp_mo; 268 const char* first_card_exp_mo;
266 const char* first_card_exp_yr; 269 const char* first_card_exp_yr;
270 const char* first_billing_address_id;
267 271
268 CreditCard::RecordType second_card_record_type; 272 CreditCard::RecordType second_card_record_type;
269 const char* second_card_name; 273 const char* second_card_name;
270 const char* second_card_number; 274 const char* second_card_number;
271 const char* second_card_exp_mo; 275 const char* second_card_exp_mo;
272 const char* second_card_exp_yr; 276 const char* second_card_exp_yr;
277 const char* second_billing_address_id;
273 const char* second_card_issuer_network; 278 const char* second_card_issuer_network;
274 279
275 bool is_local_duplicate; 280 bool is_local_duplicate;
276 }; 281 };
277 282
278 class IsLocalDuplicateOfServerCardTest 283 class IsLocalDuplicateOfServerCardTest
279 : public testing::TestWithParam<IsLocalDuplicateOfServerCardTestCase> {}; 284 : public testing::TestWithParam<IsLocalDuplicateOfServerCardTestCase> {};
280 285
281 TEST_P(IsLocalDuplicateOfServerCardTest, IsLocalDuplicateOfServerCard) { 286 TEST_P(IsLocalDuplicateOfServerCardTest, IsLocalDuplicateOfServerCard) {
282 auto test_case = GetParam(); 287 auto test_case = GetParam();
283 CreditCard a(base::GenerateGUID(), std::string()); 288 CreditCard a(base::GenerateGUID(), std::string());
284 a.set_record_type(test_case.first_card_record_type); 289 a.set_record_type(test_case.first_card_record_type);
285 test::SetCreditCardInfo( 290 test::SetCreditCardInfo(
286 &a, test_case.first_card_name, test_case.first_card_number, 291 &a, test_case.first_card_name, test_case.first_card_number,
287 test_case.first_card_exp_mo, test_case.first_card_exp_yr); 292 test_case.first_card_exp_mo, test_case.first_card_exp_yr,
293 test_case.first_billing_address_id);
288 294
289 CreditCard b(base::GenerateGUID(), std::string()); 295 CreditCard b(base::GenerateGUID(), std::string());
290 b.set_record_type(test_case.second_card_record_type); 296 b.set_record_type(test_case.second_card_record_type);
291 test::SetCreditCardInfo( 297 test::SetCreditCardInfo(
292 &b, test_case.second_card_name, test_case.second_card_number, 298 &b, test_case.second_card_name, test_case.second_card_number,
293 test_case.second_card_exp_mo, test_case.second_card_exp_yr); 299 test_case.second_card_exp_mo, test_case.second_card_exp_yr,
300 test_case.second_billing_address_id);
294 301
295 if (test_case.second_card_record_type == CreditCard::MASKED_SERVER_CARD) 302 if (test_case.second_card_record_type == CreditCard::MASKED_SERVER_CARD)
296 b.SetNetworkForMaskedCard(test_case.second_card_issuer_network); 303 b.SetNetworkForMaskedCard(test_case.second_card_issuer_network);
297 304
298 EXPECT_EQ(test_case.is_local_duplicate, a.IsLocalDuplicateOfServerCard(b)) 305 EXPECT_EQ(test_case.is_local_duplicate, a.IsLocalDuplicateOfServerCard(b))
299 << " when comparing cards " << a.Label() << " and " << b.Label(); 306 << " when comparing cards " << a.Label() << " and " << b.Label();
300 } 307 }
301 308
302 INSTANTIATE_TEST_CASE_P( 309 INSTANTIATE_TEST_CASE_P(
303 CreditCardTest, 310 CreditCardTest,
304 IsLocalDuplicateOfServerCardTest, 311 IsLocalDuplicateOfServerCardTest,
305 testing::Values( 312 testing::Values(
306 IsLocalDuplicateOfServerCardTestCase{LOCAL_CARD, "", "", "", "", 313 IsLocalDuplicateOfServerCardTestCase{LOCAL_CARD, "", "", "", "", "",
307 LOCAL_CARD, "", "", "", "", 314 LOCAL_CARD, "", "", "", "", "",
308 nullptr, false}, 315 nullptr, false},
309 IsLocalDuplicateOfServerCardTestCase{LOCAL_CARD, "", "", "", "", 316 IsLocalDuplicateOfServerCardTestCase{LOCAL_CARD, "", "", "", "", "",
310 FULL_SERVER_CARD, "", "", "", "", 317 FULL_SERVER_CARD, "", "", "", "",
311 nullptr, true}, 318 "", nullptr, true},
312 IsLocalDuplicateOfServerCardTestCase{FULL_SERVER_CARD, "", "", "", "", 319 IsLocalDuplicateOfServerCardTestCase{FULL_SERVER_CARD, "", "", "", "",
313 FULL_SERVER_CARD, "", "", "", "", 320 "", FULL_SERVER_CARD, "", "", "",
314 nullptr, false}, 321 "", "", nullptr, false},
315 IsLocalDuplicateOfServerCardTestCase{ 322 IsLocalDuplicateOfServerCardTestCase{
316 LOCAL_CARD, "John Dillinger", "423456789012", "01", "2010", 323 LOCAL_CARD, "John Dillinger", "423456789012", "01", "2010", "1",
317 FULL_SERVER_CARD, "John Dillinger", "423456789012", "01", "2010", 324 FULL_SERVER_CARD, "John Dillinger", "423456789012", "01", "2010",
318 nullptr, true}, 325 "1", nullptr, true},
319 IsLocalDuplicateOfServerCardTestCase{ 326 IsLocalDuplicateOfServerCardTestCase{
320 LOCAL_CARD, "J Dillinger", "423456789012", "01", "2010", 327 LOCAL_CARD, "J Dillinger", "423456789012", "01", "2010", "1",
321 FULL_SERVER_CARD, "John Dillinger", "423456789012", "01", "2010", 328 FULL_SERVER_CARD, "John Dillinger", "423456789012", "01", "2010",
322 nullptr, false}, 329 "1", nullptr, false},
323 IsLocalDuplicateOfServerCardTestCase{ 330 IsLocalDuplicateOfServerCardTestCase{
324 LOCAL_CARD, "", "423456789012", "01", "2010", FULL_SERVER_CARD, 331 LOCAL_CARD, "", "423456789012", "01", "2010", "1", FULL_SERVER_CARD,
325 "John Dillinger", "423456789012", "01", "2010", nullptr, true}, 332 "John Dillinger", "423456789012", "01", "2010", "1", nullptr, true},
326 IsLocalDuplicateOfServerCardTestCase{ 333 IsLocalDuplicateOfServerCardTestCase{
327 LOCAL_CARD, "", "423456789012", "", "", FULL_SERVER_CARD, 334 LOCAL_CARD, "", "423456789012", "", "", "1", FULL_SERVER_CARD,
328 "John Dillinger", "423456789012", "01", "2010", nullptr, true}, 335 "John Dillinger", "423456789012", "01", "2010", "1", nullptr, true},
329 IsLocalDuplicateOfServerCardTestCase{ 336 IsLocalDuplicateOfServerCardTestCase{
330 LOCAL_CARD, "", "423456789012", "", "", MASKED_SERVER_CARD, 337 LOCAL_CARD, "", "423456789012", "", "", "1", MASKED_SERVER_CARD,
331 "John Dillinger", "9012", "01", "2010", kVisaCard, true}, 338 "John Dillinger", "9012", "01", "2010", "1", kVisaCard, true},
332 IsLocalDuplicateOfServerCardTestCase{ 339 IsLocalDuplicateOfServerCardTestCase{
333 LOCAL_CARD, "", "423456789012", "", "", MASKED_SERVER_CARD, 340 LOCAL_CARD, "", "423456789012", "", "", "1", MASKED_SERVER_CARD,
334 "John Dillinger", "9012", "01", "2010", kMasterCard, false}, 341 "John Dillinger", "9012", "01", "2010", "1", kMasterCard, false},
335 IsLocalDuplicateOfServerCardTestCase{ 342 IsLocalDuplicateOfServerCardTestCase{
336 LOCAL_CARD, "John Dillinger", "4234-5678-9012", "01", "2010", 343 LOCAL_CARD, "John Dillinger", "4234-5678-9012", "01", "2010", "1",
337 FULL_SERVER_CARD, "John Dillinger", "423456789012", "01", "2010", 344 FULL_SERVER_CARD, "John Dillinger", "423456789012", "01", "2010",
338 nullptr, true})); 345 "1", nullptr, true},
346 IsLocalDuplicateOfServerCardTestCase{
347 LOCAL_CARD, "John Dillinger", "4234-5678-9012", "01", "2010", "1",
348 FULL_SERVER_CARD, "John Dillinger", "423456789012", "01", "2010",
349 "2", nullptr, false}));
339 350
340 TEST(CreditCardTest, HasSameNumberAs) { 351 TEST(CreditCardTest, HasSameNumberAs) {
341 CreditCard a(base::GenerateGUID(), std::string()); 352 CreditCard a(base::GenerateGUID(), std::string());
342 CreditCard b(base::GenerateGUID(), std::string()); 353 CreditCard b(base::GenerateGUID(), std::string());
343 354
344 // Empty cards have the same empty number. 355 // Empty cards have the same empty number.
345 EXPECT_TRUE(a.HasSameNumberAs(b)); 356 EXPECT_TRUE(a.HasSameNumberAs(b));
346 EXPECT_TRUE(b.HasSameNumberAs(a)); 357 EXPECT_TRUE(b.HasSameNumberAs(a));
347 358
348 // Same number. 359 // Same number.
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
383 a.set_guid(base::GenerateGUID()); 394 a.set_guid(base::GenerateGUID());
384 b.set_guid(base::GenerateGUID()); 395 b.set_guid(base::GenerateGUID());
385 EXPECT_EQ(0, a.Compare(b)); 396 EXPECT_EQ(0, a.Compare(b));
386 397
387 // Origins don't count. 398 // Origins don't count.
388 a.set_origin("apple"); 399 a.set_origin("apple");
389 b.set_origin("banana"); 400 b.set_origin("banana");
390 EXPECT_EQ(0, a.Compare(b)); 401 EXPECT_EQ(0, a.Compare(b));
391 402
392 // Different values produce non-zero results. 403 // Different values produce non-zero results.
393 test::SetCreditCardInfo(&a, "Jimmy", NULL, NULL, NULL); 404 test::SetCreditCardInfo(&a, "Jimmy", NULL, NULL, NULL, "");
394 test::SetCreditCardInfo(&b, "Ringo", NULL, NULL, NULL); 405 test::SetCreditCardInfo(&b, "Ringo", NULL, NULL, NULL, "");
395 EXPECT_GT(0, a.Compare(b)); 406 EXPECT_GT(0, a.Compare(b));
396 EXPECT_LT(0, b.Compare(a)); 407 EXPECT_LT(0, b.Compare(a));
397 } 408 }
398 409
399 // This method is not compiled for iOS because these resources are not used and 410 // This method is not compiled for iOS because these resources are not used and
400 // should not be shipped. 411 // should not be shipped.
401 #if !defined(OS_IOS) 412 #if !defined(OS_IOS)
402 // Test we get the correct icon for each card type. 413 // Test we get the correct icon for each card type.
403 TEST(CreditCardTest, IconResourceId) { 414 TEST(CreditCardTest, IconResourceId) {
404 EXPECT_EQ(IDR_AUTOFILL_CC_AMEX, 415 EXPECT_EQ(IDR_AUTOFILL_CC_AMEX,
(...skipping 10 matching lines...) Expand all
415 CreditCard::IconResourceId(kMirCard)); 426 CreditCard::IconResourceId(kMirCard));
416 EXPECT_EQ(IDR_AUTOFILL_CC_UNIONPAY, 427 EXPECT_EQ(IDR_AUTOFILL_CC_UNIONPAY,
417 CreditCard::IconResourceId(kUnionPay)); 428 CreditCard::IconResourceId(kUnionPay));
418 EXPECT_EQ(IDR_AUTOFILL_CC_VISA, 429 EXPECT_EQ(IDR_AUTOFILL_CC_VISA,
419 CreditCard::IconResourceId(kVisaCard)); 430 CreditCard::IconResourceId(kVisaCard));
420 } 431 }
421 #endif // #if !defined(OS_IOS) 432 #endif // #if !defined(OS_IOS)
422 433
423 TEST(CreditCardTest, UpdateFromImportedCard) { 434 TEST(CreditCardTest, UpdateFromImportedCard) {
424 CreditCard original_card(base::GenerateGUID(), "https://www.example.com"); 435 CreditCard original_card(base::GenerateGUID(), "https://www.example.com");
425 test::SetCreditCardInfo( 436 test::SetCreditCardInfo(&original_card, "John Dillinger", "123456789012",
426 &original_card, "John Dillinger", "123456789012", "09", "2017"); 437 "09", "2017", "1");
427 438
428 CreditCard a = original_card; 439 CreditCard a = original_card;
429 440
430 // The new card has a different name, expiration date, and origin. 441 // The new card has a different name, expiration date, and origin.
431 CreditCard b = a; 442 CreditCard b = a;
432 b.set_guid(base::GenerateGUID()); 443 b.set_guid(base::GenerateGUID());
433 b.set_origin("https://www.example.org"); 444 b.set_origin("https://www.example.org");
434 b.SetRawInfo(CREDIT_CARD_NAME_FULL, ASCIIToUTF16("J. Dillinger")); 445 b.SetRawInfo(CREDIT_CARD_NAME_FULL, ASCIIToUTF16("J. Dillinger"));
435 b.SetRawInfo(CREDIT_CARD_EXP_MONTH, ASCIIToUTF16("08")); 446 b.SetRawInfo(CREDIT_CARD_EXP_MONTH, ASCIIToUTF16("08"));
436 b.SetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR, ASCIIToUTF16("2019")); 447 b.SetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR, ASCIIToUTF16("2019"));
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
571 SCOPED_TRACE(invalid_number); 582 SCOPED_TRACE(invalid_number);
572 card.SetRawInfo(CREDIT_CARD_NUMBER, ASCIIToUTF16(invalid_number)); 583 card.SetRawInfo(CREDIT_CARD_NUMBER, ASCIIToUTF16(invalid_number));
573 EXPECT_FALSE(card.IsValid()); 584 EXPECT_FALSE(card.IsValid());
574 } 585 }
575 } 586 }
576 587
577 // Verify that we preserve exactly what the user typed for credit card numbers. 588 // Verify that we preserve exactly what the user typed for credit card numbers.
578 TEST(CreditCardTest, SetRawInfoCreditCardNumber) { 589 TEST(CreditCardTest, SetRawInfoCreditCardNumber) {
579 CreditCard card(base::GenerateGUID(), "https://www.example.com/"); 590 CreditCard card(base::GenerateGUID(), "https://www.example.com/");
580 591
581 test::SetCreditCardInfo(&card, "Bob Dylan", 592 test::SetCreditCardInfo(&card, "Bob Dylan", "4321-5432-6543-xxxx", "07",
582 "4321-5432-6543-xxxx", "07", "2013"); 593 "2013", "1");
583 EXPECT_EQ(ASCIIToUTF16("4321-5432-6543-xxxx"), 594 EXPECT_EQ(ASCIIToUTF16("4321-5432-6543-xxxx"),
584 card.GetRawInfo(CREDIT_CARD_NUMBER)); 595 card.GetRawInfo(CREDIT_CARD_NUMBER));
585 } 596 }
586 597
587 // Verify that we can handle both numeric and named months. 598 // Verify that we can handle both numeric and named months.
588 TEST(CreditCardTest, SetExpirationMonth) { 599 TEST(CreditCardTest, SetExpirationMonth) {
589 CreditCard card(base::GenerateGUID(), "https://www.example.com/"); 600 CreditCard card(base::GenerateGUID(), "https://www.example.com/");
590 601
591 card.SetRawInfo(CREDIT_CARD_EXP_MONTH, ASCIIToUTF16("05")); 602 card.SetRawInfo(CREDIT_CARD_EXP_MONTH, ASCIIToUTF16("05"));
592 EXPECT_EQ(ASCIIToUTF16("05"), card.GetRawInfo(CREDIT_CARD_EXP_MONTH)); 603 EXPECT_EQ(ASCIIToUTF16("05"), card.GetRawInfo(CREDIT_CARD_EXP_MONTH));
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
844 GetCardNetworkTestCase{"9", kGenericCard, false}, 855 GetCardNetworkTestCase{"9", kGenericCard, false},
845 856
846 // Oddball case: Unknown issuer, but valid Luhn check and plausible 857 // Oddball case: Unknown issuer, but valid Luhn check and plausible
847 // length. 858 // length.
848 GetCardNetworkTestCase{"7000700070007000", kGenericCard, true})); 859 GetCardNetworkTestCase{"7000700070007000", kGenericCard, true}));
849 860
850 TEST(CreditCardTest, LastFourDigits) { 861 TEST(CreditCardTest, LastFourDigits) {
851 CreditCard card(base::GenerateGUID(), "https://www.example.com/"); 862 CreditCard card(base::GenerateGUID(), "https://www.example.com/");
852 ASSERT_EQ(base::string16(), card.LastFourDigits()); 863 ASSERT_EQ(base::string16(), card.LastFourDigits());
853 864
854 test::SetCreditCardInfo(&card, "Baby Face Nelson", 865 test::SetCreditCardInfo(&card, "Baby Face Nelson", "5212341234123489", "01",
855 "5212341234123489", "01", "2010"); 866 "2010", "1");
856 ASSERT_EQ(base::ASCIIToUTF16("3489"), card.LastFourDigits()); 867 ASSERT_EQ(base::ASCIIToUTF16("3489"), card.LastFourDigits());
857 868
858 card.SetRawInfo(CREDIT_CARD_NUMBER, ASCIIToUTF16("3489")); 869 card.SetRawInfo(CREDIT_CARD_NUMBER, ASCIIToUTF16("3489"));
859 ASSERT_EQ(base::ASCIIToUTF16("3489"), card.LastFourDigits()); 870 ASSERT_EQ(base::ASCIIToUTF16("3489"), card.LastFourDigits());
860 871
861 card.SetRawInfo(CREDIT_CARD_NUMBER, ASCIIToUTF16("489")); 872 card.SetRawInfo(CREDIT_CARD_NUMBER, ASCIIToUTF16("489"));
862 ASSERT_EQ(base::ASCIIToUTF16("489"), card.LastFourDigits()); 873 ASSERT_EQ(base::ASCIIToUTF16("489"), card.LastFourDigits());
863 } 874 }
864 875
865 // Verifies that a credit card should be updated. 876 // Verifies that a credit card should be updated.
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
1015 }; 1026 };
1016 base::Time kArbitraryTime; 1027 base::Time kArbitraryTime;
1017 EXPECT_TRUE( 1028 EXPECT_TRUE(
1018 base::Time::FromLocalExploded(kTestDateTimeExploded, &kArbitraryTime)); 1029 base::Time::FromLocalExploded(kTestDateTimeExploded, &kArbitraryTime));
1019 1030
1020 // Test for added to chrome/chromium. 1031 // Test for added to chrome/chromium.
1021 CreditCard credit_card0(base::GenerateGUID(), "https://www.example.com"); 1032 CreditCard credit_card0(base::GenerateGUID(), "https://www.example.com");
1022 credit_card0.set_use_count(1); 1033 credit_card0.set_use_count(1);
1023 credit_card0.set_use_date(kArbitraryTime - base::TimeDelta::FromDays(1)); 1034 credit_card0.set_use_date(kArbitraryTime - base::TimeDelta::FromDays(1));
1024 test::SetCreditCardInfo(&credit_card0, "John Dillinger", 1035 test::SetCreditCardInfo(&credit_card0, "John Dillinger",
1025 "423456789012" /* Visa */, "01", "2021"); 1036 "423456789012" /* Visa */, "01", "2021", "1");
1026 1037
1027 // Test for last used date. 1038 // Test for last used date.
1028 CreditCard credit_card1(base::GenerateGUID(), "https://www.example.com"); 1039 CreditCard credit_card1(base::GenerateGUID(), "https://www.example.com");
1029 test::SetCreditCardInfo(&credit_card1, "Clyde Barrow", 1040 test::SetCreditCardInfo(&credit_card1, "Clyde Barrow",
1030 "347666888555" /* American Express */, "04", "2021"); 1041 "347666888555" /* American Express */, "04", "2021",
1042 "1");
1031 credit_card1.set_use_count(10); 1043 credit_card1.set_use_count(10);
1032 credit_card1.set_use_date(kArbitraryTime - base::TimeDelta::FromDays(10)); 1044 credit_card1.set_use_date(kArbitraryTime - base::TimeDelta::FromDays(10));
1033 1045
1034 // Test for last used more than one year ago. 1046 // Test for last used more than one year ago.
1035 CreditCard credit_card2(base::GenerateGUID(), "https://www.example.com"); 1047 CreditCard credit_card2(base::GenerateGUID(), "https://www.example.com");
1036 credit_card2.set_use_count(5); 1048 credit_card2.set_use_count(5);
1037 credit_card2.set_use_date(kArbitraryTime - base::TimeDelta::FromDays(366)); 1049 credit_card2.set_use_date(kArbitraryTime - base::TimeDelta::FromDays(366));
1038 test::SetCreditCardInfo(&credit_card2, "Bonnie Parker", 1050 test::SetCreditCardInfo(&credit_card2, "Bonnie Parker",
1039 "518765432109" /* Mastercard */, "12", "2021"); 1051 "518765432109" /* Mastercard */, "12", "2021", "1");
1040 1052
1041 static const struct { 1053 static const struct {
1042 const char* show_expiration_date; 1054 const char* show_expiration_date;
1043 const std::string& app_locale; 1055 const std::string& app_locale;
1044 base::string16 added_to_autofill_date; 1056 base::string16 added_to_autofill_date;
1045 base::string16 last_used_date; 1057 base::string16 last_used_date;
1046 base::string16 last_used_year_ago; 1058 base::string16 last_used_year_ago;
1047 } kTestCases[] = { 1059 } kTestCases[] = {
1048 // only show last used date. 1060 // only show last used date.
1049 {"false", "en_US", ASCIIToUTF16("Added Dec 09"), 1061 {"false", "en_US", ASCIIToUTF16("Added Dec 09"),
(...skipping 18 matching lines...) Expand all
1068 credit_card0.GetLastUsedDateForDisplay(test_case.app_locale)); 1080 credit_card0.GetLastUsedDateForDisplay(test_case.app_locale));
1069 EXPECT_EQ(test_case.last_used_date, 1081 EXPECT_EQ(test_case.last_used_date,
1070 credit_card1.GetLastUsedDateForDisplay(test_case.app_locale)); 1082 credit_card1.GetLastUsedDateForDisplay(test_case.app_locale));
1071 EXPECT_EQ(test_case.last_used_year_ago, 1083 EXPECT_EQ(test_case.last_used_year_ago,
1072 credit_card2.GetLastUsedDateForDisplay(test_case.app_locale)); 1084 credit_card2.GetLastUsedDateForDisplay(test_case.app_locale));
1073 variation_params_.ClearAllVariationParams(); 1085 variation_params_.ClearAllVariationParams();
1074 } 1086 }
1075 } 1087 }
1076 1088
1077 } // namespace autofill 1089 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698