All Results

Test files: 45; Total subtests: 295

Test Files

  1. /payment-request/MerchantValidationEvent/complete-method.https.html
  2. /payment-request/MerchantValidationEvent/constructor.http.html
  3. /payment-request/MerchantValidationEvent/constructor.https.html
  4. /payment-request/PaymentMethodChangeEvent/methodDetails-attribute.https.html
  5. /payment-request/PaymentMethodChangeEvent/methodName-attribute.https.html
  6. /payment-request/PaymentRequestUpdateEvent/constructor.http.html
  7. /payment-request/PaymentRequestUpdateEvent/constructor.https.html
  8. /payment-request/PaymentRequestUpdateEvent/updatewith-method.https.html
  9. /payment-request/allowpaymentrequest/active-document-cross-origin.https.sub.html
  10. /payment-request/allowpaymentrequest/active-document-same-origin.https.html
  11. /payment-request/allowpaymentrequest/allowpaymentrequest-attribute-cross-origin-bc-containers.https.html
  12. /payment-request/allowpaymentrequest/allowpaymentrequest-attribute-same-origin-bc-containers.https.html
  13. /payment-request/allowpaymentrequest/basic.https.html
  14. /payment-request/allowpaymentrequest/no-attribute-cross-origin-bc-containers.https.html
  15. /payment-request/allowpaymentrequest/no-attribute-same-origin-bc-containers.https.html
  16. /payment-request/allowpaymentrequest/removing-allowpaymentrequest.https.sub.html
  17. /payment-request/allowpaymentrequest/setting-allowpaymentrequest-timing.https.sub.html
  18. /payment-request/allowpaymentrequest/setting-allowpaymentrequest.https.sub.html
  19. /payment-request/constructor_convert_method_data.https.html
  20. /payment-request/historical.https.html
  21. /payment-request/idlharness.https.window.html
  22. /payment-request/onmerchantvalidation-attribute.https.html
  23. /payment-request/onpaymentmenthodchange-attribute.https.html
  24. /payment-request/payment-is-showing.https.html
  25. /payment-request/payment-request-abort-method.https.html
  26. /payment-request/payment-request-canmakepayment-method-protection.https.html
  27. /payment-request/payment-request-canmakepayment-method.https.html
  28. /payment-request/payment-request-constructor-thcrash.https.html
  29. /payment-request/payment-request-constructor.https.html
  30. /payment-request/payment-request-ctor-currency-code-checks.https.html
  31. /payment-request/payment-request-ctor-pmi-handling.https.html
  32. /payment-request/payment-request-hasenrolledinstrument-method-protection.tentative.https.html
  33. /payment-request/payment-request-hasenrolledinstrument-method.tentative.https.html
  34. /payment-request/payment-request-id-attribute.https.html
  35. /payment-request/payment-request-insecure.http.html
  36. /payment-request/payment-request-not-exposed.https.worker.html
  37. /payment-request/payment-request-onshippingaddresschange-attribute.https.html
  38. /payment-request/payment-request-onshippingoptionchange-attribute.https.html
  39. /payment-request/payment-request-shippingAddress-attribute.https.html
  40. /payment-request/payment-request-shippingOption-attribute.https.html
  41. /payment-request/payment-request-shippingType-attribute.https.html
  42. /payment-request/payment-request-show-method.https.html
  43. /payment-request/payment-response/onpayerdetailchange-attribute.https.html
  44. /payment-request/rejects_if_not_active.https.html
  45. /payment-request/payment-request-constructor-crash.https.html
Test Show/Hide MessagesCH81ED81SF13SI94
/payment-request/MerchantValidationEvent/complete-method.https.htmlOKOKOKOK
If event's isTrusted attribute is false, then then throw an InvalidStateError DOMException.PASSFAILPASSFAIL
/payment-request/MerchantValidationEvent/constructor.http.htmlOKOKOKOK
MerchantValidationEvent constructor must not be exposed in insecure contextPASSPASSPASSPASS
/payment-request/MerchantValidationEvent/constructor.https.htmlOKOKOKOK
MerchantValidationEvent can be constructed in secure-context.PASSFAILPASSFAIL
MerchantValidationEvent can be constructed with an EventInitDict, even if not trusted.PASSFAILPASSFAIL
MerchantValidationEvent can be constructed with valid PMIsPASSFAILPASSFAIL
MerchantValidationEvent can be dispatched, even if not trusted.PASSFAILPASSFAIL
MerchantValidationEvent can't be constructed with invalid PMIsPASSFAILPASSFAIL
Must have a methodName IDL attribute, which is initialized with to the methodName dictionary value.PASSFAILPASSFAIL
Must have a validationURL IDL attribute, which is initialized with to the validationURL dictionary value.PASSFAILPASSFAIL
Must throw TypeError if initialized with an invalid URL.PASSFAILPASSFAIL
Relative validationURLs use the document as the base.PASSFAILPASSFAIL
Relative validationURLs use the document.baseURI as the base.PASSFAILFAIL-
When no methodName is passed, methodName attribute defaults to the empty stringPASSFAILPASSFAIL
/payment-request/PaymentMethodChangeEvent/methodDetails-attribute.https.htmlOKOKOKOK
Must have a methodDetails IDL attribute, which is initialized with to the methodName dictionary valuePASSPASSPASSFAIL
The methodDetails member defaults to nullPASSPASSPASSFAIL
/payment-request/PaymentMethodChangeEvent/methodName-attribute.https.htmlOKOKOKOK
Must have a methodName IDL attribute, which is initialized with to the methodName dictionary valuePASSPASSPASSFAIL
When no dictionary is passed, the methodName member defaults to the empty stringPASSPASSPASSFAIL
/payment-request/PaymentRequestUpdateEvent/constructor.http.htmlOKOKOKOK
PaymentRequestUpdateEvent constructor must not be exposed in insecure contextPASSPASSPASSPASS
/payment-request/PaymentRequestUpdateEvent/constructor.https.htmlOKOKOKOK
PaymentRequestUpdateEvent can be constructed in secure-contextPASSPASSPASSPASS
PaymentRequestUpdateEvent can be constructed with an EventInitDict, even if not trustedPASSPASSPASSPASS
PaymentRequestUpdateEvent can be dispatched, even if not trustedPASSPASSPASSPASS
/payment-request/PaymentRequestUpdateEvent/updatewith-method.https.htmlOKOKOKOK
Calling .updateWith() with a dispatched, untrusted event, throws "InvalidStateError"PASSPASSPASSPASS
Calling .updateWith() with an undispatched untrusted event throws "InvalidStateError"PASSPASSPASSPASS
Let target be the request which is dispatching the event.PASSPASSPASSPASS
/payment-request/allowpaymentrequest/active-document-cross-origin.https.sub.htmlOKOKTIMEOUTOK
PaymentRequest <iframe allowpaymentrequest> in non-active document (cross-origin)PASSPASSTIMEOUTPASS
/payment-request/allowpaymentrequest/active-document-same-origin.https.htmlOKOKOKOK
PaymentRequest <iframe allowpaymentrequest> in non-active document (same-origin)PASSPASSPASSPASS
/payment-request/allowpaymentrequest/allowpaymentrequest-attribute-cross-origin-bc-containers.https.htmlOKOKTIMEOUTOK
embedPASSPASSTIMEOUTPASS
framePASSPASSTIMEOUTPASS
iframePASSPASSTIMEOUTPASS
objectPASSPASSTIMEOUTPASS
/payment-request/allowpaymentrequest/allowpaymentrequest-attribute-same-origin-bc-containers.https.htmlOKOKOKOK
embedPASSPASSPASSPASS
framePASSPASSPASSPASS
iframePASSPASSPASSPASS
objectPASSPASSPASSPASS
/payment-request/allowpaymentrequest/basic.https.htmlOKOKOKOK
PaymentRequest <iframe allowpaymentrequest> basicPASSPASSFAILPASS
/payment-request/allowpaymentrequest/no-attribute-cross-origin-bc-containers.https.htmlOKOKTIMEOUTOK
embedPASSPASSTIMEOUTPASS
framePASSPASSTIMEOUTPASS
iframePASSPASSTIMEOUTPASS
objectPASSPASSTIMEOUTPASS
/payment-request/allowpaymentrequest/no-attribute-same-origin-bc-containers.https.htmlOKOKOKOK
embedPASSPASSPASSPASS
framePASSPASSPASSPASS
iframePASSPASSPASSPASS
objectPASSPASSPASSPASS
/payment-request/allowpaymentrequest/removing-allowpaymentrequest.https.sub.htmlOKOKTIMEOUTOK
PaymentRequest removing allowpaymentrequest after load and then navigatingPASSPASSTIMEOUTPASS
/payment-request/allowpaymentrequest/setting-allowpaymentrequest-timing.https.sub.htmlOKOKTIMEOUTOK
PaymentRequest setting allowpaymentrequest after document creation, before responsePASSPASS-FAIL
/payment-request/allowpaymentrequest/setting-allowpaymentrequest.https.sub.htmlOKOKTIMEOUTOK
PaymentRequest setting allowpaymentrequest after load and then navigatingPASSPASSTIMEOUTPASS
/payment-request/constructor_convert_method_data.https.htmlOKOKOKOK
Converts PaymentMethodData's data to mandated IDL type during PaymentRequest construction.PASSPASSFAILFAIL
Smoke test.PASSPASSPASSPASS
Tries to convert data member during Payment Request construction, irrespective of PMI.PASSPASSPASSPASS
/payment-request/historical.https.htmlOKOKOKOK
careOf in PaymentAddressPASSPASSPASSPASS
languageCode in PaymentAddressPASSPASSPASSFAIL
paymentRequestID in PaymentRequestPASSPASSPASSPASS
paymentRequestID in PaymentResponsePASSPASSPASSPASS
paymentRequestId in PaymentRequestPASSPASSPASSPASS
paymentRequestId in PaymentResponsePASSPASSPASSPASS
regionCode in PaymentAddressPASSPASSPASSPASS
supportedMethods must not support sequence<DOMString>PASSPASSPASSFAIL
totalAmount in PaymentResponsePASSPASSPASSPASS
/payment-request/idlharness.https.window.htmlOKOKOKOK
MerchantValidationEvent interface object lengthPASSFAILPASSFAIL
MerchantValidationEvent interface object namePASSFAILPASSFAIL
MerchantValidationEvent interface: attribute methodNamePASSFAILPASSFAIL
MerchantValidationEvent interface: attribute validationURLPASSFAILPASSFAIL
MerchantValidationEvent interface: calling complete([object Object]) on new MerchantValidationEvent("merchantvalidation") with too few arguments must throw TypeErrorPASSFAILPASSFAIL
MerchantValidationEvent interface: existence and properties of interface objectPASSFAILPASSFAIL
MerchantValidationEvent interface: existence and properties of interface prototype objectPASSFAILPASSFAIL
MerchantValidationEvent interface: existence and properties of interface prototype object's "constructor" propertyPASSFAILPASSFAIL
MerchantValidationEvent interface: existence and properties of interface prototype object's @@unscopables propertyPASSFAILPASSFAIL
MerchantValidationEvent interface: new MerchantValidationEvent("merchantvalidation") must inherit property "complete([object Object])" with the proper typePASSFAILPASSFAIL
MerchantValidationEvent interface: new MerchantValidationEvent("merchantvalidation") must inherit property "methodName" with the proper typePASSFAILPASSFAIL
MerchantValidationEvent interface: new MerchantValidationEvent("merchantvalidation") must inherit property "validationURL" with the proper typePASSFAILPASSFAIL
MerchantValidationEvent interface: operation complete([object Object])PASSFAILPASSFAIL
MerchantValidationEvent must be primary interface of new MerchantValidationEvent("merchantvalidation")PASSFAILPASSFAIL
PaymentAddress interface object lengthPASSPASSPASSPASS
PaymentAddress interface object namePASSPASSPASSPASS
PaymentAddress interface: attribute addressLinePASSPASSPASSPASS
PaymentAddress interface: attribute cityPASSPASSPASSPASS
PaymentAddress interface: attribute countryPASSPASSPASSPASS
PaymentAddress interface: attribute dependentLocalityPASSPASSPASSPASS
PaymentAddress interface: attribute organizationPASSPASSPASSPASS
PaymentAddress interface: attribute phonePASSPASSPASSPASS
PaymentAddress interface: attribute postalCodePASSPASSPASSPASS
PaymentAddress interface: attribute recipientPASSPASSPASSPASS
PaymentAddress interface: attribute regionPASSPASSPASSPASS
PaymentAddress interface: attribute sortingCodePASSPASSPASSPASS
PaymentAddress interface: existence and properties of interface objectPASSPASSPASSPASS
PaymentAddress interface: existence and properties of interface prototype objectPASSPASSPASSPASS
PaymentAddress interface: existence and properties of interface prototype object's "constructor" propertyPASSPASSPASSPASS
PaymentAddress interface: existence and properties of interface prototype object's @@unscopables propertyPASSPASSPASSPASS
PaymentAddress interface: operation toJSON()PASSPASSPASSPASS
PaymentMethodChangeEvent interface object lengthPASSPASSPASSFAIL
PaymentMethodChangeEvent interface object namePASSPASSPASSFAIL
PaymentMethodChangeEvent interface: attribute methodDetailsPASSPASSPASSFAIL
PaymentMethodChangeEvent interface: attribute methodNamePASSPASSPASSFAIL
PaymentMethodChangeEvent interface: existence and properties of interface objectPASSPASSPASSFAIL
PaymentMethodChangeEvent interface: existence and properties of interface prototype objectPASSPASSPASSFAIL
PaymentMethodChangeEvent interface: existence and properties of interface prototype object's "constructor" propertyPASSPASSPASSFAIL
PaymentMethodChangeEvent interface: existence and properties of interface prototype object's @@unscopables propertyPASSPASSPASSFAIL
PaymentMethodChangeEvent interface: new PaymentMethodChangeEvent("paymentmethodchange") must inherit property "methodDetails" with the proper typePASSPASSPASSFAIL
PaymentMethodChangeEvent interface: new PaymentMethodChangeEvent("paymentmethodchange") must inherit property "methodName" with the proper typePASSPASSPASSFAIL
PaymentMethodChangeEvent must be primary interface of new PaymentMethodChangeEvent("paymentmethodchange")PASSPASSPASSFAIL
PaymentRequest interface object lengthPASSPASSPASSPASS
PaymentRequest interface object namePASSPASSPASSPASS
PaymentRequest interface: attribute idPASSPASSPASSPASS
PaymentRequest interface: attribute onmerchantvalidationFAILFAILPASSFAIL
PaymentRequest interface: attribute onpaymentmethodchangePASSPASSPASSFAIL
PaymentRequest interface: attribute onshippingaddresschangePASSPASSPASSPASS
PaymentRequest interface: attribute onshippingoptionchangePASSPASSPASSPASS
PaymentRequest interface: attribute shippingAddressPASSPASSPASSPASS
PaymentRequest interface: attribute shippingOptionPASSPASSPASSPASS
PaymentRequest interface: attribute shippingTypePASSPASSPASSPASS
PaymentRequest interface: calling show([object Object]) on paymentRequest with too few arguments must throw TypeErrorPASSPASSPASSPASS
PaymentRequest interface: existence and properties of interface objectPASSPASSPASSPASS
PaymentRequest interface: existence and properties of interface prototype objectPASSPASSPASSPASS
PaymentRequest interface: existence and properties of interface prototype object's "constructor" propertyPASSPASSPASSPASS
PaymentRequest interface: existence and properties of interface prototype object's @@unscopables propertyPASSPASSPASSPASS
PaymentRequest interface: operation abort()PASSPASSPASSPASS
PaymentRequest interface: operation canMakePayment()PASSPASSPASSPASS
PaymentRequest interface: operation hasEnrolledInstrument()PASSPASSFAILFAIL
PaymentRequest interface: operation show([object Object])PASSPASSPASSPASS
PaymentRequest interface: paymentRequest must inherit property "abort()" with the proper typePASSPASSPASSPASS
PaymentRequest interface: paymentRequest must inherit property "canMakePayment()" with the proper typePASSPASSPASSPASS
PaymentRequest interface: paymentRequest must inherit property "hasEnrolledInstrument()" with the proper typePASSPASSFAILFAIL
PaymentRequest interface: paymentRequest must inherit property "id" with the proper typePASSPASSPASSPASS
PaymentRequest interface: paymentRequest must inherit property "onmerchantvalidation" with the proper typeFAILFAILPASSFAIL
PaymentRequest interface: paymentRequest must inherit property "onpaymentmethodchange" with the proper typePASSPASSPASSFAIL
PaymentRequest interface: paymentRequest must inherit property "onshippingaddresschange" with the proper typePASSPASSPASSPASS
PaymentRequest interface: paymentRequest must inherit property "onshippingoptionchange" with the proper typePASSPASSPASSPASS
PaymentRequest interface: paymentRequest must inherit property "shippingAddress" with the proper typePASSPASSPASSPASS
PaymentRequest interface: paymentRequest must inherit property "shippingOption" with the proper typePASSPASSPASSPASS
PaymentRequest interface: paymentRequest must inherit property "shippingType" with the proper typePASSPASSPASSPASS
PaymentRequest interface: paymentRequest must inherit property "show([object Object])" with the proper typePASSPASSPASSPASS
PaymentRequest must be primary interface of paymentRequestPASSPASSPASSPASS
PaymentRequestUpdateEvent interface object lengthPASSPASSPASSPASS
PaymentRequestUpdateEvent interface object namePASSPASSPASSPASS
PaymentRequestUpdateEvent interface: calling updateWith([object Object]) on new PaymentMethodChangeEvent("paymentmethodchange") with too few arguments must throw TypeErrorPASSPASSPASSFAIL
PaymentRequestUpdateEvent interface: calling updateWith([object Object]) on new PaymentRequestUpdateEvent("paymentrequestupdate") with too few arguments must throw TypeErrorPASSPASSPASSPASS
PaymentRequestUpdateEvent interface: existence and properties of interface objectPASSPASSPASSPASS
PaymentRequestUpdateEvent interface: existence and properties of interface prototype objectPASSPASSPASSPASS
PaymentRequestUpdateEvent interface: existence and properties of interface prototype object's "constructor" propertyPASSPASSPASSPASS
PaymentRequestUpdateEvent interface: existence and properties of interface prototype object's @@unscopables propertyPASSPASSPASSPASS
PaymentRequestUpdateEvent interface: new PaymentMethodChangeEvent("paymentmethodchange") must inherit property "updateWith([object Object])" with the proper typePASSPASSPASSFAIL
PaymentRequestUpdateEvent interface: new PaymentRequestUpdateEvent("paymentrequestupdate") must inherit property "updateWith([object Object])" with the proper typePASSPASSPASSPASS
PaymentRequestUpdateEvent interface: operation updateWith([object Object])PASSPASSPASSPASS
PaymentRequestUpdateEvent must be primary interface of new PaymentRequestUpdateEvent("paymentrequestupdate")PASSPASSPASSPASS
PaymentResponse interface object lengthPASSPASSPASSPASS
PaymentResponse interface object namePASSPASSPASSPASS
PaymentResponse interface: attribute detailsPASSPASSPASSPASS
PaymentResponse interface: attribute methodNamePASSPASSPASSPASS
PaymentResponse interface: attribute onpayerdetailchangePASSPASSPASSFAIL
PaymentResponse interface: attribute payerEmailPASSPASSPASSPASS
PaymentResponse interface: attribute payerNamePASSPASSPASSPASS
PaymentResponse interface: attribute payerPhonePASSPASSPASSPASS
PaymentResponse interface: attribute requestIdPASSPASSPASSPASS
PaymentResponse interface: attribute shippingAddressPASSPASSPASSPASS
PaymentResponse interface: attribute shippingOptionPASSPASSPASSPASS
PaymentResponse interface: existence and properties of interface objectPASSPASSPASSFAIL
PaymentResponse interface: existence and properties of interface prototype objectPASSPASSPASSFAIL
PaymentResponse interface: existence and properties of interface prototype object's "constructor" propertyPASSPASSPASSPASS
PaymentResponse interface: existence and properties of interface prototype object's @@unscopables propertyPASSPASSPASSPASS
PaymentResponse interface: operation complete(PaymentComplete)PASSPASSPASSPASS
PaymentResponse interface: operation retry(PaymentValidationErrors)PASSPASSPASSFAIL
PaymentResponse interface: operation toJSON()PASSPASSPASSPASS
Stringification of new MerchantValidationEvent("merchantvalidation")PASSFAILPASSFAIL
Stringification of new PaymentMethodChangeEvent("paymentmethodchange")PASSPASSPASSFAIL
Stringification of new PaymentRequestUpdateEvent("paymentrequestupdate")PASSPASSPASSPASS
Stringification of paymentRequestPASSPASSPASSPASS
idl_test setupPASSPASSPASSPASS
idl_test validationPASSPASS--
/payment-request/onmerchantvalidation-attribute.https.htmlOKOKOKOK
Must have a onmerchantvalidation IDL attributeFAILFAILPASSFAIL
onmerchantvalidation attribute and listeners both workFAILFAILPASSFAIL
onmerchantvalidation attribute is a generic handler for "merchantvalidation"FAILFAILPASSFAIL
onmerchantvalidation attribute is a handler for MerchantValidationEventFAILFAILPASSFAIL
/payment-request/onpaymentmenthodchange-attribute.https.htmlOKOKOKOK
Must have a onpaymentmethodchange IDL attributePASSPASSPASSFAIL
onpaymentmethodchange attribute and listeners both workPASSPASSPASSFAIL
onpaymentmethodchange attribute is a generic handler for "paymentmethodchange"PASSPASSPASSFAIL
onpaymentmethodchange attribute is a handler for PaymentMethodChangeEventPASSPASSPASSFAIL
/payment-request/payment-is-showing.https.htmlOKTIMEOUTTIMEOUTERROR
An iframe cannot show a payment request if the top-level window is already showing one.PASS--PASS
Given multiple nested browsing contexts, and an iframe calls show() first, other nested browsing contexts can't show a request.PASS--NOTRUN
Given multiple nested browsing contexts, and popup calls show() first, other nested browsing contexts can't show a request.PASS--NOTRUN
Given multiple nested browsing contexts, and window calls show() first, other nested browsing contexts can't show a request.PASS--TIMEOUT
If an iframe shows a payment request, the top-level browsing context can't also show one.PASS--PASS
Navigating a popup as a nested browsing context sets 'payment request is showing boolean' to false.PASS--NOTRUN
Navigating an iframe as a nested browsing context sets 'payment request is showing boolean' to false.PASS--NOTRUN
The top browsing context can only show one payment sheet at a time.PASS--PASS
Using a popup window prevents the top-browsing context from showing a payment requestPASS--FAIL
/payment-request/payment-request-abort-method.https.htmlOKOKOKOK
Aborting a request before it is shown doesn't prevent it from being shown later.PASSFAILPASSPASS
Calling abort() multiple times is always a new object.PASSPASSPASSPASS
The same request cannot be shown multiple times.PASSFAILPASSPASS
Throws if the promise [[state]] is not "interactive"PASSPASSPASSPASS
/payment-request/payment-request-canmakepayment-method-protection.https.htmlOKOKOKOK
Optionally, at the user agent's discretion, return a promise rejected with a "NotAllowedError" DOMException.PASSPASSPASSPASS
/payment-request/payment-request-canmakepayment-method.https.htmlOKERROROKOK
All methods are unsupportedPASSPASSPASSFAIL
If payment method identifier are supported, resolve promise with true.PASSPASSPASSFAIL
If request.[[state]] is "closed", then return a promise rejected with an "InvalidStateError" DOMException.PASSFAILPASSPASS
If request.[[state]] is "created", then return a promise that resolves to true for known method.PASSPASSPASSPASS
If request.[[state]] is "interactive", then return a promise rejected with an "InvalidStateError" DOMException.PASSPASSPASSPASS
Mix of supported and unsupported methods, at least one method is supported.PASSPASSPASSFAIL
/payment-request/payment-request-constructor-thcrash.https.htmlOKOK--
Don't crash if PaymentDetailsInit.total.label is an abusive lengthPASSPASS--
Don't crash if PaymentItem.label is an abusive lengthPASSPASS--
Don't crash if PaymentMethodData.supportedMethods is an abusive lengthPASSPASS--
Don't crash if PaymentShippingOptions.label is an abusive lengthPASSPASS--
Don't crash if details.displayItems has an abusive number of itemsPASSPASS--
Don't crash if details.shippingOptions has an abusive number of itemsPASSPASS--
Don't crash if the PaymentShippingOptions.amount.value is an abusive lengthPASSPASS--
Don't crash if the request id has an abusive lengthPASSPASS--
Don't crash if there is an abusive number of payment methods in the methodData sequencePASSPASS--
Don't crash if total.amount.value is an abusive lengthPASSPASS--
/payment-request/payment-request-constructor.https.htmlOKOKOKOK
For each item in details.displayItems: if item.amount.value is not a valid decimal monetary value, then throw a TypeErrorPASSPASSPASSPASS
For each option in details.shippingOptions: if option.amount.value is not a valid decimal monetary value, then throw a TypeErrorPASSPASSPASSPASS
If amount.value of additionalDisplayItems is not a valid decimal monetary value, then throw a TypeErrorPASSPASSPASSPASS
If details.id is missing, assign a unique identifierPASSPASSPASSPASS
If details.id is missing, assign an identifierPASSPASSPASSPASS
If details.total.amount.value is not a valid decimal monetary value, then throw a TypeErrorPASSPASSPASSPASS
If options.requestShipping is not set, then request.shippingType attribute is null.PASSPASSPASSPASS
If options.requestShipping is true, request.shippingType will be options.shippingType.PASSPASSPASSPASS
If requestShipping is set, and if there is a multiple selected shipping options, only the last is selected.PASSPASSPASSPASS
If the first character of details.total.amount.value is U+002D HYPHEN-MINUS, then throw a TypeErrorPASSPASSPASSPASS
If the length of the methodData sequence is zero, then throw a TypeErrorPASSPASSPASSPASS
If the same id is provided, then use itPASSPASSPASSPASS
If there are any duplicate shipping option ids, and shipping is requested, then throw a TypeErrorPASSPASSPASSPASS
If there is a selected shipping option, and requestShipping is set, then that option becomes synchronously selectedPASSPASSPASSPASS
If there is no selected shipping option, then PaymentRequest.shippingOption remains nullPASSPASSPASSPASS
Modifier data must be JSON-serializable object (an Array in this case)PASSPASSPASSPASS
Modifier data must be JSON-serializable object (an Object in this case)PASSPASSPASSPASS
Modifier method data must be JSON-serializable objectPASSPASSPASSPASS
Negative values are allowed for displayItems.amount.value, irrespective of total amountPASSPASSPASSPASS
PaymentDetailsBase members can be 0 lengthPASSPASSPASSPASS
PaymentRequest.shippingAddress must initially be nullPASSPASSPASSPASS
Rethrow any exceptions of JSON-serializing modifier.dataPASSPASSPASSPASS
Rethrow any exceptions of JSON-serializing paymentMethod.data into a stringPASSPASSPASSPASS
Shipping type should be validPASSPASSPASSPASS
Throw TypeError if modifier.total.amount.value is not a valid decimal monetary valuePASSPASSPASSPASS
Throw when there are duplicate shippingOption ids, even if other values are differentPASSPASSPASSPASS
Use ids even if they are strangePASSPASSPASSPASS
Use provided request IDPASSPASSPASSPASS
it handles high precision currency values without throwingPASSPASSPASSPASS
/payment-request/payment-request-ctor-currency-code-checks.https.htmlOKOKOKOK
Check and canonicalize invalid details.displayItems amount and rethrow RangeError.PASSPASSPASSPASS
Check and canonicalize invalid details.shippingOptions amount and rethrow RangeError.PASSPASSPASSPASS
Check and canonicalize invalid details.total.amount and rethrow any exceptions.PASSPASSPASSPASS
Check and canonicalize invalid modifiers[n].additionaDisplayItem amount and rethrow RangeError.PASSPASSPASSPASS
Check and canonicalize invalid modifiers[n].total amount and rethrow RangeError.PASSPASSPASSPASS
Check and canonicalize valid details.displayItems amountPASSPASSPASSPASS
Check and canonicalize valid details.shippingOptions amount.PASSPASSPASSPASS
Check and canonicalize valid details.total.amountPASSPASSPASSPASS
Check and canonicalize valid modifiers[n].additionaDisplayItem amount.PASSPASSPASSPASS
Check and canonicalize valid modifiers[n].total amount.PASSPASSPASSPASS
/payment-request/payment-request-ctor-pmi-handling.https.htmlOKOKOKOK
Constructor MUST throw if given an invalid URL-based payment method identifierPASSPASSPASSPASS
Must not throw on syntactically valid standardized payment method identifiers, even if they are not supportedPASSPASSPASSPASS
Must support valid standard URL PMIsPASSPASSPASSPASS
Must throw on syntactically invalid standardized payment method identifiersPASSPASSPASSFAIL
/payment-request/payment-request-hasenrolledinstrument-method-protection.tentative.https.htmlOKOKOKOK
Optionally, at the user agent's discretion, return a promise rejected with a "NotAllowedError" DOMException.PASSPASSFAILFAIL
/payment-request/payment-request-hasenrolledinstrument-method.tentative.https.htmlOKOKERRORTIMEOUT
If request.[[state]] is "closed", then return a promise rejected with an "InvalidStateError" DOMException.PASSPASSFAILTIMEOUT
If request.[[state]] is "interactive", then return a promise rejected with an "InvalidStateError" DOMException.PASSPASSFAILFAIL
hasEnrolledInstrument() resolves to false for unsupported payment methods.PASSFAILFAILFAIL
/payment-request/payment-request-id-attribute.https.htmlOKOKOKOK
PaymentRequest's id attribute must be a UUID when PaymentDetailsInit.id is missingPASSPASSPASSPASS
PaymentRequest's id attribute's value can be set via PaymentDetailsInit dictionaryPASSPASSPASSPASS
/payment-request/payment-request-insecure.http.htmlOKOKOKOK
PaymentRequest constructor must not be exposed in insecure contextPASSPASSPASSPASS
/payment-request/payment-request-not-exposed.https.worker.htmlOKOKOKOK
PaymentRequest constructor must not be exposed in worker global scopePASSPASSPASSPASS
/payment-request/payment-request-onshippingaddresschange-attribute.https.htmlOKOKOKOK
Must have a onshippingaddresschange IDL attributePASSPASSPASSPASS
onshippingaddresschange attribute and listeners both workPASSPASSPASSPASS
onshippingaddresschange attribute is a generic handler for "shippingaddresschange"PASSPASSPASSPASS
onshippingaddresschange attribute is a handler for PaymentRequestUpdateEventPASSPASSPASSPASS
/payment-request/payment-request-onshippingoptionchange-attribute.https.htmlOKOKOKOK
Must have a onshippingoptionchange IDL attributePASSPASSPASSPASS
onshippingoptionchange attribute and listeners both workPASSPASSPASSPASS
onshippingoptionchange attribute is a generic handler for "shippingoptionchange"PASSPASSPASSPASS
onshippingoptionchange attribute is a handler for PaymentRequestUpdateEventPASSPASSPASSPASS
/payment-request/payment-request-shippingAddress-attribute.https.htmlOKOKOKOK
.shippingAddress attribute must default to null.PASSPASSPASSPASS
Must have a .shippingAddress IDL attribute.PASSPASSPASSPASS
/payment-request/payment-request-shippingOption-attribute.https.htmlOKOKOKOK
.shippingOption attribute must default to null.PASSPASSPASSPASS
Given multiple shipping options, it must use the selected shipping option for .shippingOption value.PASSPASSPASSPASS
If there are multiple of the shipping options with selected true, then .shippingOption is the last selected shipping option in order.PASSPASSPASSPASS
If there are multiple shipping options all with `selected` set to false, then .shippingOption is null.PASSPASSPASSPASS
If there is a single shipping option, but selected is false, then .shippingOption must be null.PASSPASSPASSPASS
Must have a .shippingOption IDL attribute.PASSPASSPASSPASS
/payment-request/payment-request-shippingType-attribute.https.htmlOKOKOKOK
If options.requestShipping is false, then request.shippingType attribute is null.PASSPASSPASSPASS
If options.requestShipping is true, request.shippingType will be options.shippingType.PASSPASSPASSPASS
Must have a shippingType IDL attributePASSPASSPASSPASS
/payment-request/payment-request-show-method.https.htmlOKERROROKOK
Calling show() multiple times always returns a new promise.PASSNOTRUNPASSPASS
Calling show() without being triggered by user interaction throwsTIMEOUTFAILPASSTIMEOUT
If payment method consultation produces no supported method of payment, then return a promise rejected with a "NotSupportedError" DOMException.PASSTIMEOUTPASSFAIL
If the user agent's "payment request is showing" boolean is true, then return a promise rejected with an "AbortError" DOMException.PASSFAILPASSPASS
Throws if the promise [[state]] is not 'created'.PASSFAILPASSPASS
/payment-request/payment-response/onpayerdetailchange-attribute.https.htmlOKOKOKOK
PaymentResponse has an onpayerdetailchange in the prototype chainPASSPASSPASSFAIL
PaymentResponse inherits from EventTargetPASSPASSPASSFAIL
/payment-request/rejects_if_not_active.https.htmlOKOKOKTIMEOUT
If a payment request is showing, but its document is navigated away (so no longer fully active), the payment request aborts.---TIMEOUT
If a payment request is showing, but its document is navigated away (so no longer fully active), the payment sheet is dismissed.PASSPASSPASS-
/payment-request/payment-request-constructor-crash.https.html--OKOK
Don't crash if PaymentDetailsInit.total.label is an abusive length--PASSPASS
Don't crash if PaymentItem.label is an abusive length--PASSPASS
Don't crash if PaymentMethodData.supportedMethods is an abusive length--PASSPASS
Don't crash if PaymentShippingOptions.label is an abusive length--PASSPASS
Don't crash if details.displayItems has an abusive number of items--PASSPASS
Don't crash if details.shippingOptions has an abusive number of items--PASSPASS
Don't crash if the PaymentShippingOptions.amount.value is an abusive length--PASSPASS
Don't crash if the request id has an abusive length--PASSPASS
Don't crash if there is an abusive number of payment methods in the methodData sequence--PASSPASS
Don't crash if total.amount.value is an abusive length--PASSPASS