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 322 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
333 CreditCard a = original_card; | 333 CreditCard a = original_card; |
334 | 334 |
335 // The new card has a different name, expiration date, and origin. | 335 // The new card has a different name, expiration date, and origin. |
336 CreditCard b = a; | 336 CreditCard b = a; |
337 b.set_guid(base::GenerateGUID()); | 337 b.set_guid(base::GenerateGUID()); |
338 b.set_origin("https://www.example.org"); | 338 b.set_origin("https://www.example.org"); |
339 b.SetRawInfo(CREDIT_CARD_NAME_FULL, ASCIIToUTF16("J. Dillinger")); | 339 b.SetRawInfo(CREDIT_CARD_NAME_FULL, ASCIIToUTF16("J. Dillinger")); |
340 b.SetRawInfo(CREDIT_CARD_EXP_MONTH, ASCIIToUTF16("08")); | 340 b.SetRawInfo(CREDIT_CARD_EXP_MONTH, ASCIIToUTF16("08")); |
341 b.SetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR, ASCIIToUTF16("2019")); | 341 b.SetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR, ASCIIToUTF16("2019")); |
342 | 342 |
343 // |a| should be updated with the information from |b|. | |
343 EXPECT_TRUE(a.UpdateFromImportedCard(b, "en-US")); | 344 EXPECT_TRUE(a.UpdateFromImportedCard(b, "en-US")); |
344 EXPECT_EQ("https://www.example.org", a.origin()); | 345 EXPECT_EQ("https://www.example.org", a.origin()); |
345 EXPECT_EQ(ASCIIToUTF16("J. Dillinger"), a.GetRawInfo(CREDIT_CARD_NAME_FULL)); | 346 EXPECT_EQ(ASCIIToUTF16("J. Dillinger"), a.GetRawInfo(CREDIT_CARD_NAME_FULL)); |
346 EXPECT_EQ(ASCIIToUTF16("08"), a.GetRawInfo(CREDIT_CARD_EXP_MONTH)); | 347 EXPECT_EQ(ASCIIToUTF16("08"), a.GetRawInfo(CREDIT_CARD_EXP_MONTH)); |
347 EXPECT_EQ(ASCIIToUTF16("2019"), a.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR)); | 348 EXPECT_EQ(ASCIIToUTF16("2019"), a.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR)); |
348 | 349 |
349 // Try again, but with no name set for |b|. | 350 // Try again, but with no name set for |b|. |
351 // |a| should be updated with |b|'s expiration date and keep it's original | |
Mathieu
2016/04/26 20:06:19
*its
sebsg
2016/04/26 21:06:14
Done.
| |
352 // name. | |
350 a = original_card; | 353 a = original_card; |
351 b.SetRawInfo(CREDIT_CARD_NAME_FULL, base::string16()); | 354 b.SetRawInfo(CREDIT_CARD_NAME_FULL, base::string16()); |
352 | 355 |
353 EXPECT_TRUE(a.UpdateFromImportedCard(b, "en-US")); | 356 EXPECT_TRUE(a.UpdateFromImportedCard(b, "en-US")); |
354 EXPECT_EQ("https://www.example.org", a.origin()); | 357 EXPECT_EQ("https://www.example.org", a.origin()); |
355 EXPECT_EQ(ASCIIToUTF16("John Dillinger"), | 358 EXPECT_EQ(ASCIIToUTF16("John Dillinger"), |
356 a.GetRawInfo(CREDIT_CARD_NAME_FULL)); | 359 a.GetRawInfo(CREDIT_CARD_NAME_FULL)); |
357 EXPECT_EQ(ASCIIToUTF16("08"), a.GetRawInfo(CREDIT_CARD_EXP_MONTH)); | 360 EXPECT_EQ(ASCIIToUTF16("08"), a.GetRawInfo(CREDIT_CARD_EXP_MONTH)); |
358 EXPECT_EQ(ASCIIToUTF16("2019"), a.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR)); | 361 EXPECT_EQ(ASCIIToUTF16("2019"), a.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR)); |
359 | 362 |
360 // Try again, but with only the original card having a verified origin. | 363 // Try again, but with only the original card having a verified origin. |
361 // |a| should be unchanged. | 364 // |a| should be unchanged. |
362 a = original_card; | 365 a = original_card; |
363 a.set_origin("Chrome settings"); | 366 a.set_origin("Chrome settings"); |
Mathieu
2016/04/26 20:06:19
in autofill_test_utils.h and .cc, let's expose kSe
sebsg
2016/04/26 21:06:14
Acknowledged.
| |
364 b.SetRawInfo(CREDIT_CARD_NAME_FULL, ASCIIToUTF16("J. Dillinger")); | 367 b.SetRawInfo(CREDIT_CARD_NAME_FULL, ASCIIToUTF16("J. Dillinger")); |
365 | 368 |
366 EXPECT_TRUE(a.UpdateFromImportedCard(b, "en-US")); | 369 EXPECT_TRUE(a.UpdateFromImportedCard(b, "en-US")); |
367 EXPECT_EQ("Chrome settings", a.origin()); | 370 EXPECT_EQ("Chrome settings", a.origin()); |
368 EXPECT_EQ(ASCIIToUTF16("John Dillinger"), | 371 EXPECT_EQ(ASCIIToUTF16("John Dillinger"), |
369 a.GetRawInfo(CREDIT_CARD_NAME_FULL)); | 372 a.GetRawInfo(CREDIT_CARD_NAME_FULL)); |
370 EXPECT_EQ(ASCIIToUTF16("09"), a.GetRawInfo(CREDIT_CARD_EXP_MONTH)); | 373 EXPECT_EQ(ASCIIToUTF16("09"), a.GetRawInfo(CREDIT_CARD_EXP_MONTH)); |
371 EXPECT_EQ(ASCIIToUTF16("2017"), a.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR)); | 374 EXPECT_EQ(ASCIIToUTF16("2017"), a.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR)); |
372 | 375 |
376 // Try again, but with using an expired verified original card. | |
377 // |a| should not be updated because the name on the cards are not identical. | |
378 a = original_card; | |
379 a.set_origin("Chrome settings"); | |
380 a.SetExpirationYear(2010); | |
381 | |
382 EXPECT_TRUE(a.UpdateFromImportedCard(b, "en-US")); | |
383 EXPECT_EQ("Chrome settings", a.origin()); | |
384 EXPECT_EQ(ASCIIToUTF16("John Dillinger"), | |
385 a.GetRawInfo(CREDIT_CARD_NAME_FULL)); | |
386 EXPECT_EQ(ASCIIToUTF16("09"), a.GetRawInfo(CREDIT_CARD_EXP_MONTH)); | |
387 EXPECT_EQ(ASCIIToUTF16("2010"), a.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR)); | |
388 | |
389 // Try again, but with using identical name on the cards. | |
390 // |a|'s expiration date should be updated. | |
391 a = original_card; | |
392 a.set_origin("Chrome settings"); | |
393 a.SetExpirationYear(2010); | |
394 a.SetRawInfo(CREDIT_CARD_NAME_FULL, ASCIIToUTF16("J. Dillinger")); | |
395 | |
396 EXPECT_TRUE(a.UpdateFromImportedCard(b, "en-US")); | |
397 EXPECT_EQ("Chrome settings", a.origin()); | |
398 EXPECT_EQ(ASCIIToUTF16("J. Dillinger"), a.GetRawInfo(CREDIT_CARD_NAME_FULL)); | |
399 EXPECT_EQ(ASCIIToUTF16("08"), a.GetRawInfo(CREDIT_CARD_EXP_MONTH)); | |
400 EXPECT_EQ(ASCIIToUTF16("2019"), a.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR)); | |
401 | |
402 // Try again, but with |b| being expired. | |
403 // |a|'s expiration date should not be updated. | |
404 a = original_card; | |
405 a.set_origin("Chrome settings"); | |
406 a.SetExpirationYear(2010); | |
407 a.SetRawInfo(CREDIT_CARD_NAME_FULL, ASCIIToUTF16("J. Dillinger")); | |
408 b.SetExpirationYear(2009); | |
409 | |
410 EXPECT_TRUE(a.UpdateFromImportedCard(b, "en-US")); | |
411 EXPECT_EQ("Chrome settings", a.origin()); | |
412 EXPECT_EQ(ASCIIToUTF16("J. Dillinger"), a.GetRawInfo(CREDIT_CARD_NAME_FULL)); | |
413 EXPECT_EQ(ASCIIToUTF16("09"), a.GetRawInfo(CREDIT_CARD_EXP_MONTH)); | |
414 EXPECT_EQ(ASCIIToUTF16("2010"), a.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR)); | |
415 | |
416 // Put back |b|'s initial expiration date. | |
417 b.SetExpirationYear(2019); | |
418 | |
373 // Try again, but with only the new card having a verified origin. | 419 // Try again, but with only the new card having a verified origin. |
420 // |a| should be updated. | |
374 a = original_card; | 421 a = original_card; |
375 b.set_origin("Chrome settings"); | 422 b.set_origin("Chrome settings"); |
376 | 423 |
377 EXPECT_TRUE(a.UpdateFromImportedCard(b, "en-US")); | 424 EXPECT_TRUE(a.UpdateFromImportedCard(b, "en-US")); |
378 EXPECT_EQ("Chrome settings", a.origin()); | 425 EXPECT_EQ("Chrome settings", a.origin()); |
379 EXPECT_EQ(ASCIIToUTF16("J. Dillinger"), a.GetRawInfo(CREDIT_CARD_NAME_FULL)); | 426 EXPECT_EQ(ASCIIToUTF16("J. Dillinger"), a.GetRawInfo(CREDIT_CARD_NAME_FULL)); |
380 EXPECT_EQ(ASCIIToUTF16("08"), a.GetRawInfo(CREDIT_CARD_EXP_MONTH)); | 427 EXPECT_EQ(ASCIIToUTF16("08"), a.GetRawInfo(CREDIT_CARD_EXP_MONTH)); |
381 EXPECT_EQ(ASCIIToUTF16("2019"), a.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR)); | 428 EXPECT_EQ(ASCIIToUTF16("2019"), a.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR)); |
382 | 429 |
383 // Try again, with both cards having a verified origin. | 430 // Try again, with both cards having a verified origin. |
431 // |a| should be updated. | |
384 a = original_card; | 432 a = original_card; |
385 a.set_origin("Chrome Autofill dialog"); | 433 a.set_origin("Chrome Autofill dialog"); |
386 b.set_origin("Chrome settings"); | 434 b.set_origin("Chrome settings"); |
387 | 435 |
388 EXPECT_TRUE(a.UpdateFromImportedCard(b, "en-US")); | 436 EXPECT_TRUE(a.UpdateFromImportedCard(b, "en-US")); |
389 EXPECT_EQ("Chrome settings", a.origin()); | 437 EXPECT_EQ("Chrome settings", a.origin()); |
390 EXPECT_EQ(ASCIIToUTF16("J. Dillinger"), a.GetRawInfo(CREDIT_CARD_NAME_FULL)); | 438 EXPECT_EQ(ASCIIToUTF16("J. Dillinger"), a.GetRawInfo(CREDIT_CARD_NAME_FULL)); |
391 EXPECT_EQ(ASCIIToUTF16("08"), a.GetRawInfo(CREDIT_CARD_EXP_MONTH)); | 439 EXPECT_EQ(ASCIIToUTF16("08"), a.GetRawInfo(CREDIT_CARD_EXP_MONTH)); |
392 EXPECT_EQ(ASCIIToUTF16("2019"), a.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR)); | 440 EXPECT_EQ(ASCIIToUTF16("2019"), a.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR)); |
393 | 441 |
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
678 base::string16 card_number = base::ASCIIToUTF16("test"); | 726 base::string16 card_number = base::ASCIIToUTF16("test"); |
679 int month = 1; | 727 int month = 1; |
680 int year = 3000; | 728 int year = 3000; |
681 CreditCard card(card_number, month, year); | 729 CreditCard card(card_number, month, year); |
682 EXPECT_EQ(card_number, card.number()); | 730 EXPECT_EQ(card_number, card.number()); |
683 EXPECT_EQ(month, card.expiration_month()); | 731 EXPECT_EQ(month, card.expiration_month()); |
684 EXPECT_EQ(year, card.expiration_year()); | 732 EXPECT_EQ(year, card.expiration_year()); |
685 } | 733 } |
686 | 734 |
687 } // namespace autofill | 735 } // namespace autofill |
OLD | NEW |