| <!DOCTYPE html> |
| <!-- Copyright © 2017 Mozilla and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). --> |
| <meta charset="utf-8"> |
| <title>Test for PaymentRequest's shippingType attribute</title> |
| <link rel="help" href="https://w3c.github.io/payment-request/#shippingtype-attribute"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script> |
| "use strict"; |
| const paymentShipingTypes = Object.freeze(["delivery", "pickup", "shipping"]); |
| const basicCard = Object.freeze({ supportedMethods: "basic-card" }); |
| const defaultMethods = Object.freeze([basicCard]); |
| const defaultDetails = Object.freeze({ |
| total: { |
| label: "", |
| amount: { |
| currency: "USD", |
| value: "1.00", |
| }, |
| }, |
| }); |
| |
| test(() => { |
| const request = new PaymentRequest(defaultMethods, defaultDetails); |
| assert_idl_attribute(request, "shippingType"); |
| }, "Must have a shippingType IDL attribute"); |
| |
| test(() => { |
| const request1 = new PaymentRequest(defaultMethods, defaultDetails, {}); |
| assert_equals(request1.shippingType, null, "must be null"); |
| const request2 = new PaymentRequest(defaultMethods, defaultDetails, { |
| requestShipping: false, |
| }); |
| assert_equals(request2.shippingType, null, "must be null"); |
| for (const shippingType of paymentShipingTypes) { |
| const request = new PaymentRequest(defaultMethods, defaultDetails, { |
| requestShipping: false, |
| shippingType, |
| }); |
| assert_equals(request.shippingType, null, "must be null"); |
| } |
| }, "If options.requestShipping is false, then request.shippingType attribute is null."); |
| |
| test(() => { |
| // option.shippingType defaults to 'shipping' |
| const defaultRequest = new PaymentRequest(defaultMethods, defaultDetails, { |
| requestShipping: true, |
| }); |
| assert_equals(defaultRequest.shippingType, "shipping", "must be shipping"); |
| for (const shippingType of paymentShipingTypes) { |
| const request = new PaymentRequest(defaultMethods, defaultDetails, { |
| requestShipping: true, |
| shippingType, |
| }); |
| assert_equals( |
| request.shippingType, |
| shippingType, |
| `must be ${shippingType}` |
| ); |
| } |
| }, "If options.requestShipping is true, request.shippingType will be options.shippingType."); |
| </script> |