diff options
Diffstat (limited to 'testing/web-platform/tests/payment-request/show-method-postmessage-manual.https.html')
-rw-r--r-- | testing/web-platform/tests/payment-request/show-method-postmessage-manual.https.html | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/testing/web-platform/tests/payment-request/show-method-postmessage-manual.https.html b/testing/web-platform/tests/payment-request/show-method-postmessage-manual.https.html new file mode 100644 index 0000000000..0751920e37 --- /dev/null +++ b/testing/web-platform/tests/payment-request/show-method-postmessage-manual.https.html @@ -0,0 +1,53 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Test for PaymentRequest.show() method</title> +<link rel="help" href="https://w3c.github.io/browser-payment-api/#show-method"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +"use strict"; +setup({ + explicit_done: true, + explicit_timeout: true, + allow_uncaught_exception: true, +}); + +async function runUserActivation(button) { + button.disabled = true; + const { contentWindow: iframeWindow } = document.getElementById("iframe"); + const expectedId = "pass123"; + await Promise.resolve(); // next tick + const promiseForResponse = new Promise(resolve => { + window.onmessage = ({ data: { requestId } }) => resolve(requestId); + }); + const ops = { id: expectedId, request: "show-payment-request" }; + iframeWindow.postMessage(ops, window.location.origin); + promise_test(async () => { + const actualId = await promiseForResponse; + assert_equals(actualId, expectedId, "ids must match"); + }, button.textContent.trim()); + done(); +} + +</script> +<h2>Test PaymentRequest.show() triggered by user activation using postMessage()</h2> +<p> + Tests that user activation works over postMessage(). +</p> +<p> + Click on bottom below. Hit "Pay". +</p> +<ol> + <li> + <button onclick="runUserActivation(this)"> + show() is triggered by user activation passed through postMessage() and a promise + </button> + </li> +</ol> +<iframe width="100%" id="iframe" src="show-method-postmessage-iframe.html" allow="payment"></iframe> +<p> + <small> + If you find a buggy test, please <a href="https://github.com/web-platform-tests/wpt/issues">file a bug</a> + and tag one of the <a href="https://github.com/web-platform-tests/wpt/blob/master/payment-request/META.yml">suggested reviewers</a>. + </small> +</p> |