| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "ios/web/public/payments/payment_request.h" | 5 #include "ios/web/public/payments/payment_request.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
| 10 #include "base/values.h" | 10 #include "base/values.h" |
| 11 #include "components/payments/core/basic_card_response.h" |
| 12 #include "components/payments/core/payment_address.h" |
| 11 #include "testing/gtest/include/gtest/gtest.h" | 13 #include "testing/gtest/include/gtest/gtest.h" |
| 12 | 14 |
| 13 namespace web { | 15 namespace web { |
| 14 | 16 |
| 15 // PaymentRequest parsing tests. | 17 // PaymentRequest parsing tests. |
| 16 | 18 |
| 17 // Tests the success case when populating a PaymentMethodData from a dictionary. | 19 // Tests the success case when populating a PaymentMethodData from a dictionary. |
| 18 TEST(PaymentRequestTest, PaymentMethodDataFromDictionaryValueSuccess) { | 20 TEST(PaymentRequestTest, PaymentMethodDataFromDictionaryValueSuccess) { |
| 19 PaymentMethodData expected; | 21 PaymentMethodData expected; |
| 20 std::vector<base::string16> supported_methods; | 22 std::vector<base::string16> supported_methods; |
| (...skipping 329 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 350 payment_response.shipping_option = base::ASCIIToUTF16("666"); | 352 payment_response.shipping_option = base::ASCIIToUTF16("666"); |
| 351 payment_response.payer_name = base::ASCIIToUTF16("Jane Doe"); | 353 payment_response.payer_name = base::ASCIIToUTF16("Jane Doe"); |
| 352 payment_response.payer_email = base::ASCIIToUTF16("jane@example.com"); | 354 payment_response.payer_email = base::ASCIIToUTF16("jane@example.com"); |
| 353 payment_response.payer_phone = base::ASCIIToUTF16("1234-567-890"); | 355 payment_response.payer_phone = base::ASCIIToUTF16("1234-567-890"); |
| 354 EXPECT_TRUE( | 356 EXPECT_TRUE( |
| 355 expected_value.Equals(payment_response.ToDictionaryValue().get())); | 357 expected_value.Equals(payment_response.ToDictionaryValue().get())); |
| 356 } | 358 } |
| 357 | 359 |
| 358 // Value equality tests. | 360 // Value equality tests. |
| 359 | 361 |
| 360 // Tests that two addresses are not equal if their property values differ or | |
| 361 // one is missing a value present in the other, and equal otherwise. | |
| 362 TEST(PaymentRequestTest, PaymentAddressEquality) { | |
| 363 PaymentAddress address1; | |
| 364 PaymentAddress address2; | |
| 365 EXPECT_EQ(address1, address2); | |
| 366 | |
| 367 address1.country = base::ASCIIToUTF16("Madagascar"); | |
| 368 EXPECT_NE(address1, address2); | |
| 369 address2.country = base::ASCIIToUTF16("Monaco"); | |
| 370 EXPECT_NE(address1, address2); | |
| 371 address2.country = base::ASCIIToUTF16("Madagascar"); | |
| 372 EXPECT_EQ(address1, address2); | |
| 373 | |
| 374 std::vector<base::string16> address_line1; | |
| 375 address_line1.push_back(base::ASCIIToUTF16("123 Main St.")); | |
| 376 address_line1.push_back(base::ASCIIToUTF16("Apartment B")); | |
| 377 address1.address_line = address_line1; | |
| 378 EXPECT_NE(address1, address2); | |
| 379 std::vector<base::string16> address_line2; | |
| 380 address_line2.push_back(base::ASCIIToUTF16("123 Main St.")); | |
| 381 address_line2.push_back(base::ASCIIToUTF16("Apartment C")); | |
| 382 address2.address_line = address_line2; | |
| 383 EXPECT_NE(address1, address2); | |
| 384 address2.address_line = address_line1; | |
| 385 EXPECT_EQ(address1, address2); | |
| 386 | |
| 387 address1.region = base::ASCIIToUTF16("Quebec"); | |
| 388 EXPECT_NE(address1, address2); | |
| 389 address2.region = base::ASCIIToUTF16("Newfoundland and Labrador"); | |
| 390 EXPECT_NE(address1, address2); | |
| 391 address2.region = base::ASCIIToUTF16("Quebec"); | |
| 392 EXPECT_EQ(address1, address2); | |
| 393 | |
| 394 address1.city = base::ASCIIToUTF16("Timbuktu"); | |
| 395 EXPECT_NE(address1, address2); | |
| 396 address2.city = base::ASCIIToUTF16("Timbuk 3"); | |
| 397 EXPECT_NE(address1, address2); | |
| 398 address2.city = base::ASCIIToUTF16("Timbuktu"); | |
| 399 EXPECT_EQ(address1, address2); | |
| 400 | |
| 401 address1.dependent_locality = base::ASCIIToUTF16("Manhattan"); | |
| 402 EXPECT_NE(address1, address2); | |
| 403 address2.dependent_locality = base::ASCIIToUTF16("Queens"); | |
| 404 EXPECT_NE(address1, address2); | |
| 405 address2.dependent_locality = base::ASCIIToUTF16("Manhattan"); | |
| 406 EXPECT_EQ(address1, address2); | |
| 407 | |
| 408 address1.postal_code = base::ASCIIToUTF16("90210"); | |
| 409 EXPECT_NE(address1, address2); | |
| 410 address2.postal_code = base::ASCIIToUTF16("89049"); | |
| 411 EXPECT_NE(address1, address2); | |
| 412 address2.postal_code = base::ASCIIToUTF16("90210"); | |
| 413 EXPECT_EQ(address1, address2); | |
| 414 | |
| 415 address1.sorting_code = base::ASCIIToUTF16("14390"); | |
| 416 EXPECT_NE(address1, address2); | |
| 417 address2.sorting_code = base::ASCIIToUTF16("09341"); | |
| 418 EXPECT_NE(address1, address2); | |
| 419 address2.sorting_code = base::ASCIIToUTF16("14390"); | |
| 420 EXPECT_EQ(address1, address2); | |
| 421 | |
| 422 address1.language_code = base::ASCIIToUTF16("fr"); | |
| 423 EXPECT_NE(address1, address2); | |
| 424 address2.language_code = base::ASCIIToUTF16("zh-HK"); | |
| 425 EXPECT_NE(address1, address2); | |
| 426 address2.language_code = base::ASCIIToUTF16("fr"); | |
| 427 EXPECT_EQ(address1, address2); | |
| 428 | |
| 429 address1.organization = base::ASCIIToUTF16("The Willy Wonka Candy Company"); | |
| 430 EXPECT_NE(address1, address2); | |
| 431 address2.organization = base::ASCIIToUTF16("Sears"); | |
| 432 EXPECT_NE(address1, address2); | |
| 433 address2.organization = base::ASCIIToUTF16("The Willy Wonka Candy Company"); | |
| 434 EXPECT_EQ(address1, address2); | |
| 435 | |
| 436 address1.recipient = base::ASCIIToUTF16("Veruca Salt"); | |
| 437 EXPECT_NE(address1, address2); | |
| 438 address2.recipient = base::ASCIIToUTF16("Veronica Mars"); | |
| 439 EXPECT_NE(address1, address2); | |
| 440 address2.recipient = base::ASCIIToUTF16("Veruca Salt"); | |
| 441 EXPECT_EQ(address1, address2); | |
| 442 | |
| 443 address1.care_of = base::ASCIIToUTF16("Jarvis"); | |
| 444 EXPECT_NE(address1, address2); | |
| 445 address2.care_of = base::ASCIIToUTF16("Tony"); | |
| 446 EXPECT_NE(address1, address2); | |
| 447 address2.care_of = base::ASCIIToUTF16("Jarvis"); | |
| 448 EXPECT_EQ(address1, address2); | |
| 449 | |
| 450 address1.phone = base::ASCIIToUTF16("888-867-5309"); | |
| 451 EXPECT_NE(address1, address2); | |
| 452 address2.phone = base::ASCIIToUTF16("800-984-3672"); | |
| 453 EXPECT_NE(address1, address2); | |
| 454 address2.phone = base::ASCIIToUTF16("888-867-5309"); | |
| 455 EXPECT_EQ(address1, address2); | |
| 456 } | |
| 457 | |
| 458 // Tests that two method data objects are not equal if their property values | 362 // Tests that two method data objects are not equal if their property values |
| 459 // differ or one is missing a value present in the other, and equal otherwise. | 363 // differ or one is missing a value present in the other, and equal otherwise. |
| 460 TEST(PaymentRequestTest, PaymentMethodDataEquality) { | 364 TEST(PaymentRequestTest, PaymentMethodDataEquality) { |
| 461 PaymentMethodData method_data1; | 365 PaymentMethodData method_data1; |
| 462 PaymentMethodData method_data2; | 366 PaymentMethodData method_data2; |
| 463 EXPECT_EQ(method_data1, method_data2); | 367 EXPECT_EQ(method_data1, method_data2); |
| 464 | 368 |
| 465 std::vector<base::string16> supported_methods1; | 369 std::vector<base::string16> supported_methods1; |
| 466 supported_methods1.push_back(base::ASCIIToUTF16("Visa")); | 370 supported_methods1.push_back(base::ASCIIToUTF16("Visa")); |
| 467 supported_methods1.push_back(base::ASCIIToUTF16("BobPay")); | 371 supported_methods1.push_back(base::ASCIIToUTF16("BobPay")); |
| (...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 714 | 618 |
| 715 // Tests that two payment request objects are not equal if their property values | 619 // Tests that two payment request objects are not equal if their property values |
| 716 // differ or one is missing a value present in the other, and equal otherwise. | 620 // differ or one is missing a value present in the other, and equal otherwise. |
| 717 // Doesn't test all properties of child objects, relying instead on their | 621 // Doesn't test all properties of child objects, relying instead on their |
| 718 // respective tests. | 622 // respective tests. |
| 719 TEST(PaymentRequestTest, PaymentRequestEquality) { | 623 TEST(PaymentRequestTest, PaymentRequestEquality) { |
| 720 PaymentRequest request1; | 624 PaymentRequest request1; |
| 721 PaymentRequest request2; | 625 PaymentRequest request2; |
| 722 EXPECT_EQ(request1, request2); | 626 EXPECT_EQ(request1, request2); |
| 723 | 627 |
| 724 PaymentAddress address1; | 628 payments::PaymentAddress address1; |
| 725 address1.recipient = base::ASCIIToUTF16("Jessica Jones"); | 629 address1.recipient = base::ASCIIToUTF16("Jessica Jones"); |
| 726 request1.shipping_address = address1; | 630 request1.shipping_address = address1; |
| 727 EXPECT_NE(request1, request2); | 631 EXPECT_NE(request1, request2); |
| 728 PaymentAddress address2; | 632 payments::PaymentAddress address2; |
| 729 address2.recipient = base::ASCIIToUTF16("Luke Cage"); | 633 address2.recipient = base::ASCIIToUTF16("Luke Cage"); |
| 730 request2.shipping_address = address2; | 634 request2.shipping_address = address2; |
| 731 EXPECT_NE(request1, request2); | 635 EXPECT_NE(request1, request2); |
| 732 request2.shipping_address = address1; | 636 request2.shipping_address = address1; |
| 733 EXPECT_EQ(request1, request2); | 637 EXPECT_EQ(request1, request2); |
| 734 | 638 |
| 735 request1.shipping_option = base::ASCIIToUTF16("2-Day"); | 639 request1.shipping_option = base::ASCIIToUTF16("2-Day"); |
| 736 EXPECT_NE(request1, request2); | 640 EXPECT_NE(request1, request2); |
| 737 request2.shipping_option = base::ASCIIToUTF16("3-Day"); | 641 request2.shipping_option = base::ASCIIToUTF16("3-Day"); |
| 738 EXPECT_NE(request1, request2); | 642 EXPECT_NE(request1, request2); |
| (...skipping 24 matching lines...) Expand all Loading... |
| 763 EXPECT_EQ(request1, request2); | 667 EXPECT_EQ(request1, request2); |
| 764 | 668 |
| 765 PaymentOptions options; | 669 PaymentOptions options; |
| 766 options.request_shipping = true; | 670 options.request_shipping = true; |
| 767 request1.options = options; | 671 request1.options = options; |
| 768 EXPECT_NE(request1, request2); | 672 EXPECT_NE(request1, request2); |
| 769 request2.options = options; | 673 request2.options = options; |
| 770 EXPECT_EQ(request1, request2); | 674 EXPECT_EQ(request1, request2); |
| 771 } | 675 } |
| 772 | 676 |
| 773 // Tests that two credit card response objects are not equal if their property | |
| 774 // values differ or one is missing a value present in the other, and equal | |
| 775 // otherwise. Doesn't test all properties of child objects, relying instead on | |
| 776 // their respective tests. | |
| 777 TEST(PaymentRequestTest, BasicCardResponseEquality) { | |
| 778 BasicCardResponse card_response1; | |
| 779 BasicCardResponse card_response2; | |
| 780 EXPECT_EQ(card_response1, card_response2); | |
| 781 | |
| 782 card_response1.cardholder_name = base::ASCIIToUTF16("Shadow Moon"); | |
| 783 EXPECT_NE(card_response1, card_response2); | |
| 784 card_response2.cardholder_name = base::ASCIIToUTF16("Mad Sweeney"); | |
| 785 EXPECT_NE(card_response1, card_response2); | |
| 786 card_response2.cardholder_name = base::ASCIIToUTF16("Shadow Moon"); | |
| 787 EXPECT_EQ(card_response1, card_response2); | |
| 788 | |
| 789 card_response1.card_number = base::ASCIIToUTF16("4111111111111111"); | |
| 790 EXPECT_NE(card_response1, card_response2); | |
| 791 card_response2.card_number = base::ASCIIToUTF16("1111"); | |
| 792 EXPECT_NE(card_response1, card_response2); | |
| 793 card_response2.card_number = base::ASCIIToUTF16("4111111111111111"); | |
| 794 EXPECT_EQ(card_response1, card_response2); | |
| 795 | |
| 796 card_response1.expiry_month = base::ASCIIToUTF16("01"); | |
| 797 EXPECT_NE(card_response1, card_response2); | |
| 798 card_response2.expiry_month = base::ASCIIToUTF16("11"); | |
| 799 EXPECT_NE(card_response1, card_response2); | |
| 800 card_response2.expiry_month = base::ASCIIToUTF16("01"); | |
| 801 EXPECT_EQ(card_response1, card_response2); | |
| 802 | |
| 803 card_response1.expiry_year = base::ASCIIToUTF16("27"); | |
| 804 EXPECT_NE(card_response1, card_response2); | |
| 805 card_response2.expiry_year = base::ASCIIToUTF16("72"); | |
| 806 EXPECT_NE(card_response1, card_response2); | |
| 807 card_response2.expiry_year = base::ASCIIToUTF16("27"); | |
| 808 EXPECT_EQ(card_response1, card_response2); | |
| 809 | |
| 810 card_response1.expiry_year = base::ASCIIToUTF16("123"); | |
| 811 EXPECT_NE(card_response1, card_response2); | |
| 812 card_response2.expiry_year = base::ASCIIToUTF16("999"); | |
| 813 EXPECT_NE(card_response1, card_response2); | |
| 814 card_response2.expiry_year = base::ASCIIToUTF16("123"); | |
| 815 EXPECT_EQ(card_response1, card_response2); | |
| 816 | |
| 817 PaymentAddress billing_address1; | |
| 818 billing_address1.postal_code = base::ASCIIToUTF16("90210"); | |
| 819 PaymentAddress billing_address2; | |
| 820 billing_address2.postal_code = base::ASCIIToUTF16("01209"); | |
| 821 card_response1.billing_address = billing_address1; | |
| 822 EXPECT_NE(card_response1, card_response2); | |
| 823 card_response2.billing_address = billing_address2; | |
| 824 EXPECT_NE(card_response1, card_response2); | |
| 825 card_response2.billing_address = billing_address1; | |
| 826 EXPECT_EQ(card_response1, card_response2); | |
| 827 } | |
| 828 | |
| 829 // Tests that two payment response objects are not equal if their property | 677 // Tests that two payment response objects are not equal if their property |
| 830 // values differ or one is missing a value present in the other, and equal | 678 // values differ or one is missing a value present in the other, and equal |
| 831 // otherwise. Doesn't test all properties of child objects, relying instead on | 679 // otherwise. Doesn't test all properties of child objects, relying instead on |
| 832 // their respective tests. | 680 // their respective tests. |
| 833 TEST(PaymentRequestTest, PaymentResponseEquality) { | 681 TEST(PaymentRequestTest, PaymentResponseEquality) { |
| 834 PaymentResponse response1; | 682 PaymentResponse response1; |
| 835 PaymentResponse response2; | 683 PaymentResponse response2; |
| 836 EXPECT_EQ(response1, response2); | 684 EXPECT_EQ(response1, response2); |
| 837 | 685 |
| 838 response1.method_name = base::ASCIIToUTF16("Visa"); | 686 response1.method_name = base::ASCIIToUTF16("Visa"); |
| 839 EXPECT_NE(response1, response2); | 687 EXPECT_NE(response1, response2); |
| 840 response2.method_name = base::ASCIIToUTF16("Mastercard"); | 688 response2.method_name = base::ASCIIToUTF16("Mastercard"); |
| 841 EXPECT_NE(response1, response2); | 689 EXPECT_NE(response1, response2); |
| 842 response2.method_name = base::ASCIIToUTF16("Visa"); | 690 response2.method_name = base::ASCIIToUTF16("Visa"); |
| 843 EXPECT_EQ(response1, response2); | 691 EXPECT_EQ(response1, response2); |
| 844 | 692 |
| 845 BasicCardResponse card_response1; | 693 payments::BasicCardResponse card_response1; |
| 846 card_response1.card_number = base::ASCIIToUTF16("1234"); | 694 card_response1.card_number = base::ASCIIToUTF16("1234"); |
| 847 BasicCardResponse card_response2; | 695 payments::BasicCardResponse card_response2; |
| 848 card_response2.card_number = base::ASCIIToUTF16("8888"); | 696 card_response2.card_number = base::ASCIIToUTF16("8888"); |
| 849 response1.details = card_response1; | 697 response1.details = card_response1; |
| 850 EXPECT_NE(response1, response2); | 698 EXPECT_NE(response1, response2); |
| 851 response2.details = card_response2; | 699 response2.details = card_response2; |
| 852 EXPECT_NE(response1, response2); | 700 EXPECT_NE(response1, response2); |
| 853 response2.details = card_response1; | 701 response2.details = card_response1; |
| 854 EXPECT_EQ(response1, response2); | 702 EXPECT_EQ(response1, response2); |
| 855 } | 703 } |
| 856 | 704 |
| 857 } // namespace web | 705 } // namespace web |
| OLD | NEW |