summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/payment-request/show-method-optional-promise-rejects.https.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/payment-request/show-method-optional-promise-rejects.https.html')
-rw-r--r--testing/web-platform/tests/payment-request/show-method-optional-promise-rejects.https.html40
1 files changed, 39 insertions, 1 deletions
diff --git a/testing/web-platform/tests/payment-request/show-method-optional-promise-rejects.https.html b/testing/web-platform/tests/payment-request/show-method-optional-promise-rejects.https.html
index 4a41f28fc9..3b42965503 100644
--- a/testing/web-platform/tests/payment-request/show-method-optional-promise-rejects.https.html
+++ b/testing/web-platform/tests/payment-request/show-method-optional-promise-rejects.https.html
@@ -84,6 +84,10 @@
total: invalidNegativeTotal,
});
+ // PaymentOptions
+ const validOptions = Object.freeze({
+ requestShipping: true,
+ });
// PaymentItem
const validPaymentItem = Object.freeze({
@@ -100,6 +104,24 @@
const validPaymentItems = Object.freeze([validPaymentItem]);
const invalidPaymentItems = Object.freeze([invalidPaymentItem]);
+ // PaymentShippingOption
+ const invalidShippingOption = Object.freeze({
+ id: "abc",
+ label: "Invalid shipping option",
+ amount: invalidAmount,
+ selected: true,
+ });
+
+ // PaymentShippingOptions
+ const validShippingOption = Object.freeze({
+ id: "abc",
+ label: "valid shipping option",
+ amount: validAmount,
+ });
+
+ const validShippingOptions = Object.freeze([validShippingOption]);
+ const invalidShippingOptions = Object.freeze([invalidShippingOption]);
+
// PaymentDetailsModifier
const validModifier = Object.freeze({
additionalDisplayItems: validPaymentItems,
@@ -144,7 +166,8 @@
promise_test(async (t) => {
const request = new PaymentRequest(
validMethods,
- validDetails
+ validDetails,
+ validOptions
);
await test_driver.bless("Payment request");
const detailsPromise = Promise.resolve(badDetails);
@@ -194,6 +217,21 @@
);
testBadUpdate(
+ "Updating with duplicate shippingOptions (same IDs) results in a TypeError.",
+ {
+ ...validDetails,
+ shippingOptions: [validShippingOption, validShippingOption],
+ },
+ TypeError
+ );
+
+ testBadUpdate(
+ "Updating with a shippingOption with an invalid currency value results in a RangError.",
+ { ...validDetails, shippingOptions: invalidShippingOptions },
+ RangeError
+ );
+
+ testBadUpdate(
"Must throw a RangeError when a modifier's total item has an invalid currency.",
{ ...validDetails, modifiers: [modifierWithInvalidTotal, validModifier] },
RangeError