summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/payment-request/show-method-postmessage-manual.https.html
diff options
context:
space:
mode:
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.html53
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>