<!DOCTYPE html>
<html>
    <head>
        <style> video { height: 25px; width: 300px; } </style>
        <script src=video-test.js></script>
    
        <script>
            var seekCount = 0;
    
            function loadedmetadata()
            {
                consoleWrite("<br><em>++ seek to near the end to reduce test time.</em>");
                run("video.currentTime = video.duration - 0.4");
            }

            function seeked()
            {
                if (++seekCount == 1)
                {
                    consoleWrite("<br><em>++ seek completed, beginning playback.</em>");
                    testExpected("video.paused", true);
                    testExpected("video.ended", false);
                    run("video.play()");
                    consoleWrite("");
                }
            }
    
            function ended() 
            {
                consoleWrite("<br><em>++ played to end and stopped.</em>");
                testExpected("video.ended", true);

                // don't use "testExpected()" so we won't log the actual duration as the floating point result may differ with different engines
                reportExpected(mediaElement.currentTime == mediaElement.duration, "mediaElement.currentTime", "==", "mediaElement.duration", mediaElement.currentTime);

                consoleWrite("");
                endTest();
            }
    
            function start()
            {
                findMediaElement();

                consoleWrite("<em>++ Test initial state.</em>");
                testExpected("video.loop", false);
            
                waitForEvent('pause');
                waitForEvent("ended", ended);
                waitForEvent("seeked", seeked);
                waitForEvent("loadedmetadata", loadedmetadata);

                video.src = "content/silence-loop.mov";
            }
        </script>

    </head>
    <body>
        <video controls ></video>
        <p>Test to make sure QuickTime movie saved with 'loop' user data does not loop automatically.</p>
        <script>start()</script>
    </body>
</html>
