| <!DOCTYPE html> |
| <html> |
| <head> |
| <meta charset="utf-8" /> |
| <link rel="help" href="https://github.com/w3c/web-share/pull/113" /> |
| <title>WebShare Test: only one share at a time</title> |
| <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> |
| </head> |
| <body> |
| <button> |
| <script> |
| setup({ allow_uncaught_exception:true }); |
| promise_test(async t => { |
| const button = document.querySelector("button"); |
| const p = new Promise(r => { |
| button.onclick = () => { |
| const promises = []; |
| promises.push( |
| navigator.share({ title: "should be pending" }), |
| navigator.share({ title: "should reject" }), |
| navigator.share({ title: "should also reject" }) |
| ); |
| r(promises); |
| }; |
| }); |
| test_driver.click(button); |
| const [, promise2, promise3] = await p; |
| await Promise.all([ |
| promise_rejects_dom(t, "InvalidStateError", promise2), |
| promise_rejects_dom(t, "InvalidStateError", promise3) |
| ]); |
| }, "Only allow one share call at a time, which is controlled by the [[sharePromise]] internal slot."); |
| </script> |
| </body> |
| </html> |