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

Unified 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, 9 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-avtracks.html
diff --git a/third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-avtracks.html b/third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-avtracks.html
index 5af7ffae6a23b8740005598d70d856c1ce9423fd..93effa6fe1b45cb56ef4e8af0374c579bfa85e55 100644
--- a/third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-avtracks.html
+++ b/third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-avtracks.html
@@ -17,25 +17,14 @@
sourceBuffer.appendBuffer(initSegment);
test.waitForExpectedEvents(function()
{
- // TODO(servolk): Find a way to make tests more concise in JS
- assert_equals(mediaElement.videoTracks.length, 1, "videoTracks.length");
- assert_equals(mediaElement.videoTracks[0].id, "1", "videoTrack.id");
- assert_equals(mediaElement.videoTracks[0].kind, "main", "videoTrack.kind");
- assert_equals(mediaElement.videoTracks[0].label, "", "videoTrack.label");
- assert_equals(mediaElement.videoTracks[0].language, "eng", "videoTrack.language");
-
- assert_equals(mediaElement.audioTracks.length, 1, "audioTracks.length");
- assert_equals(mediaElement.audioTracks[0].id, "2", "audioTrack.id");
- assert_equals(mediaElement.audioTracks[0].kind, "main", "audioTrack.kind");
- assert_equals(mediaElement.audioTracks[0].label, "", "audioTrack.label");
- assert_equals(mediaElement.audioTracks[0].language, "eng", "audioTrack.language");
-
assert_equals(sourceBuffer.videoTracks.length, 1, "videoTracks.length");
assert_equals(sourceBuffer.videoTracks[0].id, "1", "videoTrack.id");
assert_equals(sourceBuffer.videoTracks[0].kind, "main", "videoTrack.kind");
assert_equals(sourceBuffer.videoTracks[0].label, "", "videoTrack.label");
assert_equals(sourceBuffer.videoTracks[0].language, "eng", "videoTrack.language");
assert_equals(sourceBuffer.videoTracks[0].sourceBuffer, sourceBuffer, "videoTrack.sourceBuffer");
+ // The first video track is selected by default.
+ assert_true(sourceBuffer.videoTracks[0].selected, "sourceBuffer.videoTracks[0].selected");
assert_equals(sourceBuffer.audioTracks.length, 1, "audioTracks.length");
assert_equals(sourceBuffer.audioTracks[0].id, "2", "audioTrack.id");
@@ -43,10 +32,48 @@
assert_equals(sourceBuffer.audioTracks[0].label, "", "audioTrack.label");
assert_equals(sourceBuffer.audioTracks[0].language, "eng", "audioTrack.language");
assert_equals(sourceBuffer.audioTracks[0].sourceBuffer, sourceBuffer, "audioTrack.sourceBuffer");
+ // The first audio track is enabled by default.
+ assert_true(sourceBuffer.audioTracks[0].enabled, "sourceBuffer.audioTracks[0].enabled");
+
+ assert_equals(mediaElement.videoTracks.length, 1, "videoTracks.length");
+ assert_equals(mediaElement.videoTracks[0], sourceBuffer.videoTracks[0], "mediaElement.videoTrack == sourceBuffer.videoTrack");
+
+ assert_equals(mediaElement.audioTracks.length, 1, "audioTracks.length");
+ assert_equals(mediaElement.audioTracks[0], sourceBuffer.audioTracks[0], "mediaElement.audioTrack == sourceBuffer.audioTrack");
+
+ test.done();
+ });
+ }, "MediaSource media track properties");
+ mediasource_testafterdataloaded(function(test, mediaElement, mediaSource, segmentInfo, sourceBuffer, mediaData)
+ {
+ var initSegment = MediaSourceUtil.extractSegmentData(mediaData, segmentInfo.init);
+ test.expectEvent(sourceBuffer, 'updateend', 'initSegment append ended.');
+ sourceBuffer.appendBuffer(initSegment);
+ test.waitForExpectedEvents(function()
+ {
+ assert_equals(mediaElement.videoTracks.length, 1, "videoTracks.length");
+ assert_equals(mediaElement.audioTracks.length, 1, "audioTracks.length");
+ assert_equals(sourceBuffer.videoTracks.length, 1, "videoTracks.length");
+ assert_equals(sourceBuffer.audioTracks.length, 1, "audioTracks.length");
+
+ test.expectEvent(mediaSource.sourceBuffers, 'removesourcebuffer', 'SourceBuffer removed.');
+ // 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.
+ test.expectEvent(mediaElement.audioTracks, 'change', 'mediaElement.audioTracks changed.');
+ test.expectEvent(mediaElement.videoTracks, 'change', 'mediaElement.videoTracks changed.');
+ mediaSource.removeSourceBuffer(sourceBuffer);
+ });
+
+ test.waitForExpectedEvents(function()
+ {
+ assert_equals(mediaSource.sourceBuffers.length, 0, "mediaSource.sourceBuffers.length");
+ assert_equals(mediaElement.videoTracks.length, 0, "videoTracks.length");
+ assert_equals(mediaElement.audioTracks.length, 0, "audioTracks.length");
+ assert_equals(sourceBuffer.videoTracks.length, 0, "videoTracks.length");
+ assert_equals(sourceBuffer.audioTracks.length, 0, "audioTracks.length");
test.done();
});
- }, "MediaSource audio tracks");
+ }, "MediaSource media tracks must be removed when a SourceBuffer is removed");
</script>
</body>
</html>

Powered by Google App Engine
This is Rietveld 408576698