Commit 901a1848 authored by Rouslan Solomakhin's avatar Rouslan Solomakhin Committed by Commit Bot

[PaymentRequest] Allow tokenized-card payment method

Bug: 869038
Change-Id: Ib22c53fb131acdf7ba887ca21171776663a0079d
Reviewed-on: https://chromium-review.googlesource.com/1155100Reviewed-by: default avatarGanggui Tang <gogerald@chromium.org>
Commit-Queue: Rouslan Solomakhin <rouslan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#579199}
parent 86f879bc
...@@ -158,6 +158,8 @@ public class AndroidPaymentAppFinder implements ManifestVerifyCallback { ...@@ -158,6 +158,8 @@ public class AndroidPaymentAppFinder implements ManifestVerifyCallback {
// https://w3c.github.io/webpayments-methods-credit-transfer-direct-debit/ // https://w3c.github.io/webpayments-methods-credit-transfer-direct-debit/
supportedNonUriPaymentMethods.add("payee-credit-transfer"); supportedNonUriPaymentMethods.add("payee-credit-transfer");
supportedNonUriPaymentMethods.add("payer-credit-transfer"); supportedNonUriPaymentMethods.add("payer-credit-transfer");
// https://w3c.github.io/webpayments-methods-tokenization/
supportedNonUriPaymentMethods.add("tokenized-card");
mNonUriPaymentMethods = new HashSet<>(); mNonUriPaymentMethods = new HashSet<>();
mUriPaymentMethods = new HashSet<>(); mUriPaymentMethods = new HashSet<>();
......
...@@ -1062,24 +1062,27 @@ public class AndroidPaymentAppFinderTest implements PaymentAppCreatedCallback { ...@@ -1062,24 +1062,27 @@ public class AndroidPaymentAppFinderTest implements PaymentAppCreatedCallback {
methods.add("interledger"); methods.add("interledger");
methods.add("payee-credit-transfer"); methods.add("payee-credit-transfer");
methods.add("payer-credit-transfer"); methods.add("payer-credit-transfer");
methods.add("tokenized-card");
methods.add("not-supported"); methods.add("not-supported");
mPackageManager.installPaymentApp("AlicePay", "com.alicepay", mPackageManager.installPaymentApp("AlicePay", "com.alicepay",
"" /* no default payment method name in metadata */, "AA"); "" /* no default payment method name in metadata */, "AA");
mPackageManager.setStringArrayMetaData("com.alicepay", mPackageManager.setStringArrayMetaData("com.alicepay",
new String[] {"basic-card", "interledger", "payee-credit-transfer", new String[] {"basic-card", "interledger", "payee-credit-transfer",
"payer-credit-transfer", "not-supported"}); "payer-credit-transfer", "tokenized-card", "not-supported"});
findApps(methods); findApps(methods);
Assert.assertEquals("1 app should match the query", 1, mPaymentApps.size()); Assert.assertEquals("1 app should match the query", 1, mPaymentApps.size());
Assert.assertEquals("com.alicepay", mPaymentApps.get(0).getAppIdentifier()); Assert.assertEquals("com.alicepay", mPaymentApps.get(0).getAppIdentifier());
Assert.assertEquals(4, mPaymentApps.get(0).getAppMethodNames().size()); Assert.assertEquals(5, mPaymentApps.get(0).getAppMethodNames().size());
Assert.assertTrue(mPaymentApps.get(0).getAppMethodNames().contains("basic-card")); Assert.assertTrue(mPaymentApps.get(0).getAppMethodNames().contains("basic-card"));
Assert.assertTrue(mPaymentApps.get(0).getAppMethodNames().contains("interledger")); Assert.assertTrue(mPaymentApps.get(0).getAppMethodNames().contains("interledger"));
Assert.assertTrue( Assert.assertTrue(
mPaymentApps.get(0).getAppMethodNames().contains("payee-credit-transfer")); mPaymentApps.get(0).getAppMethodNames().contains("payee-credit-transfer"));
Assert.assertTrue( Assert.assertTrue(
mPaymentApps.get(0).getAppMethodNames().contains("payer-credit-transfer")); mPaymentApps.get(0).getAppMethodNames().contains("payer-credit-transfer"));
Assert.assertTrue(
mPaymentApps.get(0).getAppMethodNames().contains("tokenized-card"));
mPaymentApps.clear(); mPaymentApps.clear();
mAllPaymentAppsCreated = false; mAllPaymentAppsCreated = false;
...@@ -1088,13 +1091,15 @@ public class AndroidPaymentAppFinderTest implements PaymentAppCreatedCallback { ...@@ -1088,13 +1091,15 @@ public class AndroidPaymentAppFinderTest implements PaymentAppCreatedCallback {
Assert.assertEquals("1 app should still match the query", 1, mPaymentApps.size()); Assert.assertEquals("1 app should still match the query", 1, mPaymentApps.size());
Assert.assertEquals("com.alicepay", mPaymentApps.get(0).getAppIdentifier()); Assert.assertEquals("com.alicepay", mPaymentApps.get(0).getAppIdentifier());
Assert.assertEquals(4, mPaymentApps.get(0).getAppMethodNames().size()); Assert.assertEquals(5, mPaymentApps.get(0).getAppMethodNames().size());
Assert.assertTrue(mPaymentApps.get(0).getAppMethodNames().contains("basic-card")); Assert.assertTrue(mPaymentApps.get(0).getAppMethodNames().contains("basic-card"));
Assert.assertTrue(mPaymentApps.get(0).getAppMethodNames().contains("interledger")); Assert.assertTrue(mPaymentApps.get(0).getAppMethodNames().contains("interledger"));
Assert.assertTrue( Assert.assertTrue(
mPaymentApps.get(0).getAppMethodNames().contains("payee-credit-transfer")); mPaymentApps.get(0).getAppMethodNames().contains("payee-credit-transfer"));
Assert.assertTrue( Assert.assertTrue(
mPaymentApps.get(0).getAppMethodNames().contains("payer-credit-transfer")); mPaymentApps.get(0).getAppMethodNames().contains("payer-credit-transfer"));
Assert.assertTrue(
mPaymentApps.get(0).getAppMethodNames().contains("tokenized-card"));
} }
private void findApps(final Set<String> methodNames) throws Throwable { private void findApps(final Set<String> methodNames) throws Throwable {
......
...@@ -532,6 +532,7 @@ IN_PROC_BROWSER_TEST_F(ManifestVerifierBrowserTest, ...@@ -532,6 +532,7 @@ IN_PROC_BROWSER_TEST_F(ManifestVerifierBrowserTest,
apps[0]->enabled_methods.push_back("interledger"); apps[0]->enabled_methods.push_back("interledger");
apps[0]->enabled_methods.push_back("payee-credit-transfer"); apps[0]->enabled_methods.push_back("payee-credit-transfer");
apps[0]->enabled_methods.push_back("payer-credit-transfer"); apps[0]->enabled_methods.push_back("payer-credit-transfer");
apps[0]->enabled_methods.push_back("tokenized-card");
apps[0]->enabled_methods.push_back("not-supported"); apps[0]->enabled_methods.push_back("not-supported");
Verify(std::move(apps)); Verify(std::move(apps));
...@@ -539,7 +540,7 @@ IN_PROC_BROWSER_TEST_F(ManifestVerifierBrowserTest, ...@@ -539,7 +540,7 @@ IN_PROC_BROWSER_TEST_F(ManifestVerifierBrowserTest,
EXPECT_EQ(1U, verified_apps().size()); EXPECT_EQ(1U, verified_apps().size());
ExpectApp(0, "https://bobpay.com/webpay", ExpectApp(0, "https://bobpay.com/webpay",
{"basic-card", "interledger", "payee-credit-transfer", {"basic-card", "interledger", "payee-credit-transfer",
"payer-credit-transfer"}, "payer-credit-transfer", "tokenized-card"},
false); false);
} }
...@@ -552,6 +553,7 @@ IN_PROC_BROWSER_TEST_F(ManifestVerifierBrowserTest, ...@@ -552,6 +553,7 @@ IN_PROC_BROWSER_TEST_F(ManifestVerifierBrowserTest,
apps[0]->enabled_methods.push_back("interledger"); apps[0]->enabled_methods.push_back("interledger");
apps[0]->enabled_methods.push_back("payee-credit-transfer"); apps[0]->enabled_methods.push_back("payee-credit-transfer");
apps[0]->enabled_methods.push_back("payer-credit-transfer"); apps[0]->enabled_methods.push_back("payer-credit-transfer");
apps[0]->enabled_methods.push_back("tokenized-card");
apps[0]->enabled_methods.push_back("not-supported"); apps[0]->enabled_methods.push_back("not-supported");
Verify(std::move(apps)); Verify(std::move(apps));
...@@ -559,7 +561,7 @@ IN_PROC_BROWSER_TEST_F(ManifestVerifierBrowserTest, ...@@ -559,7 +561,7 @@ IN_PROC_BROWSER_TEST_F(ManifestVerifierBrowserTest,
EXPECT_EQ(1U, verified_apps().size()); EXPECT_EQ(1U, verified_apps().size());
ExpectApp(0, "https://bobpay.com/webpay", ExpectApp(0, "https://bobpay.com/webpay",
{"basic-card", "interledger", "payee-credit-transfer", {"basic-card", "interledger", "payee-credit-transfer",
"payer-credit-transfer"}, "payer-credit-transfer", "tokenized-card"},
false); false);
} }
} }
......
...@@ -94,9 +94,11 @@ void ManifestVerifier::Verify(content::PaymentAppProvider::PaymentApps apps, ...@@ -94,9 +94,11 @@ void ManifestVerifier::Verify(content::PaymentAppProvider::PaymentApps apps,
// https://w3c.github.io/payment-method-basic-card/ // https://w3c.github.io/payment-method-basic-card/
// https://w3c.github.io/webpayments/proposals/interledger-payment-method.html // https://w3c.github.io/webpayments/proposals/interledger-payment-method.html
// https://w3c.github.io/webpayments-methods-credit-transfer-direct-debit/ // https://w3c.github.io/webpayments-methods-credit-transfer-direct-debit/
// https://w3c.github.io/webpayments-methods-tokenization/
if (method == "basic-card" || method == "interledger" || if (method == "basic-card" || method == "interledger" ||
method == "payee-credit-transfer" || method == "payee-credit-transfer" ||
method == "payer-credit-transfer") { method == "payer-credit-transfer" ||
method == "tokenized-card") {
verified_method_names.emplace_back(method); verified_method_names.emplace_back(method);
continue; continue;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment