| 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 |
| 14 function sourceBufferTrackDefaultsTest(callback, description) |
| 15 { |
| 16 mediasource_test(function(test, mediaElement, mediaSource) |
| 17 { |
| 18 var sourceBuffer = mediaSource.addSourceBuffer(MediaSourceUtil
.AUDIO_VIDEO_TYPE); |
| 19 assert_array_equals(sourceBuffer.trackDefaults, [], "Empty ini
tial SourceBuffer.trackDefaults"); |
| 20 callback(test, mediaElement, mediaSource, sourceBuffer); |
| 21 }, description); |
| 22 }; |
| 23 |
| 24 sourceBufferTrackDefaultsTest(function(test, mediaElement, mediaSource
, sourceBuffer) |
| 25 { |
| 26 var emptyList = new TrackDefaultList([]); |
| 27 assert_not_equals(sourceBuffer.trackDefaults, emptyList, "Initial
trackDefaults object differs from new empty list"); |
| 28 |
| 29 sourceBuffer.trackDefaults = emptyList; |
| 30 |
| 31 assert_array_equals(sourceBuffer.trackDefaults, [], "Round-tripped
empty trackDefaults"); |
| 32 assert_equals(sourceBuffer.trackDefaults, emptyList, "Round-trippe
d the empty TrackDefaultList object"); |
| 33 test.done(); |
| 34 }, "Test round-trip of empty SourceBuffer.trackDefaults"); |
| 35 |
| 36 sourceBufferTrackDefaultsTest(function(test, mediaElement, mediaSource
, sourceBuffer) |
| 37 { |
| 38 var trackDefault = new TrackDefault("audio", "en-US", "audio label
", ["main"], "1"); |
| 39 var trackDefaults = new TrackDefaultList([ trackDefault ]); |
| 40 |
| 41 sourceBuffer.trackDefaults = trackDefaults; |
| 42 |
| 43 assert_array_equals(sourceBuffer.trackDefaults, trackDefaults, "Ro
und-tripped non-empty trackDefaults"); |
| 44 assert_equals(sourceBuffer.trackDefaults.length, 1, "Confirmed non
-empty trackDefaults"); |
| 45 assert_equals(sourceBuffer.trackDefaults, trackDefaults, "Round-tr
ipped the non-empty TrackDefaultList object"); |
| 46 test.done(); |
| 47 }, "Test round-trip of non-empty SourceBuffer.trackDefaults"); |
| 48 |
| 49 sourceBufferTrackDefaultsTest(function(test, mediaElement, mediaSource
, sourceBuffer) |
| 50 { |
| 51 mediaSource.removeSourceBuffer(sourceBuffer); |
| 52 assert_throws("InvalidStateError", |
| 53 function() { sourceBuffer.trackDefaults = new TrackD
efaultList([]); }, |
| 54 "Exception thrown when setting trackDefaults on Sour
ceBuffer that is removed from MediaSource"); |
| 55 test.done(); |
| 56 }, "Test setting trackDefaults on an already-removed SourceBuffer"); |
| 57 |
| 58 mediasource_testafterdataloaded(function(test, mediaElement, mediaSour
ce, segmentInfo, sourceBuffer, mediaData) |
| 59 { |
| 60 assert_array_equals(sourceBuffer.trackDefaults, [], "Empty initial
SourceBuffer.trackDefaults"); |
| 61 test.expectEvent(sourceBuffer, "updateend", "Append ended"); |
| 62 sourceBuffer.appendBuffer(mediaData); |
| 63 assert_true(sourceBuffer.updating, "SourceBuffer is updating"); |
| 64 |
| 65 assert_throws("InvalidStateError", |
| 66 function() { sourceBuffer.trackDefaults = new TrackD
efaultList([]); }, |
| 67 "Exception thrown when setting trackDefaults on Sour
ceBuffer that is updating"); |
| 68 |
| 69 test.waitForExpectedEvents(function() |
| 70 { |
| 71 assert_false(sourceBuffer.updating, "SourceBuffer is not updat
ing"); |
| 72 sourceBuffer.trackDefaults = new TrackDefaultList([]); |
| 73 test.done(); |
| 74 }); |
| 75 }, "Test setting trackDefaults on a SourceBuffer that is updating"); |
| 76 |
| 77 sourceBufferTrackDefaultsTest(function(test, mediaElement, mediaSource
, sourceBuffer) |
| 78 { |
| 79 assert_throws(new TypeError(), |
| 80 function() { sourceBuffer.trackDefaults = null; }, |
| 81 "null should be disallowed by trackDefaults setter"); |
| 82 test.done(); |
| 83 }, "Test setting null SourceBuffer.trackDefaults"); |
| 84 </script> |
| 85 </body> |
| 86 </html> |
| OLD | NEW |