chromium/third_party/blink/web_tests/fullscreen/api/element-request-fullscreen-vs-exit.html

<!DOCTYPE html>
<title>Element#requestFullscreen() vs. Document#exitFullscreen()</title>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../trusted-click.js"></script>
<div id="log"></div>
<div id="target"></div>
<script>
// Adapted from https://github.com/web-platform-tests/wpt/pull/4250
// TODO(foolip): Remove this test when the above is imported and passing.
async_test(t => {
  const target = document.getElementById("target");

  trusted_click(t, () => {
    // Request fullscreen and exit at the same time. The exitFullscreen call
    // should have no effect as the fullscreen element is null.
    document.onfullscreenchange = t.step_func_done();
    document.onfullscreenerror = t.unreached_func("fullscreenerror event");

    silence_rejection(target.requestFullscreen());
    assert_equals(document.fullscreenElement, null, "fullscreenElement after requestFullscreen()");
    silence_rejection(document.exitFullscreen());
    assert_equals(document.fullscreenElement, null, "fullscreenElement after exitFullscreen()");
  }, document.body);
});
</script>