<video loop controls></video>
<p>Test that seeking video with 'loop' past it's end rewinds to the beginning and continues playback.</p>
<script src=video-test.js></script>
<script>

    waitForEvent('load', function () { 
        testExpected("video.paused", true);
        run("video.play()");
        testExpected("video.paused", false);
        setTimeout(timeCheck1, 200);
    });

    function timeCheck1() 
    {
        // make sure time is advancing, seek past end
        consoleWrite("");
        testExpected("video.paused", false);
        testExpected("media.currentTime", 0, '>');
        run("video.currentTime = 500");
        setTimeout(timeCheck2, 200);
    }

    function timeCheck2() 
    {
        consoleWrite("");
        testExpected("video.paused", false);
        testExpected("media.currentTime", 0, '>');
        consoleWrite("");
        endTest();
    }

    run("video.src = 'content/test.mp4'");
    consoleWrite("");
</script>
