diff options
Diffstat (limited to 'testing/web-platform/tests/payment-request/payment-request-disallowed-when-hidden.https.html')
-rw-r--r-- | testing/web-platform/tests/payment-request/payment-request-disallowed-when-hidden.https.html | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/testing/web-platform/tests/payment-request/payment-request-disallowed-when-hidden.https.html b/testing/web-platform/tests/payment-request/payment-request-disallowed-when-hidden.https.html new file mode 100644 index 0000000000..3a5eb01015 --- /dev/null +++ b/testing/web-platform/tests/payment-request/payment-request-disallowed-when-hidden.https.html @@ -0,0 +1,48 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Test for PaymentRequest.show() method - should fail when tab is not visible</title> +<link rel="help" href="https://w3c.github.io/payment-request/#show-method"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-vendor.js"></script> +<!-- For minimize() --> +<script src="/page-visibility/resources/window_state_context.js"></script> +<script> +'use strict'; + +promise_test(async t => { + const {minimize, restore} = window_state_context(t); + + const request = new PaymentRequest([ + { + supportedMethods: "https://apple.com/apple-pay", + data: { + version: 3, + merchantIdentifier: "merchant.com.example", + countryCode: "US", + merchantCapabilities: ["supports3DS"], + supportedNetworks: ["visa"], + }, + }, + ], { + total: { + label: "Total", + amount: { + currency: "USD", + value: "1.00", + }, + } + }); + + // `bless` simulates a click so it must happen before minimizing the window. + await test_driver.bless('user activation'); + + // Before we trigger the Payment Request, minimize the window. This should + // cause the show() call to be rejected. + await minimize(); + assert_equals(document.hidden, true); + + return promise_rejects_dom(t, "AbortError", request.show()); +}, 'PaymentRequest.show() cannot be triggered from a hidden context'); +</script> |