Chromium Code Reviews| 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_testafterdataloaded(function(test, mediaElement, mediaSour ce, segmentInfo, sourceBuffer, mediaData) | 13 mediasource_testafterdataloaded(function(test, mediaElement, mediaSour ce, segmentInfo, sourceBuffer, mediaData) |
| 14 { | 14 { |
| 15 var initSegment = MediaSourceUtil.extractSegmentData(mediaData, se gmentInfo.init); | 15 var initSegment = MediaSourceUtil.extractSegmentData(mediaData, se gmentInfo.init); |
| 16 test.expectEvent(sourceBuffer, 'updateend', 'initSegment append en ded.'); | 16 test.expectEvent(sourceBuffer, 'updateend', 'initSegment append en ded.'); |
| 17 sourceBuffer.appendBuffer(initSegment); | 17 sourceBuffer.appendBuffer(initSegment); |
| 18 test.waitForExpectedEvents(function() | 18 test.waitForExpectedEvents(function() |
| 19 { | 19 { |
| 20 // TODO(servolk): Find a way to make tests more concise in JS | |
| 21 assert_equals(mediaElement.videoTracks.length, 1, "videoTracks.l ength"); | |
| 22 assert_equals(mediaElement.videoTracks[0].id, "1", "videoTrack.i d"); | |
| 23 assert_equals(mediaElement.videoTracks[0].kind, "main", "videoTr ack.kind"); | |
| 24 assert_equals(mediaElement.videoTracks[0].label, "", "videoTrack .label"); | |
| 25 assert_equals(mediaElement.videoTracks[0].language, "eng", "vide oTrack.language"); | |
| 26 | |
| 27 assert_equals(mediaElement.audioTracks.length, 1, "audioTracks.l ength"); | |
| 28 assert_equals(mediaElement.audioTracks[0].id, "2", "audioTrack.i d"); | |
| 29 assert_equals(mediaElement.audioTracks[0].kind, "main", "audioTr ack.kind"); | |
| 30 assert_equals(mediaElement.audioTracks[0].label, "", "audioTrack .label"); | |
| 31 assert_equals(mediaElement.audioTracks[0].language, "eng", "audi oTrack.language"); | |
| 32 | |
| 33 assert_equals(sourceBuffer.videoTracks.length, 1, "videoTracks.l ength"); | 20 assert_equals(sourceBuffer.videoTracks.length, 1, "videoTracks.l ength"); |
| 34 assert_equals(sourceBuffer.videoTracks[0].id, "1", "videoTrack.i d"); | 21 assert_equals(sourceBuffer.videoTracks[0].id, "1", "videoTrack.i d"); |
| 35 assert_equals(sourceBuffer.videoTracks[0].kind, "main", "videoTr ack.kind"); | 22 assert_equals(sourceBuffer.videoTracks[0].kind, "main", "videoTr ack.kind"); |
| 36 assert_equals(sourceBuffer.videoTracks[0].label, "", "videoTrack .label"); | 23 assert_equals(sourceBuffer.videoTracks[0].label, "", "videoTrack .label"); |
| 37 assert_equals(sourceBuffer.videoTracks[0].language, "eng", "vide oTrack.language"); | 24 assert_equals(sourceBuffer.videoTracks[0].language, "eng", "vide oTrack.language"); |
| 38 assert_equals(sourceBuffer.videoTracks[0].sourceBuffer, sourceBu ffer, "videoTrack.sourceBuffer"); | 25 assert_equals(sourceBuffer.videoTracks[0].sourceBuffer, sourceBu ffer, "videoTrack.sourceBuffer"); |
| 26 // The first video track is selected by default. | |
| 27 assert_true(sourceBuffer.videoTracks[0].selected, "sourceBuffer. videoTracks[0].selected"); | |
| 39 | 28 |
| 40 assert_equals(sourceBuffer.audioTracks.length, 1, "audioTracks.l ength"); | 29 assert_equals(sourceBuffer.audioTracks.length, 1, "audioTracks.l ength"); |
| 41 assert_equals(sourceBuffer.audioTracks[0].id, "2", "audioTrack.i d"); | 30 assert_equals(sourceBuffer.audioTracks[0].id, "2", "audioTrack.i d"); |
| 42 assert_equals(sourceBuffer.audioTracks[0].kind, "main", "audioTr ack.kind"); | 31 assert_equals(sourceBuffer.audioTracks[0].kind, "main", "audioTr ack.kind"); |
| 43 assert_equals(sourceBuffer.audioTracks[0].label, "", "audioTrack .label"); | 32 assert_equals(sourceBuffer.audioTracks[0].label, "", "audioTrack .label"); |
| 44 assert_equals(sourceBuffer.audioTracks[0].language, "eng", "audi oTrack.language"); | 33 assert_equals(sourceBuffer.audioTracks[0].language, "eng", "audi oTrack.language"); |
| 45 assert_equals(sourceBuffer.audioTracks[0].sourceBuffer, sourceBu ffer, "audioTrack.sourceBuffer"); | 34 assert_equals(sourceBuffer.audioTracks[0].sourceBuffer, sourceBu ffer, "audioTrack.sourceBuffer"); |
| 35 // The first audio track is enabled by default. | |
| 36 assert_true(sourceBuffer.audioTracks[0].enabled, "sourceBuffer.a udioTracks[0].enabled"); | |
| 37 | |
| 38 assert_equals(mediaElement.videoTracks.length, 1, "videoTracks.l ength"); | |
| 39 assert_equals(mediaElement.videoTracks[0], sourceBuffer.videoTra cks[0], "mediaElement.videoTrack == sourceBuffer.videoTrack"); | |
| 40 | |
| 41 assert_equals(mediaElement.audioTracks.length, 1, "audioTracks.l ength"); | |
| 42 assert_equals(mediaElement.audioTracks[0], sourceBuffer.audioTra cks[0], "mediaElement.audioTrack == sourceBuffer.audioTrack"); | |
| 46 | 43 |
| 47 test.done(); | 44 test.done(); |
| 48 }); | 45 }); |
| 49 }, "MediaSource audio tracks"); | 46 }, "MediaSource media track properties"); |
| 47 | |
| 48 mediasource_testafterdataloaded(function(test, mediaElement, mediaSour ce, segmentInfo, sourceBuffer, mediaData) | |
| 49 { | |
| 50 var initSegment = MediaSourceUtil.extractSegmentData(mediaData, se gmentInfo.init); | |
| 51 test.expectEvent(sourceBuffer, 'updateend', 'initSegment append en ded.'); | |
| 52 sourceBuffer.appendBuffer(initSegment); | |
| 53 test.waitForExpectedEvents(function() | |
| 54 { | |
| 55 assert_equals(mediaElement.videoTracks.length, 1, "videoTracks.l ength"); | |
| 56 assert_equals(mediaElement.audioTracks.length, 1, "audioTracks.l ength"); | |
| 57 assert_equals(sourceBuffer.videoTracks.length, 1, "videoTracks.l ength"); | |
| 58 assert_equals(sourceBuffer.audioTracks.length, 1, "audioTracks.l ength"); | |
| 59 | |
| 60 test.expectEvent(mediaSource.sourceBuffers, 'removesourcebuffer' , 'SourceBuffer removed.'); | |
| 61 // Removing enabled audio track and selected video track should fire 'change' events on mediaElement track lists. | |
|
wolenetz
2016/03/31 19:06:15
Please also check for all of the HTMLME.{audio,vid
servolk
2016/03/31 22:39:51
Done.
| |
| 62 test.expectEvent(mediaElement.audioTracks, 'change', 'mediaEleme nt.audioTracks changed.'); | |
| 63 test.expectEvent(mediaElement.videoTracks, 'change', 'mediaEleme nt.videoTracks changed.'); | |
| 64 mediaSource.removeSourceBuffer(sourceBuffer); | |
| 65 }); | |
| 66 | |
| 67 test.waitForExpectedEvents(function() | |
| 68 { | |
| 69 assert_equals(mediaSource.sourceBuffers.length, 0, "mediaSource. sourceBuffers.length"); | |
| 70 assert_equals(mediaElement.videoTracks.length, 0, "videoTracks.l ength"); | |
| 71 assert_equals(mediaElement.audioTracks.length, 0, "audioTracks.l ength"); | |
| 72 assert_equals(sourceBuffer.videoTracks.length, 0, "videoTracks.l ength"); | |
| 73 assert_equals(sourceBuffer.audioTracks.length, 0, "audioTracks.l ength"); | |
| 74 test.done(); | |
| 75 }); | |
| 76 }, "MediaSource media tracks must be removed when a SourceBuffer is re moved"); | |
| 50 </script> | 77 </script> |
| 51 </body> | 78 </body> |
| 52 </html> | 79 </html> |
| 53 | 80 |
| OLD | NEW |