<!DOCTYPE html>
<title>
    Element#requestFullscreen() when not allowed to request fullscreen
</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script>
    promise_test(async (t) => {
        const div = document.querySelector("div");
        const errorEventPromise = new Promise(
            (resolve) => (document.onfullscreenerror = resolve)
        );
        const [, event] = await Promise.all([
            promise_rejects_js(t, TypeError, div.requestFullscreen()),
            errorEventPromise,
        ]);
        assert_equals(event.type, "fullscreenerror");
        assert_equals(event.target, div, "event.target");
        assert_true(event.bubbles, "event.bubbles");
        assert_false(event.cancelable, "event.cancelable");
        assert_true(event.composed, "event.composed");
    }, "requestFullscreen() when not allowed to request fullscreen");
</script>
