<!DOCTYPE html>
<html>
    <head>
        <title>text file served as 'text/plain'</title>
        <script src=../../media-resources/video-test.js></script>
        <script>
            function loadedmetadata(evt) 
            {
                logResult(false, "loaded text file served as text");
                endTest();
            }

            function error(evt)
            {
                logResult(true, "failed trying to load text file served as text");
                endTest();
            }

            function start() 
            {
                findMediaElement();

                waitForEvent('loadedmetadata', loadedmetadata);
                waitForEvent("error", error);
                waitForEvent("loadstart");
                testExpected("video.error", null);

                var movie = "resources/test.txt";
                video.src = "http://127.0.0.1:8000/media/video-throttled-load.cgi?name=" + movie + "&throttle=99999&type=text/plain";
            }
        </script>
    </head>

    <body onload="start()">
        <video controls></video>
    </body>
</html>
