Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(191)

Side by Side Diff: third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-avtracks.html

Issue 1846863002: Remove SourceBuffer media tracks on detach from media element (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@blink-sb-tracks6
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698