summaryrefslogtreecommitdiffstats
path: root/dom/media/mediasource/test/test_SeekableAfterEndOfStream.html
blob: 850434429a24bcb7c5c718725379713aefd83d2a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<!DOCTYPE HTML>
<html>
<head>
  <title>MSE: seekable attribute after end of stream</title>
  <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
  <script type="text/javascript" src="mediasource.js"></script>
  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<pre id="test">
<script class="testbody" type="text/javascript">

SimpleTest.waitForExplicitFinish();

var updateCount = 0;

runWithMSE(function (ms, v) {
  ms.addEventListener("sourceopen", function () {
    var sb = ms.addSourceBuffer("video/webm");

    fetchWithXHR("seek.webm", function (arrayBuffer) {
      sb.appendBuffer(new Uint8Array(arrayBuffer));
      sb.addEventListener("updateend", function () {
        updateCount++;
        /* Ensure that we endOfStream on the first update event only as endOfStream can
           raise more if the duration of the last buffered range and the intial duration
           differ. See bug 1065207 */
        if (updateCount == 1) {
          ms.endOfStream();
        };
      });
    });

    var target = 2;

    v.addEventListener("loadedmetadata", function () {
      ok(v.seekable.length, "Resource is seekable");
      ok(v.seekable.length &&
          target >= v.seekable.start(0) &&
          target < v.seekable.end(0), "Target is within seekable range");
      SimpleTest.finish();
    });
  });
});

</script>
</pre>
</body>
</html>