<html>
    <head>
        <script src=media-file.js></script>
        <script src=video-test.js></script>
        <script>
            function start() {
                findMediaElement();
                waitForEventAndEnd('ended');
                video.src = findMediaFile("video", "content/test");
                waitForEventOnce('canplaythrough',
                    function ()
                    {
                        video.currentTime = 0.5;
                        video.playbackRate = -1;
                    });
                }
                waitForEventOnce('seeked',  () => { video.play(); });
                waitForEventOnce('playing', () => { failTestIn(5000); });
        </script>
    </head>
    <body onload="start()">
        <video loop />
    </body>
</html>
