<script src="../../../resources/js-test-pre.js"></script>
<body>
<iframe src="../../content/silence.mp3" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>
<script type="text/javascript">

description("Testing the size of the media element in an audio media document on macOS.");

window.jsTestIsAsync = true;

let media;

(function runTestIfReady() {
    const iframe = document.querySelector("iframe");
    media = iframe.contentDocument.querySelector("video");

    if (!media) {
        setTimeout(runTestIfReady);
        return;
    }

    shouldBecomeEqualToString("getComputedStyle(media).width", "650px", () => {
        shouldBeEqualToString("getComputedStyle(media).height", "31px");

        debug("");
        iframe.remove();
        finishJSTest();
    });

})();

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