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 function verifySourceBufferLists(mediaSource, expected) | 13 function verifySourceBufferLists(mediaSource, expected) |
14 { | 14 { |
15 assert_equals(mediaSource.sourceBuffers.length, expected.length, " sourceBuffers length"); | 15 assert_equals(mediaSource.sourceBuffers.length, expected.length, ' sourceBuffers length'); |
acolwell GONE FROM CHROMIUM
2014/09/10 17:16:26
ditto re: " -> '
wolenetz
2014/09/10 21:18:22
Done.
| |
16 assert_equals(mediaSource.activeSourceBuffers.length, expected.len gth, "activeSourceBuffers length"); | 16 assert_equals(mediaSource.activeSourceBuffers.length, 0, 'activeSo urceBuffers length'); |
17 for (var i = 0; i < expected.length; ++i) { | 17 for (var i = 0; i < expected.length; ++i) |
18 assert_equals(mediaSource.sourceBuffers[i], expected[i], "Verify ing mediaSource.sourceBuffers[" + 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 } | 19 } |
22 | 20 |
23 mediasource_test(function(test, mediaElement, mediaSource) | 21 mediasource_test(function(test, mediaElement, mediaSource) |
24 { | 22 { |
25 test.expectEvent(mediaSource.sourceBuffers, "addsourcebuffer", "so urceBuffers"); | 23 test.expectEvent(mediaSource.sourceBuffers, 'addsourcebuffer', 'so urceBuffers'); |
26 test.expectEvent(mediaSource.activeSourceBuffers, "addsourcebuffer ", "activeSourceBuffers"); | |
27 var sourceBufferA = mediaSource.addSourceBuffer(MediaSourceUtil.VI DEO_ONLY_TYPE); | 24 var sourceBufferA = mediaSource.addSourceBuffer(MediaSourceUtil.VI DEO_ONLY_TYPE); |
28 var sourceBufferB = null; | 25 var sourceBufferB = null; |
29 | 26 |
30 test.waitForExpectedEvents(function() | 27 test.waitForExpectedEvents(function() |
31 { | 28 { |
32 test.expectEvent(mediaSource.sourceBuffers, "addsourcebuffer", "sourceBuffers"); | 29 test.expectEvent(mediaSource.sourceBuffers, 'addsourcebuffer', 'sourceBuffers'); |
33 test.expectEvent(mediaSource.activeSourceBuffers, "addsourcebu ffer", "activeSourceBuffers"); | |
34 sourceBufferB = mediaSource.addSourceBuffer(MediaSourceUtil.AU DIO_ONLY_TYPE); | 30 sourceBufferB = mediaSource.addSourceBuffer(MediaSourceUtil.AU DIO_ONLY_TYPE); |
35 | 31 |
36 verifySourceBufferLists(mediaSource, [sourceBufferA, sourceBuf ferB]); | 32 verifySourceBufferLists(mediaSource, [sourceBufferA, sourceBuf ferB]); |
37 }); | 33 }); |
38 | 34 |
39 test.waitForExpectedEvents(function() | 35 test.waitForExpectedEvents(function() |
40 { | 36 { |
41 test.expectEvent(mediaSource.activeSourceBuffers, "removesourc ebuffer", "activeSourceBuffers"); | 37 test.expectEvent(mediaSource.sourceBuffers, 'removesourcebuffe r', 'sourceBuffers'); |
42 test.expectEvent(mediaSource.sourceBuffers, "removesourcebuffe r", "sourceBuffers"); | |
43 mediaSource.removeSourceBuffer(sourceBufferA); | 38 mediaSource.removeSourceBuffer(sourceBufferA); |
44 | 39 |
45 verifySourceBufferLists(mediaSource, [sourceBufferB]); | 40 verifySourceBufferLists(mediaSource, [sourceBufferB]); |
46 | 41 |
47 test.expectEvent(mediaSource.sourceBuffers, "addsourcebuffer", "sourceBuffers"); | 42 test.expectEvent(mediaSource.sourceBuffers, 'addsourcebuffer', 'sourceBuffers'); |
48 test.expectEvent(mediaSource.activeSourceBuffers, "addsourcebu ffer", "activeSourceBuffers"); | |
49 sourceBufferA = mediaSource.addSourceBuffer(MediaSourceUtil.VI DEO_ONLY_TYPE); | 43 sourceBufferA = mediaSource.addSourceBuffer(MediaSourceUtil.VI DEO_ONLY_TYPE); |
50 | 44 |
51 verifySourceBufferLists(mediaSource, [sourceBufferB, sourceBuf ferA]); | 45 verifySourceBufferLists(mediaSource, [sourceBufferB, sourceBuf ferA]); |
52 }); | 46 }); |
53 | 47 |
54 test.waitForExpectedEvents(function() | 48 test.waitForExpectedEvents(function() |
55 { | 49 { |
56 test.done(); | 50 test.done(); |
57 }); | 51 }); |
58 }, "Test SourceBufferList event dispatching."); | 52 }, 'Test SourceBufferList event dispatching.'); |
59 | 53 |
60 mediasource_test(function(test, mediaElement, mediaSource) | 54 mediasource_test(function(test, mediaElement, mediaSource) |
61 { | 55 { |
62 test.expectEvent(mediaSource.sourceBuffers, "addsourcebuffer", "so urceBuffers"); | 56 test.expectEvent(mediaSource.sourceBuffers, 'addsourcebuffer', 'so urceBuffers'); |
63 test.expectEvent(mediaSource.activeSourceBuffers, "addsourcebuffer ", "activeSourceBuffers"); | 57 test.expectEvent(mediaSource.sourceBuffers, 'addsourcebuffer', 'so urceBuffers'); |
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); | 58 var sourceBufferA = mediaSource.addSourceBuffer(MediaSourceUtil.VI DEO_ONLY_TYPE); |
67 var sourceBufferB = mediaSource.addSourceBuffer(MediaSourceUtil.AU DIO_ONLY_TYPE); | 59 var sourceBufferB = mediaSource.addSourceBuffer(MediaSourceUtil.AU DIO_ONLY_TYPE); |
68 | 60 |
69 verifySourceBufferLists(mediaSource, [sourceBufferA, sourceBufferB ]); | 61 verifySourceBufferLists(mediaSource, [sourceBufferA, sourceBufferB ]); |
70 | 62 |
71 test.waitForExpectedEvents(function() | 63 test.waitForExpectedEvents(function() |
72 { | 64 { |
73 verifySourceBufferLists(mediaSource, [sourceBufferA, sourceBuf ferB]); | 65 verifySourceBufferLists(mediaSource, [sourceBufferA, sourceBuf ferB]); |
74 | 66 |
75 // Force the media element to close the MediaSource object. | 67 // Force the media element to close the MediaSource object. |
76 test.expectEvent(mediaSource.activeSourceBuffers, "removesourc ebuffer", "activeSourceBuffers"); | 68 test.expectEvent(mediaSource.sourceBuffers, 'removesourcebuffe r', 'sourceBuffers'); |
77 test.expectEvent(mediaSource.sourceBuffers, "removesourcebuffe r", "sourceBuffers"); | 69 test.expectEvent(mediaSource, 'sourceclose', 'mediaSource clos ing'); |
78 test.expectEvent(mediaSource, "sourceclose", "mediaSource clos ing"); | 70 test.expectEvent(mediaElement, 'error', 'mediaElement error lo ading'); |
79 mediaElement.src = ""; | 71 mediaElement.src = ''; |
80 }); | 72 }); |
81 | 73 |
82 test.waitForExpectedEvents(function() | 74 test.waitForExpectedEvents(function() |
83 { | 75 { |
84 assert_equals(mediaSource.readyState, "closed", "mediaSource i s closed."); | 76 assert_equals(mediaElement.error.code, MediaError.MEDIA_ERR_SR C_NOT_SUPPORTED, 'Expected error code'); |
77 assert_equals(mediaSource.readyState, 'closed', 'mediaSource i s closed.'); | |
85 | 78 |
86 verifySourceBufferLists(mediaSource, []); | 79 verifySourceBufferLists(mediaSource, []); |
87 test.done(); | 80 test.done(); |
88 }); | 81 }); |
89 }, "Test that only 1 removesourcebuffer event fires on each SourceBuff erList when the MediaSource closes."); | 82 }, 'Test that only 1 removesourcebuffer event fires on sourceBuffers w hen the MediaSource closes.'); |
90 | 83 |
84 mediasource_testafterdataloaded_nofailonerror(function(test, mediaElem ent, mediaSource, segmentInfo, sourceBuffer, mediaData) | |
85 { | |
86 // FIXME: Test two activeSourceBuffers, either demuxed or once mul titrack is supported. | |
87 var initSegment = MediaSourceUtil.extractSegmentData(mediaData, se gmentInfo.init); | |
88 | |
89 test.expectEvent(sourceBuffer, 'updateend', 'initSegment append en ded.'); | |
90 test.expectEvent(mediaElement, 'loadedmetadata', 'loadedmetadata d one.'); | |
91 sourceBuffer.appendBuffer(initSegment); | |
92 | |
93 test.waitForExpectedEvents(function() | |
94 { | |
95 assert_equals(mediaSource.sourceBuffers.length, 1, 'mediaSourc e sourceBuffers'); | |
96 assert_equals(mediaSource.activeSourceBuffers.length, 1, 'medi aSource activeSourceBuffers'); | |
97 | |
98 // Force the media element to close the MediaSource object. | |
99 test.expectEvent(mediaSource.sourceBuffers, 'removesourcebuffe r', 'sourcebuffers'); | |
100 test.expectEvent(mediaSource.activeSourceBuffers, 'removesourc ebuffer', 'activesourcebuffers'); | |
101 test.expectEvent(mediaSource, 'sourceclose', 'mediaSource clos ing'); | |
102 test.expectEvent(mediaElement, 'error', 'mediaElement error lo ading'); | |
103 mediaElement.src = ''; | |
104 }); | |
105 | |
106 test.waitForExpectedEvents(function() | |
107 { | |
108 assert_equals(mediaElement.error.code, MediaError.MEDIA_ERR_SR C_NOT_SUPPORTED, 'Expected error code'); | |
109 assert_equals(mediaSource.readyState, 'closed', 'mediaSource i s closed.'); | |
110 assert_equals(mediaSource.sourceBuffers.length, 0, 'mediaSourc e sourceBuffers'); | |
111 assert_equals(mediaSource.activeSourceBuffers.length, 0, 'medi aSource activeSourceBuffers'); | |
112 test.done(); | |
113 }); | |
114 }, 'Test removesourcebuffer event firing on sourceBuffers and activeSo urceBuffers when MediaSource closes.'); | |
91 </script> | 115 </script> |
92 </body> | 116 </body> |
93 </html> | 117 </html> |
OLD | NEW |