
PASS If details.id is missing, assign an identifier
PASS If details.id is missing, assign a unique identifier
PASS If the same id is provided, then use it
PASS Use ids even if they are strange
PASS Use provided request ID
PASS If the length of the methodData sequence is zero, then throw a TypeError
PASS Modifier method data must be JSON-serializable object
PASS Rethrow any exceptions of JSON-serializing paymentMethod.data into a string
PASS If details.total.amount.value is not a valid decimal monetary value, then throw a TypeError
PASS PaymentDetailsBase members can be 0 length
PASS If the first character of details.total.amount.value is U+002D HYPHEN-MINUS, then throw a TypeError
PASS For each item in details.displayItems: if item.amount.value is not a valid decimal monetary value, then throw a TypeError
PASS Negative values are allowed for displayItems.amount.value, irrespective of total amount
PASS it handles high precision currency values without throwing
PASS For each option in details.shippingOptions: if option.amount.value is not a valid decimal monetary value, then throw a TypeError
PASS If there is no selected shipping option, then PaymentRequest.shippingOption remains null
PASS If there is a selected shipping option, and requestShipping is set, then that option becomes synchronously selected
PASS If requestShipping is set, and if there is a multiple selected shipping options, only the last is selected.
PASS If there are any duplicate shipping option ids, and shipping is requested, then throw a TypeError
PASS Throw when there are duplicate shippingOption ids, even if other values are different
PASS Throw TypeError if modifier.total.amount.value is not a valid decimal monetary value
PASS If amount.value of additionalDisplayItems is not a valid decimal monetary value, then throw a TypeError
PASS Modifier data must be JSON-serializable object (an Array in this case)
PASS Modifier data must be JSON-serializable object (an Object in this case)
PASS Rethrow any exceptions of JSON-serializing modifier.data
PASS Shipping type should be valid
PASS PaymentRequest.shippingAddress must initially be null
PASS If options.requestShipping is not set, then request.shippingType attribute is null.
PASS If options.requestShipping is true, request.shippingType will be options.shippingType.

