<html>
    <head>
        <style>
            audio { background-color: blue; } 
        </style>
        <script src=media-file.js></script>
        <script>
            function test()
            {
                setSrcByTagName("audio", findMediaFile("audio", "content/test"));

                if (window.testRunner) {
                    testRunner.waitUntilDone();
                    setTimeout(function() { 
                        document.body.appendChild(document.createTextNode('FAIL')); 
                        if (window.testRunner)
                                testRunner.notifyDone();
                    } , 8000);
                }
                var count = document.getElementsByTagName('audio').length;
                document.addEventListener("canplaythrough", function () {
                    if (!--count) {
                        document.body.offsetLeft;
                        if (window.testRunner)
                            testRunner.notifyDone();
                    }
                }, true);
            }
        </script>
    </head>
    <body onload="test()">
        <p>Test controls placement. </p>
        <audio controls></audio><br><br>
        <audio controls style="width: 320px;"></audio><br><br>
        <audio controls style="position: absolute; width: 320px; height: 100px;"></audio><br>
    </body>
</html>
