summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/fullscreen/api/element-request-fullscreen-twice.html
blob: db53aec544fdfbb142fa6c337f24b8ed78812f7b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<!DOCTYPE html>
<title>Element#requestFullscreen() twice</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>
    promise_test(async (t) => {
        const div = document.querySelector("div");
        await trusted_click(document.body);
        const p = div.requestFullscreen();
        assert_equals(
            document.fullscreenElement,
            null,
            "fullscreenElement after first requestFullscreen()"
        );
        const rejectedPromises = [
            promise_rejects_js(t, TypeError, div.requestFullscreen()),
            promise_rejects_js(t, TypeError, div.requestFullscreen()),
        ];
        await Promise.all([p, fullScreenChange()]);
        assert_equals(
            document.fullscreenElement,
            div,
            "fullscreenElement after entering fullscreen"
        );
        // Ensure that there's are not more changes fullscreenchange event.
        document.onfullscreenchange = t.unreached_func(
            "second fullscreenchange event"
        );
        await Promise.all(rejectedPromises);
        await new Promise((r) => requestAnimationFrame(r));
    }, "requestFullscreen() multiple times after going fullscreen");
</script>