| <script src="../../../resources/js-test-pre.js"></script> |
| <script src="../resources/media-controls-utils.js" type="text/javascript"></script> |
| <script src="../resources/media-controls-loader.js" type="text/javascript"></script> |
| <body> |
| <script type="text/javascript"> |
| |
| description("Testing that control bars and the mute button respect the user interface layout direction."); |
| |
| window.jsTestIsAsync = true; |
| |
| const mediaControls = new MacOSInlineMediaControls({ width: 600, height: 250 }); |
| mediaControls.usesLTRUserInterfaceLayoutDirection = true; |
| |
| mediaControls.element.style.position = "relative"; |
| document.body.appendChild(mediaControls.element); |
| |
| step1(); |
| |
| function step1() |
| { |
| debug("width = 600"); |
| debug("muted = false"); |
| debug("usesLTRUserInterfaceLayoutDirection = true"); |
| shouldBecomeEqual("mediaControls.muteButton.iconName", "Icons.Volume", () => { |
| shouldBecomeEqual("mediaControls.topLeftControlsBar.children[1].children", "[mediaControls.fullscreenButton, mediaControls.pipButton]", () => { |
| shouldBecomeEqualToString("getComputedStyle(mediaControls.topLeftControlsBar.element).left", "6px", step2); |
| }); |
| }); |
| } |
| |
| function step2() |
| { |
| debug(""); |
| debug("width = 600"); |
| debug("muted = false"); |
| debug("usesLTRUserInterfaceLayoutDirection = false"); |
| mediaControls.usesLTRUserInterfaceLayoutDirection = false; |
| shouldBecomeEqual("mediaControls.muteButton.iconName", "Icons.Volume", () => { |
| shouldBecomeEqual("mediaControls.topLeftControlsBar.children[1].children", "[mediaControls.pipButton, mediaControls.fullscreenButton]", () => { |
| shouldBecomeEqualToString("getComputedStyle(mediaControls.topLeftControlsBar.element).right", "6px", step3); |
| }); |
| }); |
| } |
| |
| function step3() |
| { |
| debug(""); |
| debug("width = 250"); |
| debug("muted = false"); |
| debug("usesLTRUserInterfaceLayoutDirection = false"); |
| mediaControls.width = 250; |
| shouldBecomeEqual("mediaControls.muteButton.iconName", "Icons.VolumeRTL", () => { |
| shouldBecomeEqual("mediaControls.topLeftControlsBar.children[1].children", "[mediaControls.pipButton, mediaControls.fullscreenButton]", () => { |
| shouldBecomeEqualToString("getComputedStyle(mediaControls.topLeftControlsBar.element).right", "6px", step4); |
| }); |
| }); |
| } |
| |
| function step4() |
| { |
| debug(""); |
| debug("width = 250"); |
| debug("muted = true"); |
| debug("usesLTRUserInterfaceLayoutDirection = false"); |
| mediaControls.muteButton.muted = true; |
| shouldBecomeEqual("mediaControls.muteButton.iconName", "Icons.VolumeMutedRTL", () => { |
| shouldBecomeEqual("mediaControls.topLeftControlsBar.children[1].children", "[mediaControls.pipButton, mediaControls.fullscreenButton]", () => { |
| shouldBecomeEqualToString("getComputedStyle(mediaControls.topLeftControlsBar.element).right", "6px", step5); |
| }); |
| }); |
| } |
| |
| function step5() |
| { |
| debug(""); |
| debug("width = 250"); |
| debug("muted = true"); |
| debug("usesLTRUserInterfaceLayoutDirection = true"); |
| mediaControls.usesLTRUserInterfaceLayoutDirection = true; |
| shouldBecomeEqual("mediaControls.muteButton.iconName", "Icons.VolumeMuted", () => { |
| shouldBecomeEqual("mediaControls.topLeftControlsBar.children[1].children", "[mediaControls.fullscreenButton, mediaControls.pipButton]", () => { |
| shouldBecomeEqualToString("getComputedStyle(mediaControls.topLeftControlsBar.element).left", "6px", done); |
| }); |
| }); |
| } |
| |
| function done() |
| { |
| debug(""); |
| mediaControls.element.remove(); |
| finishJSTest(); |
| } |
| |
| // debug("Mute button is enabled"); |
| // shouldBe("mediaControls.muteButton.parent.parent", "mediaControls.topRightControlsBar"); |
| // shouldBe("mediaControls.topRightControlsBar.parent", "mediaControls"); |
| // |
| // debug("") |
| // debug("Mute button is disabled"); |
| // mediaControls.muteButton.enabled = false; |
| // shouldBe("mediaControls.muteButton.parent.parent", "mediaControls.topRightControlsBar"); |
| // shouldBeNull("mediaControls.topRightControlsBar.parent"); |
| |
| </script> |
| <script src="../../../resources/js-test-post.js"></script> |
| </body> |