| <!DOCTYPE html> | |
| <meta charset="utf-8"> | |
| <title>Tests for providing `couponCode` in `data` as part of `PaymentMethodData`.</title> | |
| <script src="/js-test-resources/ui-helper.js"></script> | |
| <script src="/resources/payment-request.js"></script> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <body> | |
| <script> | |
| setup({ explicit_done: true, explicit_timeout: true }); | |
| test((test) => { | |
| const method = validPaymentMethod(); | |
| method.data.features = ["paymentRequestCouponCode"]; | |
| new PaymentRequest([method], validPaymentDetails()); | |
| }, "Should have a feature for `couponCode`."); | |
| user_activation_test(async (test) => { | |
| let request = new PaymentRequest([validPaymentMethod()], validPaymentDetails()); | |
| request.addEventListener("merchantvalidation", (event) => { | |
| event.complete({ }); | |
| }); | |
| request.addEventListener("shippingaddresschange", (event) => { | |
| assert_equals(internals.mockPaymentCoordinator.couponCode, null, "check that the `couponCode` is still `null` after an update"); | |
| event.updateWith({ }); | |
| internals.mockPaymentCoordinator.acceptPayment(); | |
| }); | |
| let response = await request.show(); | |
| assert_equals(internals.mockPaymentCoordinator.couponCode, null, "check that the `couponCode` is still `null` after the payment is accepted"); | |
| await response.complete("success"); | |
| }, "Should not have a default value for `couponCode`."); | |
| user_activation_test(async (test) => { | |
| const method = validPaymentMethod(); | |
| method.data.couponCode = "TEST"; | |
| let request = new PaymentRequest([method], validPaymentDetails()); | |
| request.addEventListener("merchantvalidation", (event) => { | |
| event.complete({ }); | |
| }); | |
| request.addEventListener("shippingaddresschange", (event) => { | |
| assert_equals(internals.mockPaymentCoordinator.couponCode, method.data.couponCode, "check that the `couponCode` still matches after an update"); | |
| event.updateWith({ }); | |
| internals.mockPaymentCoordinator.acceptPayment(); | |
| }); | |
| let response = await request.show(); | |
| assert_equals(internals.mockPaymentCoordinator.couponCode, method.data.couponCode, "check that the `couponCode` still matches after the payment is accepted"); | |
| await response.complete("success"); | |
| }, "Should propagate `couponCode` if provided."); | |
| done(); | |
| </script> | |