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'> |
wolenetz
2016/04/27 21:39:55
nit: remove this line. css is added by testharness
servolk
2016/04/27 23:41:35
Done.
| |
9 </head> | 9 </head> |
10 <body> | 10 <body> |
11 <div id="log"></div> | 11 <div id="log"></div> |
wolenetz
2016/04/27 21:39:55
nit: remove this line. unnecessary now..
servolk
2016/04/27 23:41:36
Done.
| |
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) |
wolenetz
2016/04/27 21:39:54
nit indent everything 2 more columns between <scri
servolk
2016/04/27 23:41:35
Done.
| |
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.'); | |
17 test.expectEvent(sourceBuffer.audioTracks, 'addtrack', 'sourceBuff er.videoTracks addtrack event'); | 16 test.expectEvent(sourceBuffer.audioTracks, 'addtrack', 'sourceBuff er.videoTracks addtrack event'); |
wolenetz
2016/04/27 21:39:54
nit: use either ' or ", not mixed, to contain stri
wolenetz
2016/04/27 21:39:55
nit: s/video/audio/ in message.
servolk
2016/04/27 23:41:35
Done.
servolk
2016/04/27 23:41:36
Done.
| |
18 test.expectEvent(sourceBuffer.videoTracks, 'addtrack', 'sourceBuff er.videoTracks addtrack event'); | 17 test.expectEvent(sourceBuffer.videoTracks, 'addtrack', 'sourceBuff er.videoTracks addtrack event'); |
19 test.expectEvent(mediaElement.audioTracks, 'addtrack', 'mediaEleme nt.videoTracks addtrack event'); | 18 test.expectEvent(mediaElement.audioTracks, 'addtrack', 'mediaEleme nt.videoTracks addtrack event'); |
wolenetz
2016/04/27 21:39:55
nit ditto here and below as appropriate.
servolk
2016/04/27 23:41:35
Done.
| |
20 test.expectEvent(mediaElement.videoTracks, 'addtrack', 'mediaEleme nt.videoTracks addtrack event'); | 19 test.expectEvent(mediaElement.videoTracks, 'addtrack', 'mediaEleme nt.videoTracks addtrack event'); |
20 test.expectEvent(mediaElement, 'loadedmetadata', 'loadedmetadata d one.'); | |
21 test.expectEvent(sourceBuffer, 'updateend', 'initSegment append en ded.'); | |
21 sourceBuffer.appendBuffer(initSegment); | 22 sourceBuffer.appendBuffer(initSegment); |
22 test.waitForExpectedEvents(function() | 23 test.waitForExpectedEvents(function() |
23 { | 24 { |
24 assert_equals(sourceBuffer.videoTracks.length, 1, "videoTracks.l ength"); | 25 assert_equals(sourceBuffer.videoTracks.length, 1, "videoTracks.l ength"); |
wolenetz
2016/04/27 21:39:55
nit:indentation
servolk
2016/04/27 23:41:36
Done.
| |
25 assert_equals(sourceBuffer.videoTracks[0].id, "1", "videoTrack.i d"); | 26 assert_equals(sourceBuffer.videoTracks[0].id, "1", "videoTrack.i d"); |
26 assert_equals(sourceBuffer.videoTracks[0].kind, "main", "videoTr ack.kind"); | 27 assert_equals(sourceBuffer.videoTracks[0].kind, "main", "videoTr ack.kind"); |
27 assert_equals(sourceBuffer.videoTracks[0].label, "", "videoTrack .label"); | 28 assert_equals(sourceBuffer.videoTracks[0].label, "", "videoTrack .label"); |
28 assert_equals(sourceBuffer.videoTracks[0].language, "eng", "vide oTrack.language"); | 29 assert_equals(sourceBuffer.videoTracks[0].language, "eng", "vide oTrack.language"); |
29 assert_equals(sourceBuffer.videoTracks[0].sourceBuffer, sourceBu ffer, "videoTrack.sourceBuffer"); | 30 assert_equals(sourceBuffer.videoTracks[0].sourceBuffer, sourceBu ffer, "videoTrack.sourceBuffer"); |
30 // The first video track is selected by default. | 31 // The first video track is selected by default. |
31 assert_true(sourceBuffer.videoTracks[0].selected, "sourceBuffer. videoTracks[0].selected"); | 32 assert_true(sourceBuffer.videoTracks[0].selected, "sourceBuffer. videoTracks[0].selected"); |
32 | 33 |
33 assert_equals(sourceBuffer.audioTracks.length, 1, "audioTracks.l ength"); | 34 assert_equals(sourceBuffer.audioTracks.length, 1, "audioTracks.l ength"); |
34 assert_equals(sourceBuffer.audioTracks[0].id, "2", "audioTrack.i d"); | 35 assert_equals(sourceBuffer.audioTracks[0].id, "2", "audioTrack.i d"); |
35 assert_equals(sourceBuffer.audioTracks[0].kind, "main", "audioTr ack.kind"); | 36 assert_equals(sourceBuffer.audioTracks[0].kind, "main", "audioTr ack.kind"); |
36 assert_equals(sourceBuffer.audioTracks[0].label, "", "audioTrack .label"); | 37 assert_equals(sourceBuffer.audioTracks[0].label, "", "audioTrack .label"); |
37 assert_equals(sourceBuffer.audioTracks[0].language, "eng", "audi oTrack.language"); | 38 assert_equals(sourceBuffer.audioTracks[0].language, "eng", "audi oTrack.language"); |
38 assert_equals(sourceBuffer.audioTracks[0].sourceBuffer, sourceBu ffer, "audioTrack.sourceBuffer"); | 39 assert_equals(sourceBuffer.audioTracks[0].sourceBuffer, sourceBu ffer, "audioTrack.sourceBuffer"); |
39 // The first audio track is enabled by default. | 40 // The first audio track is enabled by default. |
40 assert_true(sourceBuffer.audioTracks[0].enabled, "sourceBuffer.a udioTracks[0].enabled"); | 41 assert_true(sourceBuffer.audioTracks[0].enabled, "sourceBuffer.a udioTracks[0].enabled"); |
41 | 42 |
42 assert_equals(mediaElement.videoTracks.length, 1, "videoTracks.l ength"); | 43 assert_equals(mediaElement.videoTracks.length, 1, "videoTracks.l ength"); |
43 assert_equals(mediaElement.videoTracks[0], sourceBuffer.videoTra cks[0], "mediaElement.videoTrack == sourceBuffer.videoTrack"); | 44 assert_equals(mediaElement.videoTracks[0], sourceBuffer.videoTra cks[0], "mediaElement.videoTrack == sourceBuffer.videoTrack"); |
44 | 45 |
45 assert_equals(mediaElement.audioTracks.length, 1, "audioTracks.l ength"); | 46 assert_equals(mediaElement.audioTracks.length, 1, "audioTracks.l ength"); |
46 assert_equals(mediaElement.audioTracks[0], sourceBuffer.audioTra cks[0], "mediaElement.audioTrack == sourceBuffer.audioTrack"); | 47 assert_equals(mediaElement.audioTracks[0], sourceBuffer.audioTra cks[0], "mediaElement.audioTrack == sourceBuffer.audioTrack"); |
47 | 48 |
48 test.done(); | 49 test.done(); |
49 }); | 50 }); |
50 }, "MediaSource media track properties"); | 51 }, "MediaSource media track properties"); |
52 | |
53 mediasource_testafterdataloaded(function(test, mediaElement, mediaSour ce, segmentInfo, sourceBuffer, mediaData) | |
54 { | |
55 var initSegment = MediaSourceUtil.extractSegmentData(mediaData, se gmentInfo.init); | |
56 test.expectEvent(sourceBuffer.audioTracks, 'addtrack', 'sourceBuff er.videoTracks addtrack event'); | |
wolenetz
2016/04/27 21:39:55
nit ditto (audio <-> video) here and below as appr
servolk
2016/04/27 23:41:35
Done.
| |
57 test.expectEvent(sourceBuffer.videoTracks, 'addtrack', 'sourceBuff er.videoTracks addtrack event'); | |
58 test.expectEvent(mediaElement.audioTracks, 'addtrack', 'mediaEleme nt.videoTracks addtrack event'); | |
59 test.expectEvent(mediaElement.videoTracks, 'addtrack', 'mediaEleme nt.videoTracks addtrack event'); | |
60 test.expectEvent(mediaElement, 'loadedmetadata', 'loadedmetadata d one.'); | |
61 test.expectEvent(sourceBuffer, 'updateend', 'initSegment append en ded.'); | |
62 sourceBuffer.appendBuffer(initSegment); | |
63 | |
64 var audioTrack; | |
65 var videoTrack; | |
66 test.waitForExpectedEvents(function() | |
wolenetz
2016/04/27 21:39:55
Since these first few lines are common across thes
servolk
2016/04/27 23:41:35
Done.
| |
67 { | |
68 assert_equals(mediaElement.videoTracks.length, 1, "videoTracks.l ength"); | |
wolenetz
2016/04/27 21:39:54
nit:indentation
servolk
2016/04/27 23:41:35
Done.
| |
69 assert_equals(mediaElement.audioTracks.length, 1, "audioTracks.l ength"); | |
70 assert_equals(sourceBuffer.videoTracks.length, 1, "videoTracks.l ength"); | |
71 assert_equals(sourceBuffer.audioTracks.length, 1, "audioTracks.l ength"); | |
72 | |
73 // The first video track is selected by default. | |
74 videoTrack = sourceBuffer.videoTracks[0]; | |
75 assert_true(videoTrack.selected, "sourceBuffer.videoTracks[0].se lected"); | |
76 assert_equals(videoTrack.sourceBuffer, sourceBuffer, "videoTrack .sourceBuffer"); | |
77 // The first audio track is enabled by default. | |
78 audioTrack = sourceBuffer.audioTracks[0]; | |
79 assert_true(audioTrack.enabled, "sourceBuffer.audioTracks[0].ena bled"); | |
80 assert_equals(audioTrack.sourceBuffer, sourceBuffer, "audioTrack .sourceBuffer"); | |
81 | |
82 test.expectEvent(sourceBuffer.audioTracks, 'removetrack', 'sourc eBuffer.videoTracks removetrack event'); | |
wolenetz
2016/04/27 21:39:55
nit ditto (audio <-> video) here and below as appr
servolk
2016/04/27 23:41:35
Done.
| |
83 test.expectEvent(sourceBuffer.videoTracks, 'removetrack', 'sourc eBuffer.videoTracks removetrack event'); | |
84 test.expectEvent(mediaElement.audioTracks, 'removetrack', 'media Element.videoTracks removetrack event'); | |
85 test.expectEvent(mediaElement.videoTracks, 'removetrack', 'media Element.videoTracks removetrack event'); | |
86 // Removing enabled audio track and selected video track should fire 'change' events on mediaElement track lists. | |
87 test.expectEvent(mediaElement.audioTracks, 'change', 'mediaEleme nt.audioTracks changed.'); | |
88 test.expectEvent(mediaElement.videoTracks, 'change', 'mediaEleme nt.videoTracks changed.'); | |
89 test.expectEvent(mediaSource.sourceBuffers, 'removesourcebuffer' , 'mediaSource.sourceBuffers removesourcebuffer event'); | |
90 mediaSource.removeSourceBuffer(sourceBuffer); | |
91 }); | |
92 | |
93 test.waitForExpectedEvents(function() | |
94 { | |
95 assert_equals(mediaSource.sourceBuffers.length, 0, "mediaSource. sourceBuffers.length"); | |
wolenetz
2016/04/27 21:39:55
nit:indentation
servolk
2016/04/27 23:41:35
Done.
| |
96 assert_equals(mediaElement.videoTracks.length, 0, "videoTracks.l ength"); | |
97 assert_equals(mediaElement.audioTracks.length, 0, "audioTracks.l ength"); | |
98 assert_equals(sourceBuffer.videoTracks.length, 0, "videoTracks.l ength"); | |
99 assert_equals(sourceBuffer.audioTracks.length, 0, "audioTracks.l ength"); | |
100 // Since audio and video tracks have been removed, their .source Buffer property should be null now. | |
101 assert_equals(audioTrack.sourceBuffer, null, "audioTrack.sourceB uffer"); | |
102 assert_equals(videoTrack.sourceBuffer, null, "videoTrack.sourceB uffer"); | |
103 test.done(); | |
104 }); | |
105 }, "MediaSource media tracks must be removed when a SourceBuffer is re moved"); | |
51 </script> | 106 </script> |
wolenetz
2016/04/27 21:39:55
Please add a test specifically for this removal al
servolk
2016/04/27 23:41:36
Done.
| |
52 </body> | 107 </body> |
53 </html> | 108 </html> |
54 | 109 |
OLD | NEW |