1 <script src="../../../resources/js-test-pre.js"></script>
2 <script src="../resources/media-controls-loader.js" type="text/javascript"></script>
4 <video src="../../content/test.mp4" style="width: 320px; height: 240px;"></video>
5 <div id="shadow"></div>
6 <script type="text/javascript">
8 window.jsTestIsAsync = true;
10 description("Testing the <code>MediaController</code> behavior when entering and leaving fullscreen.");
12 const shadowRoot = document.querySelector("div#shadow").attachShadow({ mode: "open" });
13 const media = document.querySelector("video");
14 const mediaController = createControls(shadowRoot, media, null);
16 const button = document.body.appendChild(document.createElement("button"));
18 function enterFullscreen()
20 if (!("eventSender" in window)) {
21 debug("This test is designed to run in DRT");
25 // Click a button so we may enter fullscreen.
26 button.addEventListener("click", event => {
28 media.webkitEnterFullscreen();
30 debug("Toggling fullscreen failed");
35 eventSender.mouseMoveTo(button.offsetLeft + 1, button.offsetTop + 1);
36 eventSender.mouseDown();
37 eventSender.mouseUp();
40 media.addEventListener("webkitfullscreenchange", function() {
41 if (media.webkitDisplayingFullscreen) {
42 debug("Media entered fullscreen");
43 shouldBe("mediaController.layoutTraits", "LayoutTraits.macOS | LayoutTraits.Fullscreen");
44 shouldBeTrue("mediaController.controls instanceof MacOSFullscreenMediaControls");
46 media.webkitExitFullscreen()
48 debug("Media exited fullscreen");
49 shouldBe("mediaController.layoutTraits", "LayoutTraits.macOS");
50 shouldBeTrue("mediaController.controls instanceof MacOSInlineMediaControls");
53 shadowRoot.host.remove();
60 media.addEventListener("loadedmetadata", enterFullscreen);
63 <script src="../../../resources/js-test-post.js"></script>