<html>
<head>
    <style> video { zoom: 150%; border: 3px solid red; } </style>
    <script src=media-file.js></script>
    <script>
        function init()
        {
            setSrcByTagName("video", findMediaFile("video", "content/test"));

            var totalCount = document.getElementsByTagName('video').length;
            var count = totalCount;
            document.addEventListener("canplaythrough", function () {
                if (!--count) {
                    if (window.testRunner)
                        setTimeout(function() { testRunner.notifyDone(); }, totalCount * 150);
                }
            }, true);

            if (window.testRunner) {
                testRunner.waitUntilDone();
                setTimeout(function() { 
                    document.body.appendChild(document.createTextNode('FAIL')); 
                    if (window.testRunner)
                        testRunner.notifyDone();
                }, 1500);
            }
        }
    </script>

</head>
<body onload="init();">
    <p>150% zoom, with width and height attributes </p>
    &nbsp;<video width=320 height=240></video><br>
    <p>150% zoom, without width and height attributes </p>
    &nbsp;<video></video><br>
</body>
</html>
