<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>StatusLabel</code> font is correctly set when hosted in media controls.");

const mediaControls = new MacOSInlineMediaControls({ width: 600, height: 300 });
mediaControls.showsStartButton = false;
mediaControls.statusLabel.enabled = true;
mediaControls.statusLabel.text = "Hello";
document.body.appendChild(mediaControls.element);

scheduler.frameDidFire = function()
{
    shouldBeEqualToString("window.getComputedStyle(mediaControls.statusLabel.element).fontFamily", "-apple-system");
    mediaControls.element.remove();
    debug("");
    finishMediaControlsTest();
};

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