tor-browser

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

mediasource-addsourcebuffer.html (7438B)


      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.addSourceBuffer() 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          mediasource_test(function(test, mediaElement, mediaSource)
     14          {
     15              mediaSource.endOfStream();
     16              assert_throws_dom("InvalidStateError",
     17                          function() { mediaSource.addSourceBuffer(MediaSourceUtil.AUDIO_VIDEO_TYPE); },
     18                          "addSourceBuffer() threw an exception when in 'ended' state.");
     19              test.done();
     20          }, "Test addSourceBuffer() in 'ended' state.");
     21 
     22          mediasource_test(function(test, mediaElement, mediaSource)
     23          {
     24              assert_throws_js(TypeError,
     25                          function() { mediaSource.addSourceBuffer(""); },
     26                          "addSourceBuffer() threw an exception when passed an empty string.");
     27              test.done();
     28          }, "Test addSourceBuffer() with empty type");
     29 
     30          mediasource_test(function(test, mediaElement, mediaSource)
     31          {
     32              assert_throws_dom("NotSupportedError",
     33                          function() { mediaSource.addSourceBuffer(null); },
     34                          "addSourceBuffer() threw an exception when passed null.");
     35              test.done();
     36          }, "Test addSourceBuffer() with null");
     37 
     38          mediasource_test(function(test, mediaElement, mediaSource)
     39          {
     40              assert_throws_dom("NotSupportedError",
     41                          function() { mediaSource.addSourceBuffer("invalidType"); },
     42                          "addSourceBuffer() threw an exception for an unsupported type.");
     43              test.done();
     44          }, "Test addSourceBuffer() with unsupported type");
     45 
     46          mediasource_test(function(test, mediaElement, mediaSource)
     47          {
     48              var mimetype = 'video/webm;codecs="vp8,vorbis"';
     49 
     50              assert_true(MediaSource.isTypeSupported(mimetype), mimetype + " is supported");
     51 
     52              var sourceBuffer = mediaSource.addSourceBuffer(mimetype);
     53              assert_true(sourceBuffer != null, "New SourceBuffer returned");
     54              assert_equals(mediaSource.sourceBuffers[0], sourceBuffer, "SourceBuffer is in mediaSource.sourceBuffers");
     55              assert_equals(mediaSource.activeSourceBuffers.length, 0, "SourceBuffer is not in mediaSource.activeSourceBuffers");
     56              test.done();
     57          }, "Test addSourceBuffer() with Vorbis and VP8");
     58 
     59          mediasource_test(function(test, mediaElement, mediaSource)
     60          {
     61              var videoMimetype = 'video/webm;codecs="vp8"';
     62              var audioMimetype = 'audio/webm;codecs="vorbis"';
     63 
     64              assert_true(MediaSource.isTypeSupported(videoMimetype), videoMimetype + " is supported");
     65              assert_true(MediaSource.isTypeSupported(audioMimetype), audioMimetype + " is supported");
     66 
     67              var sourceBufferA = mediaSource.addSourceBuffer(videoMimetype);
     68              var sourceBufferB = mediaSource.addSourceBuffer(audioMimetype);
     69              assert_equals(mediaSource.sourceBuffers[0], sourceBufferA, "sourceBufferA is in mediaSource.sourceBuffers");
     70              assert_equals(mediaSource.activeSourceBuffers.length, 0, "SourceBufferA is not in mediaSource.activeSourceBuffers");
     71              assert_equals(mediaSource.sourceBuffers[1], sourceBufferB, "sourceBufferB is in mediaSource.sourceBuffers");
     72              assert_equals(mediaSource.activeSourceBuffers.length, 0, "SourceBufferB is not in mediaSource.activeSourceBuffers");
     73              test.done();
     74          }, "Test addSourceBuffer() with Vorbis and VP8 in separate SourceBuffers");
     75 
     76          mediasource_test(function(test, mediaElement, mediaSource)
     77          {
     78              var mimetype = MediaSourceUtil.VIDEO_ONLY_TYPE;
     79 
     80              assert_true(MediaSource.isTypeSupported(mimetype), mimetype + " is supported");
     81 
     82              var sourceBuffer = mediaSource.addSourceBuffer(mimetype);
     83              assert_true(sourceBuffer != null, "New SourceBuffer returned");
     84              assert_equals(mediaSource.sourceBuffers[0], sourceBuffer, "SourceBuffer is in mediaSource.sourceBuffers");
     85              assert_equals(mediaSource.activeSourceBuffers.length, 0, "SourceBuffer is not in mediaSource.activeSourceBuffers");
     86              test.done();
     87          }, "Test addSourceBuffer() video only");
     88 
     89          mediasource_test(function(test, mediaElement, mediaSource)
     90          {
     91              var mimetype = MediaSourceUtil.AUDIO_ONLY_TYPE;
     92 
     93              assert_true(MediaSource.isTypeSupported(mimetype), mimetype + " is supported");
     94 
     95              var sourceBuffer = mediaSource.addSourceBuffer(mimetype);
     96              assert_true(sourceBuffer != null, "New SourceBuffer returned");
     97              assert_equals(mediaSource.sourceBuffers[0], sourceBuffer, "SourceBuffer is in mediaSource.sourceBuffers");
     98              assert_equals(mediaSource.activeSourceBuffers.length, 0, "SourceBuffer is not in mediaSource.activeSourceBuffers");
     99              test.done();
    100          }, "Test addSourceBuffer() audio only");
    101 
    102          mediasource_test(function(test, mediaElement, mediaSource)
    103          {
    104              var mimetype = 'video/mp4;codecs="avc1.4D4001,mp4a.40.2"';
    105 
    106              assert_true(MediaSource.isTypeSupported(mimetype), mimetype + " is supported");
    107 
    108              var sourceBuffer = mediaSource.addSourceBuffer(mimetype);
    109              assert_true(sourceBuffer != null, "New SourceBuffer returned");
    110              assert_equals(mediaSource.sourceBuffers[0], sourceBuffer, "SourceBuffer is in mediaSource.sourceBuffers");
    111              assert_equals(mediaSource.activeSourceBuffers.length, 0, "SourceBuffer is not in mediaSource.activeSourceBuffers");
    112              test.done();
    113          }, "Test addSourceBuffer() with AAC and H.264");
    114 
    115          mediasource_test(function(test, mediaElement, mediaSource)
    116          {
    117              var videoMimetype = 'video/mp4;codecs="avc1.4D4001"';
    118              var audioMimetype = 'audio/mp4;codecs="mp4a.40.2"';
    119 
    120              assert_true(MediaSource.isTypeSupported(videoMimetype), videoMimetype + " is supported");
    121              assert_true(MediaSource.isTypeSupported(audioMimetype), audioMimetype + " is supported");
    122 
    123              var sourceBufferA = mediaSource.addSourceBuffer(videoMimetype);
    124              var sourceBufferB = mediaSource.addSourceBuffer(audioMimetype);
    125              assert_equals(mediaSource.sourceBuffers[0], sourceBufferA, "sourceBufferA is in mediaSource.sourceBuffers");
    126              assert_equals(mediaSource.activeSourceBuffers.length, 0, "SourceBufferA is not in mediaSource.activeSourceBuffers");
    127              assert_equals(mediaSource.sourceBuffers[1], sourceBufferB, "sourceBufferB is in mediaSource.sourceBuffers");
    128              assert_equals(mediaSource.activeSourceBuffers.length, 0, "SourceBufferB is not in mediaSource.activeSourceBuffers");
    129              test.done();
    130          }, "Test addSourceBuffer() with AAC and H.264 in separate SourceBuffers");
    131        </script>
    132    </body>
    133 </html>