<!DOCTYPE html>
<html>
    <head>
        <script src="../../media/media-file.js"></script>
        <script src="../../media/video-test.js"></script>
        <script type="text/javascript">
            if (window.testRunner) {
                window.testRunner.dumpAsText(true);
                window.testRunner.waitUntilDone();
            }
            function runTest() {
                video = document.getElementById('video');
                video.addEventListener('canplaythrough', canplaythrough, true);
                video.src = findMediaFile('video', '../../media/content/test');
            }
            function canplaythrough(e) {
                var video = e.target;
                video.addEventListener('seeked', seeked, true);
                video.currentTime = 1;
            }
            function seeked(e) {
                testExpected('video.currentTime', 1);

                if (window.testRunner)
                    setTimeout(function() { testRunner.notifyDone(); }, 150);
            }
        </script>
        <style>
            video {
                -webkit-box-reflect: below 0px;
                border: 3px solid red;
            }
        </style>
    </head>
    <body onload="runTest()">
        <video id="video"></video>
    </body>
</html>

