<!DOCTYPE html>
<title>Element#requestFullscreen() for an element in null namespace</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>
<script src="../trusted-click.js"></script>
<div id="log"></div>
<script>
const supportedNS = [
{ ns: "http://www.w3.org/1999/xhtml", elemName: "div" },
{ ns: "http://www.w3.org/2000/svg", elemName: "svg" },
{ ns: "http://www.w3.org/1998/Math/MathML", elemName: "math" },
];
const unsupportedNS = [null, "https://unknown.namespace", ""];
for (const ns of unsupportedNS) {
promise_test(async (t) => {
const element = document.createElementNS(ns, "element");
document.body.appendChild(element);
document.onfullscreenchange = t.unreached_func(
"fullscreenchange event"
);
await promise_rejects_js(t, TypeError, trusted_request(element));
}, `requestFullscreen() fails for an element in ${ns} namespace`);
}
for (const { ns, elemName } of supportedNS) {
promise_test(async (t) => {
const element = document.createElementNS(ns, elemName);
document.body.appendChild(element);
await Promise.all([trusted_request(element), fullScreenChange()]);
await document.exitFullscreen();
}, `requestFullscreen() succeed for an element in ${ns} namespace`);
}
</script>