<html>
<head>
    <script src=../../media-resources/video-test.js></script>
    <script>
        if (window.testRunner) {
            testRunner.dumpAsText();
            testRunner.waitUntilDone();
        }

        function prepareAudio() {
            // Global variables used from video-test.js.
            video = document.getElementById('audio');
            video.src="http://127.0.0.1:8000/media/resources/serve-video.php?content-length=no"
                + "&name=hls/english/description.aac&type=audio/aac&stallOffset=512&stallDuration=2";
            mediaElement = video;
            video.play();
        }

        waitForEvent("ended", function onEnded() {
            testExpected("video.currentTime > 6", true);
            if (window.testRunner)
                window.testRunner.notifyDone();
        });
    </script>
</head>
<body onload="prepareAudio()">
Live audios (no Content-Length, loaded as they are generated) shouldn't trigger end-of-stream if future data isn't available immediately.<br/>
<audio controls id="audio" playsinline></audio>
</body>
</html>
