Bug 1729868 [wpt PR 30417] - test web-share on non-fully-active docs, a=testonly
Automatic update from web-platform-tests test web-share on non-fully-active docs (#30417) * test web-share on non-fully-active docs * Update web-share/test-fully-active.https.html Co-authored-by: Kagami Sascha Rosylight <saschanaz@outlook.com> Co-authored-by: Kagami Sascha Rosylight <saschanaz@outlook.com> -- wpt-commits: fe0ce76957bfd2ee58608c28d42b95e9d3e31f4c wpt-pr: 30417
This commit is contained in:
committed by
moz-wptsync-bot
parent
99e4d08702
commit
8633c3aae3
@@ -0,0 +1,2 @@
|
||||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
@@ -0,0 +1,77 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>WebShare Test: consume user activation</title>
|
||||
<link rel="help" href="https://github.com/w3c/web-share/pull/219" />
|
||||
<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>
|
||||
<script>
|
||||
async function loadIframe() {
|
||||
const iframe = document.createElement("iframe");
|
||||
iframe.src = "./resources/blank.html";
|
||||
document.body.appendChild(iframe);
|
||||
await new Promise((resolve) => {
|
||||
iframe.addEventListener("load", resolve);
|
||||
});
|
||||
return iframe;
|
||||
}
|
||||
|
||||
promise_test(async (t) => {
|
||||
const iframe = await loadIframe();
|
||||
const { contentWindow } = iframe;
|
||||
const { navigator, DOMException } = contentWindow;
|
||||
const data = { text: "text" };
|
||||
iframe.remove();
|
||||
await promise_rejects_dom(
|
||||
t,
|
||||
"InvalidStateError",
|
||||
DOMException,
|
||||
navigator.share(data),
|
||||
"Expected promise rejected with InvalidStateError from .share()"
|
||||
);
|
||||
}, "calling share() on non-fully active document returns a promise rejected with InvalidStateError");
|
||||
|
||||
promise_test(async (t) => {
|
||||
const iframe = await loadIframe();
|
||||
const { contentWindow } = iframe;
|
||||
const { navigator, DOMException } = contentWindow;
|
||||
const data = { text: "text" };
|
||||
|
||||
// Acquire transient activation, but make the iframe non-fully-active
|
||||
await test_driver.bless(
|
||||
"web share",
|
||||
() => {
|
||||
iframe.remove();
|
||||
},
|
||||
contentWindow
|
||||
);
|
||||
|
||||
await promise_rejects_dom(
|
||||
t,
|
||||
"InvalidStateError",
|
||||
DOMException,
|
||||
navigator.share(data),
|
||||
"Expected promise rejected with InvalidStateError from .share()"
|
||||
);
|
||||
}, "calling share() with transient activation on non-fully active document returns a promise rejected with InvalidStateError");
|
||||
|
||||
promise_test(async (t) => {
|
||||
const iframe = await loadIframe();
|
||||
const { contentWindow } = iframe;
|
||||
const { navigator } = contentWindow;
|
||||
const data = { text: "text" };
|
||||
|
||||
assert_true(navigator.canShare(data), "doc is fully active, so true");
|
||||
|
||||
iframe.remove();
|
||||
|
||||
assert_false(navigator.canShare(data), "not fully active, so false");
|
||||
}, "calling canShare() on a non-fully active document returns false");
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user