OLD | NEW |
(Empty) | |
| 1 <!DOCTYPE html> |
| 2 <html> |
| 3 <head> |
| 4 <script src="/w3c/resources/testharness.js"></script> |
| 5 <script src="/w3c/resources/testharnessreport.js"></script> |
| 6 <script src="mediasource-util.js"></script> |
| 7 |
| 8 <link rel='stylesheet' href='/w3c/resources/testharness.css'> |
| 9 </head> |
| 10 <body> |
| 11 <div id="log"></div> |
| 12 <script> |
| 13 function verifySourceBufferLists(mediaSource, expected) |
| 14 { |
| 15 assert_equals(mediaSource.sourceBuffers.length, expected.length, "
sourceBuffers length"); |
| 16 assert_equals(mediaSource.activeSourceBuffers.length, expected.len
gth, "activeSourceBuffers length"); |
| 17 for (var i = 0; i < expected.length; ++i) { |
| 18 assert_equals(mediaSource.sourceBuffers[i], expected[i], "Verify
ing mediaSource.sourceBuffers[" + i + "]"); |
| 19 assert_equals(mediaSource.activeSourceBuffers[i], expected[i], "
Verifying mediaSource.activeSourceBuffers[" + i + "]"); |
| 20 } |
| 21 } |
| 22 |
| 23 mediasource_test(function(test, mediaElement, mediaSource) |
| 24 { |
| 25 test.expectEvent(mediaSource.sourceBuffers, "addsourcebuffer", "so
urceBuffers"); |
| 26 test.expectEvent(mediaSource.activeSourceBuffers, "addsourcebuffer
", "activeSourceBuffers"); |
| 27 var sourceBufferA = mediaSource.addSourceBuffer(MediaSourceUtil.VI
DEO_ONLY_TYPE); |
| 28 var sourceBufferB = null; |
| 29 |
| 30 test.waitForExpectedEvents(function() |
| 31 { |
| 32 test.expectEvent(mediaSource.sourceBuffers, "addsourcebuffer",
"sourceBuffers"); |
| 33 test.expectEvent(mediaSource.activeSourceBuffers, "addsourcebu
ffer", "activeSourceBuffers"); |
| 34 sourceBufferB = mediaSource.addSourceBuffer(MediaSourceUtil.AU
DIO_ONLY_TYPE); |
| 35 |
| 36 verifySourceBufferLists(mediaSource, [sourceBufferA, sourceBuf
ferB]); |
| 37 }); |
| 38 |
| 39 test.waitForExpectedEvents(function() |
| 40 { |
| 41 test.expectEvent(mediaSource.activeSourceBuffers, "removesourc
ebuffer", "activeSourceBuffers"); |
| 42 test.expectEvent(mediaSource.sourceBuffers, "removesourcebuffe
r", "sourceBuffers"); |
| 43 mediaSource.removeSourceBuffer(sourceBufferA); |
| 44 |
| 45 verifySourceBufferLists(mediaSource, [sourceBufferB]); |
| 46 |
| 47 test.expectEvent(mediaSource.sourceBuffers, "addsourcebuffer",
"sourceBuffers"); |
| 48 test.expectEvent(mediaSource.activeSourceBuffers, "addsourcebu
ffer", "activeSourceBuffers"); |
| 49 sourceBufferA = mediaSource.addSourceBuffer(MediaSourceUtil.VI
DEO_ONLY_TYPE); |
| 50 |
| 51 verifySourceBufferLists(mediaSource, [sourceBufferB, sourceBuf
ferA]); |
| 52 }); |
| 53 |
| 54 test.waitForExpectedEvents(function() |
| 55 { |
| 56 test.done(); |
| 57 }); |
| 58 }, "Test SourceBufferList event dispatching."); |
| 59 |
| 60 mediasource_test(function(test, mediaElement, mediaSource) |
| 61 { |
| 62 test.expectEvent(mediaSource.sourceBuffers, "addsourcebuffer", "so
urceBuffers"); |
| 63 test.expectEvent(mediaSource.activeSourceBuffers, "addsourcebuffer
", "activeSourceBuffers"); |
| 64 test.expectEvent(mediaSource.sourceBuffers, "addsourcebuffer", "so
urceBuffers"); |
| 65 test.expectEvent(mediaSource.activeSourceBuffers, "addsourcebuffer
", "activeSourceBuffers"); |
| 66 var sourceBufferA = mediaSource.addSourceBuffer(MediaSourceUtil.VI
DEO_ONLY_TYPE); |
| 67 var sourceBufferB = mediaSource.addSourceBuffer(MediaSourceUtil.AU
DIO_ONLY_TYPE); |
| 68 |
| 69 verifySourceBufferLists(mediaSource, [sourceBufferA, sourceBufferB
]); |
| 70 |
| 71 test.waitForExpectedEvents(function() |
| 72 { |
| 73 verifySourceBufferLists(mediaSource, [sourceBufferA, sourceBuf
ferB]); |
| 74 |
| 75 // Force the media element to close the MediaSource object. |
| 76 test.expectEvent(mediaSource.activeSourceBuffers, "removesourc
ebuffer", "activeSourceBuffers"); |
| 77 test.expectEvent(mediaSource.sourceBuffers, "removesourcebuffe
r", "sourceBuffers"); |
| 78 test.expectEvent(mediaSource, "sourceclose", "mediaSource clos
ing"); |
| 79 mediaElement.src = ""; |
| 80 }); |
| 81 |
| 82 test.waitForExpectedEvents(function() |
| 83 { |
| 84 assert_equals(mediaSource.readyState, "closed", "mediaSource i
s closed."); |
| 85 |
| 86 verifySourceBufferLists(mediaSource, []); |
| 87 test.done(); |
| 88 }); |
| 89 }, "Test that only 1 removesourcebuffer event fires on each SourceBuff
erList when the MediaSource closes."); |
| 90 |
| 91 </script> |
| 92 </body> |
| 93 </html> |
OLD | NEW |