summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/payment-request
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /testing/web-platform/tests/payment-request
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'testing/web-platform/tests/payment-request')
-rw-r--r--testing/web-platform/tests/payment-request/OWNERS1
-rw-r--r--testing/web-platform/tests/payment-request/interfaces.https.html126
-rw-r--r--testing/web-platform/tests/payment-request/payment-request-in-iframe.html18
3 files changed, 145 insertions, 0 deletions
diff --git a/testing/web-platform/tests/payment-request/OWNERS b/testing/web-platform/tests/payment-request/OWNERS
new file mode 100644
index 000000000..35ae0f6c0
--- /dev/null
+++ b/testing/web-platform/tests/payment-request/OWNERS
@@ -0,0 +1 @@
+@halindrome
diff --git a/testing/web-platform/tests/payment-request/interfaces.https.html b/testing/web-platform/tests/payment-request/interfaces.https.html
new file mode 100644
index 000000000..2d0e29ec1
--- /dev/null
+++ b/testing/web-platform/tests/payment-request/interfaces.https.html
@@ -0,0 +1,126 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>Payment Request interface IDL tests</title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src=/resources/WebIDLParser.js></script>
+<script src=/resources/idlharness.js></script>
+<script type=text/plain class=untested>
+interface EventHandler {};
+interface Event {};
+interface EventInit {};
+interface EventTarget {};
+</script>
+<script type=text/plain>
+[Constructor(sequence<PaymentMethodData> methodData, PaymentDetails details, optional PaymentOptions options), SecureContext]
+interface PaymentRequest : EventTarget {
+ Promise<PaymentResponse> show();
+ Promise<void> abort();
+
+ readonly attribute PaymentAddress? shippingAddress;
+ readonly attribute DOMString? shippingOption;
+
+ // Supports "shippingaddresschange" event
+ attribute EventHandler onshippingaddresschange;
+
+ // Supports "shippingoptionchange" event
+ attribute EventHandler onshippingoptionchange;
+};
+
+dictionary PaymentMethodData {
+ required sequence<DOMString> supportedMethods;
+ object data;
+};
+
+dictionary PaymentCurrencyAmount {
+ required DOMString currency;
+ required DOMString value;
+};
+
+dictionary PaymentDetails {
+ PaymentItem total;
+ sequence<PaymentItem> displayItems;
+ sequence<PaymentShippingOption> shippingOptions;
+ sequence<PaymentDetailsModifier> modifiers;
+};
+
+dictionary PaymentDetailsModifier {
+ required sequence<DOMString> supportedMethods;
+ PaymentItem total;
+ sequence<PaymentItem> additionalDisplayItems;
+};
+
+dictionary PaymentOptions {
+ boolean requestPayerEmail = false;
+ boolean requestPayerPhone = false;
+ boolean requestShipping = false;
+};
+
+dictionary PaymentItem {
+ required DOMString label;
+ required PaymentCurrencyAmount amount;
+};
+
+interface PaymentAddress {
+ readonly attribute DOMString country;
+ readonly attribute FrozenArray<DOMString> addressLine;
+ readonly attribute DOMString region;
+ readonly attribute DOMString city;
+ readonly attribute DOMString dependentLocality;
+ readonly attribute DOMString postalCode;
+ readonly attribute DOMString sortingCode;
+ readonly attribute DOMString languageCode;
+ readonly attribute DOMString organization;
+ readonly attribute DOMString recipient;
+ readonly attribute DOMString careOf;
+ readonly attribute DOMString phone;
+};
+
+dictionary PaymentShippingOption {
+ required DOMString id;
+ required DOMString label;
+ required PaymentCurrencyAmount amount;
+ boolean selected = false;
+};
+
+enum PaymentComplete {
+ "success",
+ "fail",
+ ""
+};
+
+interface PaymentResponse {
+ readonly attribute DOMString methodName;
+ readonly attribute object details;
+ readonly attribute PaymentAddress? shippingAddress;
+ readonly attribute DOMString? shippingOption;
+ readonly attribute DOMString? payerEmail;
+ readonly attribute DOMString? payerPhone;
+
+ Promise<void> complete(optional PaymentComplete result = "");
+};
+
+[Constructor(DOMString type, optional PaymentRequestUpdateEventInit eventInitDict)]
+interface PaymentRequestUpdateEvent : Event {
+ void updateWith(Promise<PaymentDetails> d);
+};
+
+dictionary PaymentRequestUpdateEventInit : EventInit {
+};
+</script>
+
+<script>
+"use strict";
+var idlArray = new IdlArray();
+[].forEach.call(document.querySelectorAll("script[type=text\\/plain]"), function(node) {
+ if (node.className == "untested") {
+ idlArray.add_untested_idls(node.textContent);
+ } else {
+ idlArray.add_idls(node.textContent);
+ }
+});
+idlArray.add_objects({
+ PaymentRequest: ["new PaymentRequest([{supportedMethods: ['foo']}], {total: {label: 'bar', amount: {currency: 'BAZ', value: '0'}}})"]
+});
+idlArray.test();
+</script>
diff --git a/testing/web-platform/tests/payment-request/payment-request-in-iframe.html b/testing/web-platform/tests/payment-request/payment-request-in-iframe.html
new file mode 100644
index 000000000..9ca9f4b84
--- /dev/null
+++ b/testing/web-platform/tests/payment-request/payment-request-in-iframe.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<!-- Copyright © 2016 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
+<meta charset="utf-8">
+<title>Test for PaymentRequest in an iframe (see also
+https://github.com/w3c/browser-payment-api/issues/2)</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<iframe srcdoc="
+<!DOCTYPE html>
+<meta charset='utf-8'>
+<script>
+window.top.test(function() {
+ window.top.assert_throws({name: 'SecurityError'}, function() {
+ new PaymentRequest([{supportedMethods: ['foo']}], {total: {label: 'label', amount: {currency: 'USD', value: '5.00'}}});
+ }, 'If the browsing context of the script calling the constructor is not a top-level browsing context, then throw a SecurityError.');
+});
+</script>
+"></iframe>