<script src="../../../resources/js-test-pre.js"></script>
<script src="../resources/media-controls-loader.js" type="text/javascript"></script>
<script src="../resources/media-controls-utils.js" type="text/javascript"></script>
<body>
<script type="text/javascript">

window.jsTestIsAsync = true;

description("Testing the <code>SkipForwardButton</code> class.");

const skipForwardButton = new SkipForwardButton({ layoutTraits: LayoutTraits.macOS });

shouldBeEqualToString("skipForwardButton.element.localName", "button");
shouldBeTrue('skipForwardButton.element.classList.contains("skip-forward")');
shouldBe("skipForwardButton.iconName", "Icons.SkipForward");

const iOSSkipForwardButton = new SkipForwardButton({ layoutTraits: LayoutTraits.iOS });

shouldBecomeEqual('skipForwardButton.image.element.style.webkitMaskImage.includes("macOS/SkipForward15.svg")', "true", () => {
    shouldBecomeEqual('iOSSkipForwardButton.image.element.style.webkitMaskImage.includes("iOS/SkipForward15.svg")', "true", finishJSTest);
});

</script>
<script src="../../../resources/js-test-post.js"></script>
</body>
