Bug 1523562 [wpt PR 14813] - Complement basic-card with ApplePay, a=testonly
authorMarcos Cáceres <marcos@marcosc.com>
Thu, 31 Jan 2019 18:59:47 +0000
changeset 458100 43ae53e7b65e6cc660e292f1fb86df8869d4ccff
parent 458099 650980ad15afb61136a5d741a601bef982091b09
child 458101 ff66c85a281440348e2ecced2ce7750820302296
push id35518
push useropoprus@mozilla.com
push dateFri, 08 Feb 2019 09:55:14 +0000
treeherdermozilla-central@3a3e393396f4 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerstestonly
bugs1523562, 14813
milestone67.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1523562 [wpt PR 14813] - Complement basic-card with ApplePay, a=testonly Automatic update from web-platform-tests Complement basic-card with ApplePay (#14813) -- wpt-commits: ef625c6ac28d0ac07ef0c62a6f22c10d14a2623a wpt-pr: 14813
testing/web-platform/tests/payment-request/MerchantValidationEvent/constructor.https.html
testing/web-platform/tests/payment-request/PaymentRequestUpdateEvent/constructor.https.html
testing/web-platform/tests/payment-request/PaymentRequestUpdateEvent/updateWith-call-immediate-manual.https.html
testing/web-platform/tests/payment-request/PaymentRequestUpdateEvent/updateWith-duplicate-shipping-options-manual.https.html
testing/web-platform/tests/payment-request/PaymentRequestUpdateEvent/updateWith-incremental-update-manual.https.html
testing/web-platform/tests/payment-request/PaymentRequestUpdateEvent/updateWith-method-abort-update-manual.https.html
testing/web-platform/tests/payment-request/PaymentRequestUpdateEvent/updateWith-state-checks-manual.https.html
testing/web-platform/tests/payment-request/PaymentRequestUpdateEvent/updatewith-method.https.html
testing/web-platform/tests/payment-request/algorithms-manual.https.html
testing/web-platform/tests/payment-request/billing-address-changed-manual.https.html
testing/web-platform/tests/payment-request/change-shipping-option-manual.https.html
testing/web-platform/tests/payment-request/change-shipping-option-select-last-manual.https.html
testing/web-platform/tests/payment-request/onmerchantvalidation-attribute.https.html
testing/web-platform/tests/payment-request/onpaymentmenthodchange-attribute.https.html
testing/web-platform/tests/payment-request/payment-request-abort-method.https.html
testing/web-platform/tests/payment-request/payment-request-canmakepayment-method-protection.https.html
testing/web-platform/tests/payment-request/payment-request-canmakepayment-method.https.html
testing/web-platform/tests/payment-request/payment-request-constructor-crash.https.html
testing/web-platform/tests/payment-request/payment-request-onshippingaddresschange-attribute.https.html
testing/web-platform/tests/payment-request/payment-request-onshippingoptionchange-attribute.https.html
testing/web-platform/tests/payment-request/payment-request-shippingType-attribute.https.html
testing/web-platform/tests/payment-request/payment-request-show-method.https.html
testing/web-platform/tests/payment-request/payment-response/helpers.js
testing/web-platform/tests/payment-request/payment-response/rejects_if_not_active-manual.https.html
testing/web-platform/tests/payment-request/rejects_if_not_active.https.html
testing/web-platform/tests/payment-request/shipping-address-changed-manual.https.html
testing/web-platform/tests/payment-request/show-method-optional-promise-rejects-manual.https.html
testing/web-platform/tests/payment-request/show-method-optional-promise-resolves-manual.https.html
testing/web-platform/tests/payment-request/show-method-postmessage-iframe.html
testing/web-platform/tests/payment-request/show-method-postmessage-manual.https.html
testing/web-platform/tests/payment-request/updateWith-method-pmi-handling-manual.https.html
testing/web-platform/tests/payment-request/user-abort-algorithm-manual.https.html
testing/web-platform/tests/payment-request/user-accepts-payment-request-algo-manual.https.html
--- a/testing/web-platform/tests/payment-request/MerchantValidationEvent/constructor.https.html
+++ b/testing/web-platform/tests/payment-request/MerchantValidationEvent/constructor.https.html
@@ -3,16 +3,23 @@
 <meta charset="utf-8">
 <title>Test for MerchantValidationEvent Constructor</title>
 <link rel="help" href="https://w3c.github.io/browser-payment-api/#merchantvalidationevent-constructor">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script>
 const applePay = Object.freeze({
   supportedMethods: "https://apple.com/apple-pay",
+  data: {
+    version: 3,
+    merchantIdentifier: "merchant.com.example",
+    countryCode: "US",
+    merchantCapabilities: ["supports3DS"],
+    supportedNetworks: ["visa"],
+  }
 });
 const basicCard = Object.freeze({ supportedMethods: "basic-card" });
 const defaultMethods = Object.freeze([basicCard, applePay]);
 const defaultDetails = Object.freeze({
   total: {
     label: "Total",
     amount: {
       currency: "USD",
--- a/testing/web-platform/tests/payment-request/PaymentRequestUpdateEvent/constructor.https.html
+++ b/testing/web-platform/tests/payment-request/PaymentRequestUpdateEvent/constructor.https.html
@@ -1,18 +1,28 @@
 <!DOCTYPE html>
 <!-- Copyright © 2017 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
 <meta charset="utf-8">
 <title>Test for PaymentRequestUpdateEvent Constructor</title>
 <link rel="help" href="https://w3c.github.io/browser-payment-api/#constructor">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script>
+const applePay = Object.freeze({
+  supportedMethods: "https://apple.com/apple-pay",
+  data: {
+    version: 3,
+    merchantIdentifier: "merchant.com.example",
+    countryCode: "US",
+    merchantCapabilities: ["supports3DS"],
+    supportedNetworks: ["visa"],
+  }
+});
 const basicCard = Object.freeze({ supportedMethods: "basic-card" });
-const defaultMethods = Object.freeze([basicCard]);
+const defaultMethods = Object.freeze([basicCard, applePay]);
 const defaultDetails = Object.freeze({
   total: {
     label: "Total",
     amount: {
       currency: "USD",
       value: "1.00",
     },
   },
--- a/testing/web-platform/tests/payment-request/PaymentRequestUpdateEvent/updateWith-call-immediate-manual.https.html
+++ b/testing/web-platform/tests/payment-request/PaymentRequestUpdateEvent/updateWith-call-immediate-manual.https.html
@@ -4,18 +4,28 @@
 <link rel="help" href="https://github.com/w3c/payment-request/pull/591">
 <title>
   PaymentRequestUpdateEvent.updateWith() needs to be called immediately
 </title>
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script>
 setup({ explicit_done: true, explicit_timeout: true });
+const applePay = Object.freeze({
+  supportedMethods: "https://apple.com/apple-pay",
+  data: {
+    version: 3,
+    merchantIdentifier: "merchant.com.example",
+    countryCode: "US",
+    merchantCapabilities: ["supports3DS"],
+    supportedNetworks: ["visa"],
+  }
+});
 const validMethod = Object.freeze({ supportedMethods: "basic-card" });
-const validMethods = Object.freeze([validMethod]);
+const validMethods = Object.freeze([validMethod, applePay]);
 const validAmount = Object.freeze({ currency: "USD", value: "5.00" });
 const validTotal = Object.freeze({
   label: "label",
   amount: validAmount,
 });
 const validShippingOptionA = Object.freeze({
   id: "a-shipping-option",
   label: "A shipping option",
--- a/testing/web-platform/tests/payment-request/PaymentRequestUpdateEvent/updateWith-duplicate-shipping-options-manual.https.html
+++ b/testing/web-platform/tests/payment-request/PaymentRequestUpdateEvent/updateWith-duplicate-shipping-options-manual.https.html
@@ -3,19 +3,28 @@
 <link rel="help" href="https://w3c.github.io/payment-request/#updatewith()-method">
 <title>
   updateWith() method - duplicate shippingOption ids
 </title>
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script>
 setup({ explicit_done: true, explicit_timeout: true });
-
+const applePay = Object.freeze({
+  supportedMethods: "https://apple.com/apple-pay",
+  data: {
+    version: 3,
+    merchantIdentifier: "merchant.com.example",
+    countryCode: "US",
+    merchantCapabilities: ["supports3DS"],
+    supportedNetworks: ["visa"],
+  }
+});
 const validMethod = Object.freeze({ supportedMethods: "basic-card" });
-const validMethods = [validMethod];
+const validMethods = [validMethod, applePay];
 const validAmount = Object.freeze({
   currency: "USD",
   value: "5.00",
 });
 const validShippingOption = Object.freeze({
   id: "option1",
   label: "Option 1",
   amount: validAmount,
--- a/testing/web-platform/tests/payment-request/PaymentRequestUpdateEvent/updateWith-incremental-update-manual.https.html
+++ b/testing/web-platform/tests/payment-request/PaymentRequestUpdateEvent/updateWith-incremental-update-manual.https.html
@@ -9,16 +9,25 @@
 <script>
 setup({
   explicit_done: true,
   explicit_timeout: true,
 });
 
 const methods = [{
   supportedMethods: "basic-card",
+}, {
+  supportedMethods: "https://apple.com/apple-pay",
+  data: {
+    version: 3,
+    merchantIdentifier: "merchant.com.example",
+    countryCode: "US",
+    merchantCapabilities: ["supports3DS"],
+    supportedNetworks: ["visa"],
+  }
 }];
 
 const options = {
   requestShipping: true,
 };
 
 const initialDetails = {
   total: {
--- a/testing/web-platform/tests/payment-request/PaymentRequestUpdateEvent/updateWith-method-abort-update-manual.https.html
+++ b/testing/web-platform/tests/payment-request/PaymentRequestUpdateEvent/updateWith-method-abort-update-manual.https.html
@@ -13,18 +13,29 @@ setup({ explicit_done: true, explicit_ti
 const validMethod = Object.freeze({
   supportedMethods: "valid-but-wont-ever-match",
 });
 
 const validMethodBasicCard = Object.freeze({
   supportedMethods: "basic-card",
 });
 
+const applePay = Object.freeze({
+  supportedMethods: "https://apple.com/apple-pay",
+  data: {
+    version: 3,
+    merchantIdentifier: "merchant.com.example",
+    countryCode: "US",
+    merchantCapabilities: ["supports3DS"],
+    supportedNetworks: ["visa"],
+  }
+});
+
 // Methods
-const validMethods = Object.freeze([validMethodBasicCard, validMethod]);
+const validMethods = Object.freeze([validMethodBasicCard, validMethod, applePay]);
 
 // Amounts
 const validAmount = Object.freeze({
   currency: "USD",
   value: "1.00",
 });
 
 const invalidAmount = Object.freeze({
--- a/testing/web-platform/tests/payment-request/PaymentRequestUpdateEvent/updateWith-state-checks-manual.https.html
+++ b/testing/web-platform/tests/payment-request/PaymentRequestUpdateEvent/updateWith-state-checks-manual.https.html
@@ -1,18 +1,28 @@
 <!doctype html>
 <meta charset="utf8">
 <link rel="help" href="https://www.w3.org/TR/payment-request/#updatewith()-method">
 <title>updateWith() method - state machine checks</title>
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script>
 setup({ explicit_done: true, explicit_timeout: true });
+const applePay = Object.freeze({
+  supportedMethods: "https://apple.com/apple-pay",
+  data: {
+    version: 3,
+    merchantIdentifier: "merchant.com.example",
+    countryCode: "US",
+    merchantCapabilities: ["supports3DS"],
+    supportedNetworks: ["visa"],
+  }
+});
 const validMethod = Object.freeze({ supportedMethods: "basic-card" });
-const validMethods = Object.freeze([validMethod]);
+const validMethods = Object.freeze([validMethod, applePay]);
 const validAmount = Object.freeze({ currency: "USD", value: "5.00" });
 const validTotal = Object.freeze({
   label: "label",
   amount: validAmount,
 });
 const validShippingOption = Object.freeze({
   id: "a-shipping-option",
   label: "A shipping option",
--- a/testing/web-platform/tests/payment-request/PaymentRequestUpdateEvent/updatewith-method.https.html
+++ b/testing/web-platform/tests/payment-request/PaymentRequestUpdateEvent/updatewith-method.https.html
@@ -1,18 +1,28 @@
 <!DOCTYPE html>
 <!-- Copyright © 2017 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
 <meta charset="utf-8">
 <title>Test for PaymentRequestUpdateEvent's updateWith() method</title>
 <link rel="help" href="https://w3c.github.io/browser-payment-api/#updatewith-method">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script>
+const applePay = Object.freeze({
+  supportedMethods: "https://apple.com/apple-pay",
+  data: {
+    version: 3,
+    merchantIdentifier: "merchant.com.example",
+    countryCode: "US",
+    merchantCapabilities: ["supports3DS"],
+    supportedNetworks: ["visa"],
+  }
+});
 const basicCard = Object.freeze({ supportedMethods: "basic-card" });
-const defaultMethods = Object.freeze([basicCard]);
+const defaultMethods = Object.freeze([basicCard, applePay]);
 const defaultDetails = Object.freeze({
   total: {
     label: "Total",
     amount: {
       currency: "USD",
       value: "1.00",
     },
   },
--- a/testing/web-platform/tests/payment-request/algorithms-manual.https.html
+++ b/testing/web-platform/tests/payment-request/algorithms-manual.https.html
@@ -10,16 +10,26 @@
 setup({
   explicit_done: true,
   explicit_timeout: true,
 });
 const methods = [
   {
     supportedMethods: "basic-card",
   },
+  {
+    supportedMethods: "https://apple.com/apple-pay",
+    data: {
+      version: 3,
+      merchantIdentifier: "merchant.com.example",
+      countryCode: "US",
+      merchantCapabilities: ["supports3DS"],
+      supportedNetworks: ["visa"],
+    },
+  }
 ];
 const shippingOptions = {
   shippingOptions: [
     {
       id: "fail",
       label: "Option 1",
       amount: {
         currency: "USD",
--- a/testing/web-platform/tests/payment-request/billing-address-changed-manual.https.html
+++ b/testing/web-platform/tests/payment-request/billing-address-changed-manual.https.html
@@ -5,17 +5,26 @@
 <script>
   setup({
     explicit_done: true,
     explicit_timeout: true,
   });
 
   const methods = [
     { supportedMethods: "basic-card" },
-    { supportedMethods: "https://apple.com/apple-pay" },
+    {
+      supportedMethods: "https://apple.com/apple-pay",
+      data: {
+        version: 3,
+        merchantIdentifier: "merchant.com.example",
+        countryCode: "US",
+        merchantCapabilities: ["supports3DS"],
+        supportedNetworks: ["visa"],
+      },
+    },
   ];
 
   const details = {
     total: {
       label: "label",
       amount: { currency: "USD", value: "5.00" },
     },
   };
--- a/testing/web-platform/tests/payment-request/change-shipping-option-manual.https.html
+++ b/testing/web-platform/tests/payment-request/change-shipping-option-manual.https.html
@@ -4,17 +4,27 @@
 <title>Test for PaymentRequest shippingOption attribute</title>
 <link rel="help" href="https://w3c.github.io/payment-request/#shippingoption-attribute">
 <link rel="help" href="https://w3c.github.io/payment-request/#onshippingoptionchange-attribute">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script>
 setup({ explicit_done: true, explicit_timeout: true });
 const validMethod = Object.freeze({ supportedMethods: "basic-card" });
-const validMethods = Object.freeze([validMethod]);
+const applePayMethod = {
+  supportedMethods: "https://apple.com/apple-pay",
+  data: {
+    version: 3,
+    merchantIdentifier: "merchant.com.example",
+    countryCode: "US",
+    merchantCapabilities: ["supports3DS"],
+    supportedNetworks: ["visa"],
+  },
+};
+const validMethods = Object.freeze([validMethod, applePayMethod]);
 const validAmount = Object.freeze({ currency: "USD", value: "5.00" });
 const validTotal = Object.freeze({
   label: "label",
   amount: validAmount,
 });
 const validDetails = Object.freeze({ total: validTotal });
 
 const validShippingOption1 = Object.freeze({
--- a/testing/web-platform/tests/payment-request/change-shipping-option-select-last-manual.https.html
+++ b/testing/web-platform/tests/payment-request/change-shipping-option-select-last-manual.https.html
@@ -3,17 +3,26 @@
 <title>Test for PaymentDetailsBase's shippingOptions member</title>
 <link rel="help" href="https://w3c.github.io/payment-request/#dom-paymentdetailsbase-shippingoptions">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script>
 setup({ explicit_done: true, explicit_timeout: true });
 const validMethods = Object.freeze([
   { supportedMethods: "basic-card" },
-  { supportedMethods: "https://apple.com/apple-pay" },
+  {
+    supportedMethods: "https://apple.com/apple-pay",
+    data: {
+      version: 3,
+      merchantIdentifier: "merchant.com.example",
+      countryCode: "US",
+      merchantCapabilities: ["supports3DS"],
+      supportedNetworks: ["visa"],
+    },
+  },
 ]);
 const validAmount = Object.freeze({ currency: "USD", value: "5.00" });
 const validTotal = Object.freeze({
   label: "label",
   amount: validAmount,
 });
 const validDetails = Object.freeze({ total: validTotal });
 
--- a/testing/web-platform/tests/payment-request/onmerchantvalidation-attribute.https.html
+++ b/testing/web-platform/tests/payment-request/onmerchantvalidation-attribute.https.html
@@ -2,17 +2,26 @@
 <meta charset="utf-8">
 <title>Test for PaymentRequest's onmerchantvalidation attribute</title>
 <link rel="help" href="https://w3c.github.io/browser-payment-api/#dom-paymentrequest-onmerchantvalidation">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script>
 "use strict";
 const testMethod = Object.freeze({ supportedMethods: "not-a-real-method" });
-const applePay = Object.freeze({ supportedMethods: "https://apple.com/apple-pay" });
+const applePay = Object.freeze({
+  supportedMethods: "https://apple.com/apple-pay",
+  data: {
+    version: 3,
+    merchantIdentifier: "merchant.com.example",
+    countryCode: "US",
+    merchantCapabilities: ["supports3DS"],
+    supportedNetworks: ["visa"],
+  },
+});
 const defaultMethods = Object.freeze([testMethod, applePay]);
 const defaultDetails = Object.freeze({
   total: {
     label: "Total",
     amount: {
       currency: "USD",
       value: "1.00",
     },
--- a/testing/web-platform/tests/payment-request/onpaymentmenthodchange-attribute.https.html
+++ b/testing/web-platform/tests/payment-request/onpaymentmenthodchange-attribute.https.html
@@ -2,17 +2,26 @@
 <meta charset="utf-8">
 <title>Test for onpaymentmethodchange attribute</title>
 <link rel="help" href="https://w3c.github.io/browser-payment-api/#onpaymentmethodchange-attribute">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script>
 "use strict";
 const testMethod = Object.freeze({ supportedMethods: "not-a-real-method" });
-const applePay = Object.freeze({ supportedMethods: "https://apple.com/apple-pay" });
+const applePay = Object.freeze({
+  supportedMethods: "https://apple.com/apple-pay",
+  data: {
+    version: 3,
+    merchantIdentifier: "merchant.com.example",
+    countryCode: "US",
+    merchantCapabilities: ["supports3DS"],
+    supportedNetworks: ["visa"],
+  }
+});
 const defaultMethods = Object.freeze([testMethod, applePay]);
 const defaultDetails = Object.freeze({
   total: {
     label: "Total",
     amount: {
       currency: "USD",
       value: "1.00",
     },
--- a/testing/web-platform/tests/payment-request/payment-request-abort-method.https.html
+++ b/testing/web-platform/tests/payment-request/payment-request-abort-method.https.html
@@ -12,16 +12,23 @@ setup({
   // Ignore unhandled rejections resulting from .show()'s acceptPromise
   // not being explicitly handled.
   allow_uncaught_exception: true,
   explicit_timeout: true,
 });
 const basicCard = Object.freeze({ supportedMethods: "basic-card" });
 const applePay = Object.freeze({
   supportedMethods: "https://apple.com/apple-pay",
+  data: {
+    version: 3,
+    merchantIdentifier: "merchant.com.example",
+    countryCode: "US",
+    merchantCapabilities: ["supports3DS"],
+    supportedNetworks: ["visa"],
+  }
 });
 const defaultMethods = Object.freeze([basicCard, applePay]);
 const defaultDetails = Object.freeze({
   total: {
     label: "Total",
     amount: {
       currency: "USD",
       value: "1.00",
--- a/testing/web-platform/tests/payment-request/payment-request-canmakepayment-method-protection.https.html
+++ b/testing/web-platform/tests/payment-request/payment-request-canmakepayment-method-protection.https.html
@@ -3,17 +3,26 @@
 <title>Tests for PaymentRequest.canMakePayment() method</title>
 <link rel="help" href="https://w3c.github.io/browser-payment-api/#show-method">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src='/resources/testdriver-vendor.js'></script>
 <script src="/resources/testdriver.js"></script>
 <script>
 const basicCard = Object.freeze({ supportedMethods: "basic-card" });
-const applePay = Object.freeze({ supportedMethods: "https://apple.com/apple-pay" });
+const applePay = Object.freeze({
+  supportedMethods: "https://apple.com/apple-pay",
+  data: {
+    version: 3,
+    merchantIdentifier: "merchant.com.example",
+    countryCode: "US",
+    merchantCapabilities: ["supports3DS"],
+    supportedNetworks: ["visa"],
+  }
+});
 const defaultMethods = Object.freeze([basicCard, applePay]);
 const defaultDetails = Object.freeze({
   total: {
     label: "Total",
     amount: {
       currency: "USD",
       value: "1.00",
     },
--- a/testing/web-platform/tests/payment-request/payment-request-canmakepayment-method.https.html
+++ b/testing/web-platform/tests/payment-request/payment-request-canmakepayment-method.https.html
@@ -5,16 +5,23 @@
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src='/resources/testdriver-vendor.js'></script>
 <script src="/resources/testdriver.js"></script>
 <script>
 const basicCard = Object.freeze({ supportedMethods: "basic-card" });
 const applePay = Object.freeze({
   supportedMethods: "https://apple.com/apple-pay",
+  data: {
+    version: 3,
+    merchantIdentifier: "merchant.com.example",
+    countryCode: "US",
+    merchantCapabilities: ["supports3DS"],
+    supportedNetworks: ["visa"],
+  }
 });
 const defaultMethods = Object.freeze([basicCard, applePay]);
 const defaultDetails = Object.freeze({
   total: {
     label: "Total",
     amount: {
       currency: "USD",
       value: "1.00",
--- a/testing/web-platform/tests/payment-request/payment-request-constructor-crash.https.html
+++ b/testing/web-platform/tests/payment-request/payment-request-constructor-crash.https.html
@@ -23,31 +23,42 @@
         required DOMString currency;
         required DOMString value;
     };
 **/
 
 "use strict";
 const ABUSIVE_AMOUNT = 100000;
 
+const applePay = {
+  supportedMethods: "https://apple.com/apple-pay",
+  data: {
+    version: 3,
+    merchantIdentifier: "merchant.com.example",
+    countryCode: "US",
+    merchantCapabilities: ["supports3DS"],
+    supportedNetworks: ["visa"],
+  }
+};
+
 const basicCard = Object.freeze({
   supportedMethods: "basic-card",
 });
 
 const defaultAmount = Object.freeze({
   currency: "USD",
   value: "1.00",
 });
 
 const evilAmount = Object.freeze({
   currency: "USD",
   value: "1".repeat(ABUSIVE_AMOUNT),
 });
 
-const defaultMethods = Object.freeze([basicCard]);
+const defaultMethods = Object.freeze([basicCard, applePay]);
 
 const defaultTotal = Object.freeze({
   label: "label",
   amount: defaultAmount,
 });
 
 const evilTotal = Object.freeze({
   label: "a".repeat(ABUSIVE_AMOUNT),
--- a/testing/web-platform/tests/payment-request/payment-request-onshippingaddresschange-attribute.https.html
+++ b/testing/web-platform/tests/payment-request/payment-request-onshippingaddresschange-attribute.https.html
@@ -2,18 +2,28 @@
 <!-- Copyright © 2017 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
 <meta charset="utf-8">
 <title>Test for onshippingaddresschange attribute</title>
 <link rel="help" href="https://w3c.github.io/browser-payment-api/#onshippingaddresschange-attribute">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script>
 "use strict";
+const applePay = Object.freeze({
+  supportedMethods: "https://apple.com/apple-pay",
+  data: {
+    version: 3,
+    merchantIdentifier: "merchant.com.example",
+    countryCode: "US",
+    merchantCapabilities: ["supports3DS"],
+    supportedNetworks: ["visa"],
+  }
+});
 const basicCard = Object.freeze({ supportedMethods: "basic-card" });
-const defaultMethods = Object.freeze([basicCard]);
+const defaultMethods = Object.freeze([basicCard, applePay]);
 const defaultDetails = Object.freeze({
   total: {
     label: "Total",
     amount: {
       currency: "USD",
       value: "1.00",
     },
   },
--- a/testing/web-platform/tests/payment-request/payment-request-onshippingoptionchange-attribute.https.html
+++ b/testing/web-platform/tests/payment-request/payment-request-onshippingoptionchange-attribute.https.html
@@ -2,18 +2,28 @@
 <!-- Copyright © 2017 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
 <meta charset="utf-8">
 <title>Test for onshippingoptionchange attribute</title>
 <link rel="help" href="https://w3c.github.io/browser-payment-api/#onshippingoptionchange-attribute">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script>
 "use strict";
+const applePay = Object.freeze({
+  supportedMethods: "https://apple.com/apple-pay",
+  data: {
+    version: 3,
+    merchantIdentifier: "merchant.com.example",
+    countryCode: "US",
+    merchantCapabilities: ["supports3DS"],
+    supportedNetworks: ["visa"],
+  }
+});
 const basicCard = Object.freeze({ supportedMethods: "basic-card" });
-const defaultMethods = Object.freeze([basicCard]);
+const defaultMethods = Object.freeze([basicCard, applePay]);
 const defaultDetails = Object.freeze({
   total: {
     label: "Total",
     amount: {
       currency: "USD",
       value: "1.00",
     },
   },
--- a/testing/web-platform/tests/payment-request/payment-request-shippingType-attribute.https.html
+++ b/testing/web-platform/tests/payment-request/payment-request-shippingType-attribute.https.html
@@ -3,18 +3,28 @@
 <meta charset="utf-8">
 <title>Test for PaymentRequest's shippingType attribute</title>
 <link rel="help" href="https://w3c.github.io/payment-request/#shippingtype-attribute">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script>
 "use strict";
 const paymentShipingTypes = Object.freeze(["delivery", "pickup", "shipping"]);
+const applePay = Object.freeze({
+  supportedMethods: "https://apple.com/apple-pay",
+  data: {
+    version: 3,
+    merchantIdentifier: "merchant.com.example",
+    countryCode: "US",
+    merchantCapabilities: ["supports3DS"],
+    supportedNetworks: ["visa"],
+  }
+});
 const basicCard = Object.freeze({ supportedMethods: "basic-card" });
-const defaultMethods = Object.freeze([basicCard]);
+const defaultMethods = Object.freeze([basicCard, applePay]);
 const defaultDetails = Object.freeze({
   total: {
     label: "",
     amount: {
       currency: "USD",
       value: "1.00",
     },
   },
--- a/testing/web-platform/tests/payment-request/payment-request-show-method.https.html
+++ b/testing/web-platform/tests/payment-request/payment-request-show-method.https.html
@@ -5,17 +5,26 @@
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src="/resources/testdriver.js"></script>
 <script src="/resources/testdriver-vendor.js"></script>
 <script>
 "use strict";
 const defaultMethods = Object.freeze([
   { supportedMethods: "basic-card" },
-  { supportedMethods: "https://apple.com/apple-pay" },
+  {
+    supportedMethods: "https://apple.com/apple-pay",
+    data: {
+      version: 3,
+      merchantIdentifier: "merchant.com.example",
+      countryCode: "US",
+      merchantCapabilities: ["supports3DS"],
+      supportedNetworks: ["visa"],
+    }
+  },
 ]);
 
 const defaultDetails = Object.freeze({
   total: {
     label: "Total",
     amount: {
       currency: "USD",
       value: "1.00",
--- a/testing/web-platform/tests/payment-request/payment-response/helpers.js
+++ b/testing/web-platform/tests/payment-request/payment-response/helpers.js
@@ -1,15 +1,26 @@
 setup({ explicit_done: true, explicit_timeout: true });
 
+const applePay = Object.freeze({
+  supportedMethods: "https://apple.com/apple-pay",
+  data: {
+    version: 3,
+    merchantIdentifier: "merchant.com.example",
+    countryCode: "US",
+    merchantCapabilities: ["supports3DS"],
+    supportedNetworks: ["visa"],
+  }
+});
+
 const validMethod = Object.freeze({
   supportedMethods: "basic-card",
 });
 
-const validMethods = Object.freeze([validMethod]);
+const validMethods = Object.freeze([validMethod, applePay]);
 
 const validAmount = Object.freeze({
   currency: "USD",
   value: "1.00",
 });
 
 const validTotal = Object.freeze({
   label: "Valid total",
--- a/testing/web-platform/tests/payment-request/payment-response/rejects_if_not_active-manual.https.html
+++ b/testing/web-platform/tests/payment-request/payment-response/rejects_if_not_active-manual.https.html
@@ -6,17 +6,27 @@
 <script src="/resources/testharnessreport.js"></script>
 <link rel="help" href="https://w3c.github.io/payment-request/#dom-paymentresponse-retry">
 <body>
 <script>
 setup({ explicit_done: true, explicit_timeout: true });
 const validMethod = Object.freeze({
   supportedMethods: "basic-card",
 });
-const validMethods = Object.freeze([validMethod]);
+const applePay = Object.freeze({
+  supportedMethods: "https://apple.com/apple-pay",
+  data: {
+    version: 3,
+    merchantIdentifier: "merchant.com.example",
+    countryCode: "US",
+    merchantCapabilities: ["supports3DS"],
+    supportedNetworks: ["visa"],
+  }
+});
+const validMethods = Object.freeze([validMethod, applePay]);
 const validAmount = Object.freeze({
   currency: "USD",
   value: "5.00",
 });
 const validTotal = Object.freeze({
   label: "Total due",
   amount: validAmount,
 });
--- a/testing/web-platform/tests/payment-request/rejects_if_not_active.https.html
+++ b/testing/web-platform/tests/payment-request/rejects_if_not_active.https.html
@@ -4,20 +4,30 @@
 <title>PaymentRequest show() rejects if doc is not fully active</title>
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src="/resources/testdriver.js"></script>
 <script src="/resources/testdriver-vendor.js"></script>
 <link rel="help" href="https://w3c.github.io/payment-request/#dom-paymentrequest-show()">
 <body>
 <script>
+const applePay = Object.freeze({
+  supportedMethods: "https://apple.com/apple-pay",
+  data: {
+    version: 3,
+    merchantIdentifier: "merchant.com.example",
+    countryCode: "US",
+    merchantCapabilities: ["supports3DS"],
+    supportedNetworks: ["visa"],
+  }
+});
 const validMethod = Object.freeze({
   supportedMethods: "basic-card",
 });
-const validMethods = Object.freeze([validMethod]);
+const validMethods = Object.freeze([validMethod, applePay]);
 const validAmount = Object.freeze({
   currency: "USD",
   value: "5.00",
 });
 const validTotal = Object.freeze({
   label: "Total due",
   amount: validAmount,
 });
--- a/testing/web-platform/tests/payment-request/shipping-address-changed-manual.https.html
+++ b/testing/web-platform/tests/payment-request/shipping-address-changed-manual.https.html
@@ -3,18 +3,28 @@
 <meta charset="utf-8">
 <title>Test for PaymentRequest shippingAddress attribute</title>
 <link rel="help" href="https://w3c.github.io/payment-request/#shippingaddress-attribute">
 <link rel="help" href="https://w3c.github.io/payment-request/#onshippingaddresschange-attribute">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script>
 setup({ explicit_done: true, explicit_timeout: true });
+const applePay = Object.freeze({
+  supportedMethods: "https://apple.com/apple-pay",
+  data: {
+    version: 3,
+    merchantIdentifier: "merchant.com.example",
+    countryCode: "US",
+    merchantCapabilities: ["supports3DS"],
+    supportedNetworks: ["visa"],
+  }
+});
 const validMethod = Object.freeze({ supportedMethods: "basic-card" });
-const validMethods = Object.freeze([validMethod]);
+const validMethods = Object.freeze([validMethod, applePay]);
 const validAmount = Object.freeze({ currency: "USD", value: "5.00" });
 const validTotal = Object.freeze({
   label: "label",
   amount: validAmount,
 });
 const validShippingOption = Object.freeze({
   id: "valid",
   label: "Shipping Option",
--- a/testing/web-platform/tests/payment-request/show-method-optional-promise-rejects-manual.https.html
+++ b/testing/web-platform/tests/payment-request/show-method-optional-promise-rejects-manual.https.html
@@ -19,16 +19,23 @@
   });
 
   const validMethodBasicCard = Object.freeze({
     supportedMethods: "basic-card",
   });
 
   const validMethodApplePay = Object.freeze({
     supportedMethods: "https://apple.com/apple-pay",
+    data: {
+      version: 3,
+      merchantIdentifier: "merchant.com.example",
+      countryCode: "US",
+      merchantCapabilities: ["supports3DS"],
+      supportedNetworks: ["visa"],
+    }
   });
 
   // Methods
   const validMethods = Object.freeze([
     validMethodBasicCard,
     validMethod,
     validMethodApplePay,
   ]);
--- a/testing/web-platform/tests/payment-request/show-method-optional-promise-resolves-manual.https.html
+++ b/testing/web-platform/tests/payment-request/show-method-optional-promise-resolves-manual.https.html
@@ -18,16 +18,23 @@ const validMethods = Object.freeze([
   {
     supportedMethods: "valid-but-wont-ever-match",
   },
   {
     supportedMethods: "basic-card",
   },
   {
     supportedMethods: "https://apple.com/apple-pay",
+    data: {
+      version: 3,
+      merchantIdentifier: "merchant.com.example",
+      countryCode: "US",
+      merchantCapabilities: ["supports3DS"],
+      supportedNetworks: ["visa"],
+    }
   },
 ]);
 
 // Amounts
 const failAmount = Object.freeze({
   currency: "USD",
   value: "1.00",
 });
--- a/testing/web-platform/tests/payment-request/show-method-postmessage-iframe.html
+++ b/testing/web-platform/tests/payment-request/show-method-postmessage-iframe.html
@@ -1,14 +1,23 @@
 <h1>This iframe calls shows() via postMessage()</h1>
 <script>
 "use strict";
 const defaultMethods = Object.freeze([
   { supportedMethods: "basic-card" },
-  { supportedMethods: "https://apple.com/apple-pay" },
+  {
+    supportedMethods: "https://apple.com/apple-pay",
+    data: {
+      version: 3,
+      merchantIdentifier: "merchant.com.example",
+      countryCode: "US",
+      merchantCapabilities: ["supports3DS"],
+      supportedNetworks: ["visa"],
+    }
+  },
 ]);
 
 const defaultDetails = Object.freeze({
   id: "fail",
   total: {
     label: "Total",
     amount: {
       currency: "USD",
--- a/testing/web-platform/tests/payment-request/show-method-postmessage-manual.https.html
+++ b/testing/web-platform/tests/payment-request/show-method-postmessage-manual.https.html
@@ -9,17 +9,26 @@
 setup({
   explicit_done: true,
   explicit_timeout: true,
   allow_uncaught_exception: true,
 });
 
 const defaultMethods = Object.freeze([
   { supportedMethods: "basic-card" },
-  { supportedMethods: "https://apple.com/apple-pay" },
+  {
+    supportedMethods: "https://apple.com/apple-pay",
+    data: {
+      version: 3,
+      merchantIdentifier: "merchant.com.example",
+      countryCode: "US",
+      merchantCapabilities: ["supports3DS"],
+      supportedNetworks: ["visa"],
+    }
+  },
 ]);
 
 const defaultDetails = Object.freeze({
   id: "fail",
   total: {
     label: "Total",
     amount: {
       currency: "USD",
--- a/testing/web-platform/tests/payment-request/updateWith-method-pmi-handling-manual.https.html
+++ b/testing/web-platform/tests/payment-request/updateWith-method-pmi-handling-manual.https.html
@@ -3,21 +3,31 @@
 <meta charset="utf-8">
 <title>Test for validity of payment method identifiers when calling updateWith() method</title>
 <link rel="help" href="https://www.w3.org/TR/payment-request/#updatewith()-method">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script>
 "use strict";
 setup({ explicit_done: true, explicit_timeout: true });
+const applePay = Object.freeze({
+  supportedMethods: "https://apple.com/apple-pay",
+  data: {
+    version: 3,
+    merchantIdentifier: "merchant.com.example",
+    countryCode: "US",
+    merchantCapabilities: ["supports3DS"],
+    supportedNetworks: ["visa"],
+  }
+});
 const validMethod = Object.freeze({
   supportedMethods: "https://:@wpt.fyi:443/payment-request",
 });
 
-const validMethods = Object.freeze([validMethod]);
+const validMethods = Object.freeze([validMethod, applePay]);
 
 const validAmount = Object.freeze({
   currency: "USD",
   value: "1.0",
 });
 
 const validTotal = Object.freeze({
   label: "Default Total",
--- a/testing/web-platform/tests/payment-request/user-abort-algorithm-manual.https.html
+++ b/testing/web-platform/tests/payment-request/user-abort-algorithm-manual.https.html
@@ -12,20 +12,30 @@ setup({ explicit_done: true, explicit_ti
 const validAmount = Object.freeze({
   currency: "USD",
   value: "1.0",
 });
 const validTotal = Object.freeze({
   label: "Total due",
   amount: validAmount,
 });
+const applePay = Object.freeze({
+  supportedMethods: "https://apple.com/apple-pay",
+  data: {
+    version: 3,
+    merchantIdentifier: "merchant.com.example",
+    countryCode: "US",
+    merchantCapabilities: ["supports3DS"],
+    supportedNetworks: ["visa"],
+  }
+});
 const validMethod = Object.freeze({
   supportedMethods: "basic-card",
 });
-const validMethods = Object.freeze([validMethod]);
+const validMethods = Object.freeze([validMethod, applePay]);
 const validDetails = Object.freeze({
   total: validTotal,
 });
 
 test(() => {
   try {
     new PaymentRequest(validMethods, validDetails);
   } catch (err) {
--- a/testing/web-platform/tests/payment-request/user-accepts-payment-request-algo-manual.https.html
+++ b/testing/web-platform/tests/payment-request/user-accepts-payment-request-algo-manual.https.html
@@ -3,23 +3,33 @@
 <link rel="help" href="https://w3c.github.io/payment-request/#user-accepts-the-payment-request-algorithm">
 <title>
   User accepts the payment request algorithm
 </title>
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script>
 setup({ explicit_done: true, explicit_timeout: true });
+const applePay = Object.freeze({
+  supportedMethods: "https://apple.com/apple-pay",
+  data: {
+    version: 3,
+    merchantIdentifier: "merchant.com.example",
+    countryCode: "US",
+    merchantCapabilities: ["supports3DS"],
+    supportedNetworks: ["visa"],
+  }
+});
 const basicCardMethod = Object.freeze({
   supportedMethods: "basic-card",
 });
 const validMethod = Object.freeze({
   supportedMethods: "this-is-just-for-testings-will-never-match",
 });
-const methods = Object.freeze([basicCardMethod, validMethod]);
+const methods = Object.freeze([basicCardMethod, validMethod, applePay]);
 const validAmount = Object.freeze({
   currency: "USD",
   value: "5.00",
 });
 const shippingOptions = [
   Object.freeze({
     id: "option1",
     label: "Option 1",