| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <html> | 2 <html> |
| 3 <head> | 3 <head> |
| 4 <script src="/w3c/resources/testharness.js"></script> | 4 <script src="/w3c/resources/testharness.js"></script> |
| 5 <script src="/w3c/resources/testharnessreport.js"></script> | 5 <script src="/w3c/resources/testharnessreport.js"></script> |
| 6 <script src="mediasource-util.js"></script> | 6 <script src="mediasource-util.js"></script> |
| 7 | 7 |
| 8 <link rel='stylesheet' href='/w3c/resources/testharness.css'> | 8 <link rel='stylesheet' href='/w3c/resources/testharness.css'> |
| 9 </head> | 9 </head> |
| 10 <body> | 10 <body> |
| 11 <div id="log"></div> | 11 <div id="log"></div> |
| 12 <script> | 12 <script> |
| 13 mediasource_test(function(test, mediaElement, mediaSource) | 13 mediasource_test(function(test, mediaElement, mediaSource) |
| 14 { | 14 { |
| 15 mediaSource.endOfStream(); |
| 16 assert_throws("InvalidStateError", |
| 17 function() { mediaSource.addSourceBuffer(MediaSourceUt
il.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 { |
| 15 assert_throws("InvalidAccessError", | 24 assert_throws("InvalidAccessError", |
| 16 function() { mediaSource.addSourceBuffer(""); }, | 25 function() { mediaSource.addSourceBuffer(""); }, |
| 17 "addSourceBuffer() threw an exception when passed an e
mpty string."); | 26 "addSourceBuffer() threw an exception when passed an e
mpty string."); |
| 18 test.done(); | 27 test.done(); |
| 19 }, "Test addSourceBuffer() with empty type"); | 28 }, "Test addSourceBuffer() with empty type"); |
| 20 | 29 |
| 21 mediasource_test(function(test, mediaElement, mediaSource) | 30 mediasource_test(function(test, mediaElement, mediaSource) |
| 22 { | 31 { |
| 23 assert_throws("NotSupportedError", | 32 assert_throws("NotSupportedError", |
| 24 function() { mediaSource.addSourceBuffer("invalidType"
); }, | 33 function() { mediaSource.addSourceBuffer("invalidType"
); }, |
| 25 "addSourceBuffer() threw an exception for an unsupport
ed type."); | 34 "addSourceBuffer() threw an exception for an unsupport
ed type."); |
| 26 test.done(); | 35 test.done(); |
| 27 }, "Test addSourceBuffer() with unsupported type"); | 36 }, "Test addSourceBuffer() with unsupported type"); |
| 28 | 37 |
| 29 | |
| 30 mediasource_test(function(test, mediaElement, mediaSource) | 38 mediasource_test(function(test, mediaElement, mediaSource) |
| 31 { | 39 { |
| 32 var mimetype = 'video/webm;codecs="vp8,vorbis"'; | 40 var mimetype = 'video/webm;codecs="vp8,vorbis"'; |
| 33 | 41 |
| 34 assert_true(MediaSource.isTypeSupported(mimetype), mimetype + " is
supported"); | 42 assert_true(MediaSource.isTypeSupported(mimetype), mimetype + " is
supported"); |
| 35 | 43 |
| 36 var sourceBuffer = mediaSource.addSourceBuffer(mimetype); | 44 var sourceBuffer = mediaSource.addSourceBuffer(mimetype); |
| 37 assert_true(sourceBuffer != null, "New SourceBuffer returned"); | 45 assert_true(sourceBuffer != null, "New SourceBuffer returned"); |
| 38 assert_equals(mediaSource.sourceBuffers[0], sourceBuffer, "SourceB
uffer is in mediaSource.sourceBuffers"); | 46 assert_equals(mediaSource.sourceBuffers[0], sourceBuffer, "SourceB
uffer is in mediaSource.sourceBuffers"); |
| 39 assert_equals(mediaSource.activeSourceBuffers[0], sourceBuffer, "S
ourceBuffer is in mediaSource.activeSourceBuffers"); | 47 assert_equals(mediaSource.activeSourceBuffers[0], sourceBuffer, "S
ourceBuffer is in mediaSource.activeSourceBuffers"); |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 79 assert_true(MediaSource.isTypeSupported(audioMimetype), audioMimet
ype + " is supported"); | 87 assert_true(MediaSource.isTypeSupported(audioMimetype), audioMimet
ype + " is supported"); |
| 80 | 88 |
| 81 var sourceBufferA = mediaSource.addSourceBuffer(videoMimetype); | 89 var sourceBufferA = mediaSource.addSourceBuffer(videoMimetype); |
| 82 var sourceBufferB = mediaSource.addSourceBuffer(audioMimetype); | 90 var sourceBufferB = mediaSource.addSourceBuffer(audioMimetype); |
| 83 assert_equals(mediaSource.sourceBuffers[0], sourceBufferA, "source
BufferA is in mediaSource.sourceBuffers"); | 91 assert_equals(mediaSource.sourceBuffers[0], sourceBufferA, "source
BufferA is in mediaSource.sourceBuffers"); |
| 84 assert_equals(mediaSource.activeSourceBuffers[0], sourceBufferA, "
sourceBufferA is in mediaSource.activeSourceBuffers"); | 92 assert_equals(mediaSource.activeSourceBuffers[0], sourceBufferA, "
sourceBufferA is in mediaSource.activeSourceBuffers"); |
| 85 assert_equals(mediaSource.sourceBuffers[1], sourceBufferB, "source
BufferB is in mediaSource.sourceBuffers"); | 93 assert_equals(mediaSource.sourceBuffers[1], sourceBufferB, "source
BufferB is in mediaSource.sourceBuffers"); |
| 86 assert_equals(mediaSource.activeSourceBuffers[1], sourceBufferB, "
sourceBufferB is in mediaSource.activeSourceBuffers"); | 94 assert_equals(mediaSource.activeSourceBuffers[1], sourceBufferB, "
sourceBufferB is in mediaSource.activeSourceBuffers"); |
| 87 test.done(); | 95 test.done(); |
| 88 }, "Test addSourceBuffer() with AAC and H.264 in separate SourceBuffer
s"); | 96 }, "Test addSourceBuffer() with AAC and H.264 in separate SourceBuffer
s"); |
| 97 |
| 98 mediasource_test(function(test, mediaElement, mediaSource) |
| 99 { |
| 100 var reachedLimit = false; |
| 101 |
| 102 // The 20 here is an arbitrary upper limit to make sure the test te
rminates. This test |
| 103 // assumes that implementations won't support more than 20 SourceBu
ffers simultaneously. |
| 104 for (var i = 0; i < 20; ++i) { |
| 105 try { |
| 106 mediaSource.addSourceBuffer(MediaSourceUtil.AUDIO_VIDEO_TYP
E); |
| 107 } catch(e) { |
| 108 assert_equals(e.name, "QuotaExceededError"); |
| 109 reachedLimit = true; |
| 110 break; |
| 111 } |
| 112 } |
| 113 assert_true(reachedLimit, "Reached SourceBuffer limit."); |
| 114 test.done(); |
| 115 }, "Test addSourceBuffer() QuotaExceededError."); |
| 89 </script> | 116 </script> |
| 90 </body> | 117 </body> |
| 91 </html> | 118 </html> |
| OLD | NEW |