mirror of
https://github.com/servo/servo.git
synced 2025-07-13 02:13:40 +01:00
126 lines
4 KiB
HTML
126 lines
4 KiB
HTML
<!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>
|