<!DOCTYPE html>
<title>Test video buffering properties.</title>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="media-file.js"></script>
<video></video>
<script>
async_test(function(t) {
    var video = document.querySelector("video");

    assert_equals(video.buffered.length, 0);
    assert_throws("IndexSizeError", function() { video.buffered.start(-1); });
    assert_throws("IndexSizeError", function() { video.buffered.end(-1); });
    assert_throws("IndexSizeError", function() { video.buffered.start(0); });
    assert_throws("IndexSizeError", function() { video.buffered.end(0); });

    video.oncanplaythrough = t.step_func_done(function () {
        assert_equals(video.buffered.length, 1);
        assert_equals(video.buffered.start(0), 0);
        assert_greater_than(video.buffered.end(0), 0);
        assert_throws("IndexSizeError", function() { video.buffered.start(-1); });
        assert_throws("IndexSizeError", function() { video.buffered.end(-1); });
        assert_throws("IndexSizeError", function() { video.buffered.start(1); });
        assert_throws("IndexSizeError", function() { video.buffered.end(1); });
    });

    video.src = findMediaFile("video", "content/test");
});
</script>