<video controls></video>
<p>Test that seeking attribute is true immediately after a seek,
 goes back to false when seeking completes, and that a 'seeked' event
 is fired for each seek
 </p>
<script src=media-file.js></script>
<script src=video-test.js></script>
<script>

    var seekedCount = 0;

    function seeked()
    {
        ++seekedCount;
        consoleWrite("");

        testExpected("video.seeking", false);
        testExpected("video.currentTime", seekedCount * 0.5);

        if (seekedCount == 3) {
            endTest();
            return;
        }

        run("video.currentTime = " + (seekedCount + 1) * 0.5);
        testExpected("video.seeking", true);

        consoleWrite("");

     }

    function canplaythrough()
    {
        if (seekedCount > 0)
            return;

        run("video.currentTime = 0.5");
        consoleWrite("");
    }

    waitForEvent('waiting' );
    waitForEvent('seeked', seeked );
    waitForEventOnce('canplaythrough', canplaythrough);

    video.src = findMediaFile("video", "content/test");
</script>
