| OLD | NEW |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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 "components/payments/content/payment_request_spec.h" | 5 #include "components/payments/content/payment_request_spec.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/memory/weak_ptr.h" | 9 #include "base/memory/weak_ptr.h" |
| 10 #include "components/payments/content/payment_request.mojom.h" | 10 #include "components/payments/content/payment_request.mojom.h" |
| (...skipping 29 matching lines...) Expand all Loading... |
| 40 // Test that empty method data notifies observers of an invalid spec. | 40 // Test that empty method data notifies observers of an invalid spec. |
| 41 TEST_F(PaymentRequestSpecTest, EmptyMethodData) { | 41 TEST_F(PaymentRequestSpecTest, EmptyMethodData) { |
| 42 std::vector<mojom::PaymentMethodDataPtr> method_data; | 42 std::vector<mojom::PaymentMethodDataPtr> method_data; |
| 43 RecreateSpecWithMethodData(std::move(method_data)); | 43 RecreateSpecWithMethodData(std::move(method_data)); |
| 44 EXPECT_TRUE(on_invalid_spec_provided_called()); | 44 EXPECT_TRUE(on_invalid_spec_provided_called()); |
| 45 | 45 |
| 46 // No supported card networks. | 46 // No supported card networks. |
| 47 EXPECT_EQ(0u, spec()->supported_card_networks().size()); | 47 EXPECT_EQ(0u, spec()->supported_card_networks().size()); |
| 48 } | 48 } |
| 49 | 49 |
| 50 TEST_F(PaymentRequestSpecTest, IsMethodSupportedThroughBasicCard) { |
| 51 mojom::PaymentMethodDataPtr entry = mojom::PaymentMethodData::New(); |
| 52 entry->supported_methods.push_back("visa"); |
| 53 entry->supported_methods.push_back("mastercard"); |
| 54 entry->supported_methods.push_back("invalid"); |
| 55 entry->supported_methods.push_back(""); |
| 56 entry->supported_methods.push_back("visa"); |
| 57 mojom::PaymentMethodDataPtr entry2 = mojom::PaymentMethodData::New(); |
| 58 entry2->supported_methods.push_back("basic-card"); |
| 59 entry2->supported_networks.push_back(mojom::BasicCardNetwork::UNIONPAY); |
| 60 entry2->supported_networks.push_back(mojom::BasicCardNetwork::JCB); |
| 61 entry2->supported_networks.push_back(mojom::BasicCardNetwork::VISA); |
| 62 |
| 63 std::vector<mojom::PaymentMethodDataPtr> method_data; |
| 64 method_data.push_back(std::move(entry)); |
| 65 method_data.push_back(std::move(entry2)); |
| 66 |
| 67 RecreateSpecWithMethodData(std::move(method_data)); |
| 68 |
| 69 // Only unionpay and jcb are supported through basic-card. |
| 70 EXPECT_TRUE(spec()->IsMethodSupportedThroughBasicCard("unionpay")); |
| 71 EXPECT_TRUE(spec()->IsMethodSupportedThroughBasicCard("jcb")); |
| 72 // "visa" is NOT supported through basic card because it was specified |
| 73 // directly first in supportedMethods. |
| 74 EXPECT_FALSE(spec()->IsMethodSupportedThroughBasicCard("visa")); |
| 75 EXPECT_FALSE(spec()->IsMethodSupportedThroughBasicCard("mastercard")); |
| 76 EXPECT_FALSE(spec()->IsMethodSupportedThroughBasicCard("diners")); |
| 77 EXPECT_FALSE(spec()->IsMethodSupportedThroughBasicCard("garbage")); |
| 78 } |
| 79 |
| 80 // Order matters when parsing the supportedMethods and basic card networks. |
| 81 TEST_F(PaymentRequestSpecTest, |
| 82 IsMethodSupportedThroughBasicCard_DifferentOrder) { |
| 83 mojom::PaymentMethodDataPtr entry = mojom::PaymentMethodData::New(); |
| 84 entry->supported_methods.push_back("basic-card"); |
| 85 entry->supported_networks.push_back(mojom::BasicCardNetwork::UNIONPAY); |
| 86 entry->supported_networks.push_back(mojom::BasicCardNetwork::VISA); |
| 87 mojom::PaymentMethodDataPtr entry2 = mojom::PaymentMethodData::New(); |
| 88 entry2->supported_methods.push_back("visa"); |
| 89 entry2->supported_methods.push_back("unionpay"); |
| 90 entry2->supported_methods.push_back("jcb"); |
| 91 |
| 92 std::vector<mojom::PaymentMethodDataPtr> method_data; |
| 93 method_data.push_back(std::move(entry)); |
| 94 method_data.push_back(std::move(entry2)); |
| 95 |
| 96 RecreateSpecWithMethodData(std::move(method_data)); |
| 97 |
| 98 // unionpay and visa are supported through basic-card; they were specified |
| 99 // first as basic card networks. |
| 100 EXPECT_TRUE(spec()->IsMethodSupportedThroughBasicCard("unionpay")); |
| 101 EXPECT_TRUE(spec()->IsMethodSupportedThroughBasicCard("visa")); |
| 102 // "jcb" is NOT supported through basic card; it was specified directly |
| 103 // as a supportedMethods |
| 104 EXPECT_FALSE(spec()->IsMethodSupportedThroughBasicCard("jcb")); |
| 105 } |
| 106 |
| 50 // Test that parsing supported methods (with invalid values and duplicates) | 107 // Test that parsing supported methods (with invalid values and duplicates) |
| 51 // works as expected. | 108 // works as expected. |
| 52 TEST_F(PaymentRequestSpecTest, SupportedMethods) { | 109 TEST_F(PaymentRequestSpecTest, SupportedMethods) { |
| 53 mojom::PaymentMethodDataPtr entry = mojom::PaymentMethodData::New(); | 110 mojom::PaymentMethodDataPtr entry = mojom::PaymentMethodData::New(); |
| 54 entry->supported_methods.push_back("visa"); | 111 entry->supported_methods.push_back("visa"); |
| 55 entry->supported_methods.push_back("mastercard"); | 112 entry->supported_methods.push_back("mastercard"); |
| 56 entry->supported_methods.push_back("invalid"); | 113 entry->supported_methods.push_back("invalid"); |
| 57 entry->supported_methods.push_back(""); | 114 entry->supported_methods.push_back(""); |
| 58 entry->supported_methods.push_back("visa"); | 115 entry->supported_methods.push_back("visa"); |
| 59 std::vector<mojom::PaymentMethodDataPtr> method_data; | 116 std::vector<mojom::PaymentMethodDataPtr> method_data; |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 203 RecreateSpecWithMethodData(std::move(method_data)); | 260 RecreateSpecWithMethodData(std::move(method_data)); |
| 204 EXPECT_FALSE(on_invalid_spec_provided_called()); | 261 EXPECT_FALSE(on_invalid_spec_provided_called()); |
| 205 | 262 |
| 206 // Only the specified networks are supported. | 263 // Only the specified networks are supported. |
| 207 EXPECT_EQ(2u, spec()->supported_card_networks().size()); | 264 EXPECT_EQ(2u, spec()->supported_card_networks().size()); |
| 208 EXPECT_EQ("visa", spec()->supported_card_networks()[0]); | 265 EXPECT_EQ("visa", spec()->supported_card_networks()[0]); |
| 209 EXPECT_EQ("unionpay", spec()->supported_card_networks()[1]); | 266 EXPECT_EQ("unionpay", spec()->supported_card_networks()[1]); |
| 210 } | 267 } |
| 211 | 268 |
| 212 } // namespace payments | 269 } // namespace payments |
| OLD | NEW |