<!DOCTYPE html>
<html>
<head>
    <script src="media-file.js"></script>
    <script src="video-test.js"></script>
    <script type="text/javascript" charset="utf-8">
        function doSetup()
        {
            findMediaElement();
            video.src = findMediaFile('video', 'content/test');
            video.addEventListener("canplaythrough", function () {
                video.currentTime = 1;  // so the snapshot always has the same frame.
            });
            video.addEventListener("seeked", function() {
                testExpected(video.currentTime, 1);
                if (window.testRunner)
                    testRunner.notifyDone();
            });
        }
        window.addEventListener('load', doSetup, false);
    </script>
</head>
<body>
    <p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=34966">https://bugs.webkit.org/show_bug.cgi?id=34966</a>. <br>
    You should see the video below.</p>

    <video width="480" height="270" poster="content/abe.png"></video>
</body>
</html>
