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

Unified Diff: components/payments/content/payment_request_spec_unittest.cc

Issue 2779453002: [Payments] Return the preferred payment method name to the merchant (Closed)
Patch Set: compile fix Created 3 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: components/payments/content/payment_request_spec_unittest.cc
diff --git a/components/payments/content/payment_request_spec_unittest.cc b/components/payments/content/payment_request_spec_unittest.cc
index 0c4de2bcc727dfe896fba692419c8aeaaf3b8088..5bea5c0a9e9b0da0699f7f709eda8a9487b3a0f3 100644
--- a/components/payments/content/payment_request_spec_unittest.cc
+++ b/components/payments/content/payment_request_spec_unittest.cc
@@ -47,6 +47,63 @@ TEST_F(PaymentRequestSpecTest, EmptyMethodData) {
EXPECT_EQ(0u, spec()->supported_card_networks().size());
}
+TEST_F(PaymentRequestSpecTest, IsMethodSupportedThroughBasicCard) {
+ mojom::PaymentMethodDataPtr entry = mojom::PaymentMethodData::New();
+ entry->supported_methods.push_back("visa");
+ entry->supported_methods.push_back("mastercard");
+ entry->supported_methods.push_back("invalid");
+ entry->supported_methods.push_back("");
+ entry->supported_methods.push_back("visa");
+ mojom::PaymentMethodDataPtr entry2 = mojom::PaymentMethodData::New();
+ entry2->supported_methods.push_back("basic-card");
+ entry2->supported_networks.push_back(mojom::BasicCardNetwork::UNIONPAY);
+ entry2->supported_networks.push_back(mojom::BasicCardNetwork::JCB);
+ entry2->supported_networks.push_back(mojom::BasicCardNetwork::VISA);
+
+ std::vector<mojom::PaymentMethodDataPtr> method_data;
+ method_data.push_back(std::move(entry));
+ method_data.push_back(std::move(entry2));
+
+ RecreateSpecWithMethodData(std::move(method_data));
+
+ // Only unionpay and jcb are supported through basic-card.
+ EXPECT_TRUE(spec()->IsMethodSupportedThroughBasicCard("unionpay"));
+ EXPECT_TRUE(spec()->IsMethodSupportedThroughBasicCard("jcb"));
+ // "visa" is NOT supported through basic card because it was specified
+ // directly first in supportedMethods.
+ EXPECT_FALSE(spec()->IsMethodSupportedThroughBasicCard("visa"));
+ EXPECT_FALSE(spec()->IsMethodSupportedThroughBasicCard("mastercard"));
+ EXPECT_FALSE(spec()->IsMethodSupportedThroughBasicCard("diners"));
+ EXPECT_FALSE(spec()->IsMethodSupportedThroughBasicCard("garbage"));
+}
+
+// Order matters when parsing the supportedMethods and basic card networks.
+TEST_F(PaymentRequestSpecTest,
+ IsMethodSupportedThroughBasicCard_DifferentOrder) {
+ mojom::PaymentMethodDataPtr entry = mojom::PaymentMethodData::New();
+ entry->supported_methods.push_back("basic-card");
+ entry->supported_networks.push_back(mojom::BasicCardNetwork::UNIONPAY);
+ entry->supported_networks.push_back(mojom::BasicCardNetwork::VISA);
+ mojom::PaymentMethodDataPtr entry2 = mojom::PaymentMethodData::New();
+ entry2->supported_methods.push_back("visa");
+ entry2->supported_methods.push_back("unionpay");
+ entry2->supported_methods.push_back("jcb");
+
+ std::vector<mojom::PaymentMethodDataPtr> method_data;
+ method_data.push_back(std::move(entry));
+ method_data.push_back(std::move(entry2));
+
+ RecreateSpecWithMethodData(std::move(method_data));
+
+ // unionpay and visa are supported through basic-card; they were specified
+ // first as basic card networks.
+ EXPECT_TRUE(spec()->IsMethodSupportedThroughBasicCard("unionpay"));
+ EXPECT_TRUE(spec()->IsMethodSupportedThroughBasicCard("visa"));
+ // "jcb" is NOT supported through basic card; it was specified directly
+ // as a supportedMethods
+ EXPECT_FALSE(spec()->IsMethodSupportedThroughBasicCard("jcb"));
+}
+
// Test that parsing supported methods (with invalid values and duplicates)
// works as expected.
TEST_F(PaymentRequestSpecTest, SupportedMethods) {
« no previous file with comments | « components/payments/content/payment_request_spec.cc ('k') | components/payments/content/payment_request_state.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698