tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

mediasource-closed.html (6478B)


      1 <!DOCTYPE html>
      2 <!-- Copyright © 2016 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
      3 <html>
      4    <head>
      5        <title>MediaSource.readyState equals "closed" test cases.</title>
      6        <script src="/resources/testharness.js"></script>
      7        <script src="/resources/testharnessreport.js"></script>
      8        <script src="mediasource-util.js"></script>
      9    </head>
     10    <body>
     11        <div id="log"></div>
     12        <script>
     13          test(function ()
     14          {
     15              var mediaSource = new MediaSource();
     16              assert_equals(mediaSource.sourceBuffers.length, 0, "sourceBuffers is empty");
     17              assert_equals(mediaSource.activeSourceBuffers.length, 0, "activeSourceBuffers is empty");
     18              assert_equals(mediaSource.readyState, "closed", "readyState is 'closed'");
     19              assert_true(isNaN(mediaSource.duration), "duration is NaN");
     20          }, "Test attribute values on a closed MediaSource object.");
     21 
     22          test(function ()
     23          {
     24              var mediaSource = new MediaSource();
     25              assert_throws_dom("InvalidStateError",
     26                  function() { mediaSource.addSourceBuffer(MediaSourceUtil.VIDEO_ONLY_TYPE); },
     27                  "addSourceBuffer() throws an exception when closed.");
     28          }, "Test addSourceBuffer() while closed.");
     29 
     30          mediasource_test(function(test, mediaElement, mediaSource)
     31          {
     32              var sourceBuffer = mediaSource.addSourceBuffer(MediaSourceUtil.AUDIO_ONLY_TYPE);
     33 
     34              // Setup a handler to run when the MediaSource closes.
     35              mediaSource.addEventListener('sourceclose', test.step_func(function (event)
     36              {
     37                  assert_equals(mediaSource.sourceBuffers.length, 0, "sourceBuffers is empty");
     38                  assert_equals(mediaSource.activeSourceBuffers.length, 0, "activeSourceBuffers is empty");
     39                  assert_equals(mediaSource.readyState, "closed", "readyState is 'closed'");
     40                  assert_throws_dom("NotFoundError",
     41                      function() { mediaSource.removeSourceBuffer(sourceBuffer); },
     42                      "removeSourceBuffer() throws an exception when closed.");
     43                  test.done();
     44              }));
     45 
     46              // Trigger the MediaSource to close.
     47              mediaElement.src = "";
     48          }, "Test removeSourceBuffer() while closed.");
     49 
     50          test(function ()
     51          {
     52              var mediaSource = new MediaSource();
     53              assert_throws_dom("InvalidStateError",
     54                  function() { mediaSource.endOfStream(); },
     55                  "endOfStream() throws an exception when closed.");
     56          }, "Test endOfStream() while closed.");
     57 
     58          test(function ()
     59          {
     60              var mediaSource = new MediaSource();
     61              assert_throws_dom("InvalidStateError",
     62                  function() { mediaSource.endOfStream("decode"); },
     63                  "endOfStream(decode) throws an exception when closed.");
     64          }, "Test endOfStream(decode) while closed.");
     65 
     66          test(function ()
     67          {
     68              var mediaSource = new MediaSource();
     69              assert_throws_dom("InvalidStateError",
     70                  function() { mediaSource.endOfStream("network"); },
     71                  "endOfStream(network) throws an exception when closed.");
     72          }, "Test endOfStream(network) while closed.");
     73 
     74          test(function ()
     75          {
     76              var mediaSource = new MediaSource();
     77              assert_throws_dom("InvalidStateError",
     78                  function() { mediaSource.duration = 10; },
     79                  "Setting duration throws an exception when closed.");
     80          }, "Test setting duration while closed.");
     81 
     82          mediasource_test(function(test, mediaElement, mediaSource)
     83          {
     84              var sourceBuffer = mediaSource.addSourceBuffer(MediaSourceUtil.AUDIO_ONLY_TYPE);
     85 
     86              assert_equals(mediaSource.readyState, "open", "readyState is 'open'");
     87              // Setup a handler to run when the MediaSource closes.
     88              mediaSource.addEventListener("sourceclose", test.step_func(function (event)
     89              {
     90                  assert_equals(mediaSource.readyState, "closed", "readyState is 'closed'");
     91                  assert_throws_dom("InvalidStateError",
     92                      function() { mediaSource.duration = 10; },
     93                      "Setting duration when closed throws an exception");
     94                  test.done();
     95              }));
     96 
     97              // Trigger the MediaSource to close.
     98              mediaElement.src = "";
     99          }, "Test setting duration while open->closed.");
    100 
    101           mediasource_test(function(test, mediaElement, mediaSource)
    102          {
    103              var sourceBuffer = mediaSource.addSourceBuffer(MediaSourceUtil.AUDIO_ONLY_TYPE);
    104 
    105              assert_equals(mediaSource.readyState, "open", "readyState is 'open'");
    106              // Setup a handler to run when the MediaSource closes.
    107              mediaSource.addEventListener("sourceclose", test.step_func(function (event)
    108              {
    109                  assert_equals(mediaSource.readyState, "closed", "readyState is 'closed'");
    110                  assert_true(isNaN(mediaSource.duration), "duration is NaN");
    111                  test.done();
    112              }));
    113 
    114              // Trigger the MediaSource to close.
    115              mediaElement.src = "";
    116          }, "Test getting duration while open->closed.");
    117 
    118          mediasource_test(function(test, mediaElement, mediaSource)
    119          {
    120              var sourceBuffer = mediaSource.addSourceBuffer(MediaSourceUtil.AUDIO_ONLY_TYPE);
    121 
    122              assert_equals(mediaSource.readyState, "open", "readyState is open");
    123 
    124              // Setup a handler to run when the MediaSource closes.
    125              mediaSource.addEventListener("sourceclose", test.step_func(function (event)
    126              {
    127                  assert_equals(mediaSource.readyState, "closed", "readyState is closed");
    128                  assert_throws_dom("InvalidStateError",
    129                    function() { sourceBuffer.abort(); },
    130                    "sourceBuffer.abort() throws INVALID_STATE_ERROR");
    131                  test.done();
    132              }));
    133 
    134              // Trigger the MediaSource to close.
    135              mediaElement.src = "";
    136          }, "Test sourcebuffer.abort when closed.");
    137 
    138        </script>
    139    </body>
    140 </html>