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 <link rel="stylesheet" href="/w3c/resources/testharness.css"> |
| 8 </head> |
| 9 <body> |
| 10 <div id="log"></div> |
| 11 <script> |
| 12 |
| 13 mediasource_testafterdataloaded(function(test, mediaElement, mediaSo
urce, segmentInfo, sourceBuffer, mediaData) |
| 14 { |
| 15 var initSegment = MediaSourceUtil.extractSegmentData(mediaData, se
gmentInfo.init); |
| 16 test.expectEvent(sourceBuffer.audioTracks, 'addtrack', 'sourceBuff
er.videoTracks addtrack event'); |
| 17 test.expectEvent(sourceBuffer.videoTracks, 'addtrack', 'sourceBuff
er.videoTracks addtrack event'); |
| 18 test.expectEvent(mediaElement.audioTracks, 'addtrack', 'mediaEleme
nt.videoTracks addtrack event'); |
| 19 test.expectEvent(mediaElement.videoTracks, 'addtrack', 'mediaEleme
nt.videoTracks addtrack event'); |
| 20 test.expectEvent(mediaElement, 'durationchange', 'mediaElement got
duration'); |
| 21 test.expectEvent(sourceBuffer, 'updateend', 'InitSegment append en
ded.'); |
| 22 test.expectEvent(mediaElement, 'loadedmetadata', 'loadedmetadata e
vent received.'); |
| 23 sourceBuffer.appendBuffer(initSegment); |
| 24 test.waitForExpectedEvents(function() |
| 25 { |
| 26 assert_equals(mediaElement.readyState, mediaElement.HAVE_METAD
ATA); |
| 27 assert_equals(mediaElement.duration, 6.042); |
| 28 assert_equals(mediaElement.audioTracks.length, 1, "mediaElemen
t.audioTracks.length"); |
| 29 assert_equals(mediaElement.videoTracks.length, 1, "mediaElemen
t.videoTracks.length"); |
| 30 assert_equals(sourceBuffer.audioTracks.length, 1, "sourceBuffe
r.audioTracks.length"); |
| 31 assert_equals(sourceBuffer.videoTracks.length, 1, "sourceBuffe
r.videoTracks.length"); |
| 32 assert_equals(mediaElement.audioTracks[0], sourceBuffer.audioT
racks[0], "mediaElement.audioTrack == sourceBuffer.audioTrack"); |
| 33 assert_equals(mediaElement.videoTracks[0], sourceBuffer.videoT
racks[0], "mediaElement.videoTrack == sourceBuffer.videoTrack"); |
| 34 // The first audio track is enabled by default. |
| 35 assert_true(sourceBuffer.audioTracks[0].enabled, "sourceBuffer
.audioTracks[0].enabled"); |
| 36 // The first video track is selected by default. |
| 37 assert_true(sourceBuffer.videoTracks[0].selected, "sourceBuffe
r.videoTracks[0].selected"); |
| 38 |
| 39 // Now append the same exact init segment again. This should s
ucceed, but no new tracks should |
| 40 // be added to the SourceBuffer or MediaElement. |
| 41 test.failOnEvent(sourceBuffer.audioTracks, 'addtrack', 'Unexpe
cted addtrack event on sourceBuffer.audioTracks for second init segment'); |
| 42 test.failOnEvent(sourceBuffer.videoTracks, 'addtrack', 'Unexpe
cted addtrack event on sourceBuffer.videoTracks for second init segment'); |
| 43 test.failOnEvent(mediaElement.audioTracks, 'addtrack', 'Unexpe
cted addtrack event on mediaElement.audioTracks for second init segment'); |
| 44 test.failOnEvent(mediaElement.videoTracks, 'addtrack', 'Unexpe
cted addtrack event on mediaElement.videoTracks for second init segment'); |
| 45 |
| 46 test.expectEvent(sourceBuffer, 'updateend', 'InitSegment appen
d ended.'); |
| 47 sourceBuffer.appendBuffer(initSegment); |
| 48 }); |
| 49 test.waitForExpectedEvents(function() |
| 50 { |
| 51 assert_equals(mediaElement.audioTracks.length, 1, "mediaElemen
t.audioTracks.length"); |
| 52 assert_equals(mediaElement.videoTracks.length, 1, "mediaElemen
t.videoTracks.length"); |
| 53 assert_equals(sourceBuffer.audioTracks.length, 1, "sourceBuffe
r.audioTracks.length"); |
| 54 assert_equals(sourceBuffer.videoTracks.length, 1, "sourceBuffe
r.videoTracks.length"); |
| 55 test.done(); |
| 56 }); |
| 57 }, 'Init segment received algorithm'); |
| 58 |
| 59 </script> |
| 60 </body> |
| 61 </html> |
OLD | NEW |