Index: LayoutTests/http/tests/media/media-source/mediasource-buffered.html |
diff --git a/LayoutTests/http/tests/media/media-source/mediasource-buffered.html b/LayoutTests/http/tests/media/media-source/mediasource-buffered.html |
index 92b93360ca7c2a270df87c12788eb07eead6886a..3c34916fe61c1548633907db5980338038184ba3 100644 |
--- a/LayoutTests/http/tests/media/media-source/mediasource-buffered.html |
+++ b/LayoutTests/http/tests/media/media-source/mediasource-buffered.html |
@@ -11,17 +11,17 @@ |
<script> |
var subType = MediaSourceUtil.getSubType(MediaSourceUtil.AUDIO_ONLY_TYPE); |
- var manifestFilenameA = subType + "/test-a-128k-44100Hz-1ch-manifest.json"; |
- var manifestFilenameB = subType + "/test-v-128k-320x240-30fps-10kfr-manifest.json"; |
+ var manifestFilenameA = subType + '/test-a-128k-44100Hz-1ch-manifest.json'; |
+ var manifestFilenameB = subType + '/test-v-128k-320x240-30fps-10kfr-manifest.json'; |
var expectationsA = { |
- webm: "{ [0.000, 2.022) }", |
- mp4: "{ [0.000, 2.043) }", |
+ webm: '{ [0.000, 2.022) }', |
+ mp4: '{ [0.000, 2.043) }', |
}; |
var expectationsB = { |
- webm: "{ [0.000, 2.000) }", |
- mp4: "{ [0.000, 2.000) }", |
+ webm: '{ [0.000, 2.000) }', |
+ mp4: '{ [0.000, 2.000) }', |
}; |
function mediaSourceDemuxedTest(callback, description) |
@@ -51,12 +51,12 @@ |
var sourceBufferA = mediaSource.activeSourceBuffers[0]; |
var sourceBufferB = mediaSource.activeSourceBuffers[1]; |
- test.expectEvent(sourceBufferA, "update"); |
- test.expectEvent(sourceBufferA, "updateend"); |
+ test.expectEvent(sourceBufferA, 'update'); |
+ test.expectEvent(sourceBufferA, 'updateend'); |
sourceBufferA.appendBuffer(dataA); |
- test.expectEvent(sourceBufferB, "update"); |
- test.expectEvent(sourceBufferB, "updateend"); |
+ test.expectEvent(sourceBufferB, 'update'); |
+ test.expectEvent(sourceBufferB, 'updateend'); |
sourceBufferB.appendBuffer(dataB); |
test.waitForExpectedEvents(function() |
@@ -68,19 +68,19 @@ |
mediaSourceDemuxedTest(function(test, mediaElement, mediaSource, dataA, dataB) { |
appendData(test, mediaSource, dataA, dataB, function() |
{ |
- assertBufferedEquals(mediaSource.activeSourceBuffers[0], expectationsA[subType], "mediaSource.activeSourceBuffers[0]"); |
- assertBufferedEquals(mediaSource.activeSourceBuffers[1], expectationsB[subType], "mediaSource.activeSourceBuffers[1]"); |
- assertBufferedEquals(mediaElement, expectationsB[subType], "mediaElement.buffered"); |
+ assertBufferedEquals(mediaSource.activeSourceBuffers[0], expectationsA[subType], 'mediaSource.activeSourceBuffers[0]'); |
+ assertBufferedEquals(mediaSource.activeSourceBuffers[1], expectationsB[subType], 'mediaSource.activeSourceBuffers[1]'); |
+ assertBufferedEquals(mediaElement, expectationsB[subType], 'mediaElement.buffered'); |
mediaSource.endOfStream(); |
- assertBufferedEquals(mediaSource.activeSourceBuffers[0], expectationsA[subType], "mediaSource.activeSourceBuffers[0]"); |
- assertBufferedEquals(mediaSource.activeSourceBuffers[1], expectationsB[subType], "mediaSource.activeSourceBuffers[1]"); |
- assertBufferedEquals(mediaElement, expectationsA[subType], "mediaElement.buffered"); |
+ assertBufferedEquals(mediaSource.activeSourceBuffers[0], expectationsA[subType], 'mediaSource.activeSourceBuffers[0]'); |
+ assertBufferedEquals(mediaSource.activeSourceBuffers[1], expectationsB[subType], 'mediaSource.activeSourceBuffers[1]'); |
+ assertBufferedEquals(mediaElement, expectationsA[subType], 'mediaElement.buffered'); |
test.done(); |
}); |
- }, "Demuxed content with different lengths"); |
+ }, 'Demuxed content with different lengths'); |
mediasource_test(function(test, mediaElement, mediaSource) |
{ |
@@ -88,53 +88,53 @@ |
test.failOnEvent(mediaElement, 'error'); |
test.endOnEvent(mediaElement, 'ended'); |
- MediaSourceUtil.fetchManifestAndData(test, subType + "/test-av-384k-44100Hz-1ch-320x240-30fps-10kfr-manifest.json", function(type, data) |
+ MediaSourceUtil.fetchManifestAndData(test, subType + '/test-av-384k-44100Hz-1ch-320x240-30fps-10kfr-manifest.json', function(type, data) |
{ |
var sourceBuffer = mediaSource.addSourceBuffer(type); |
- test.expectEvent(sourceBuffer, "update"); |
- test.expectEvent(sourceBuffer, "updateend"); |
+ test.expectEvent(sourceBuffer, 'update'); |
+ test.expectEvent(sourceBuffer, 'updateend'); |
sourceBuffer.appendBuffer(data); |
test.waitForExpectedEvents(function() |
{ |
var expectationsAV = { |
- webm: ["{ [0.000, 2.003) }", "{ [0.000, 2.022) }"], |
- mp4: ["{ [0.000, 2.000) }", "{ [0.000, 2.043) }"], |
+ webm: ['{ [0.000, 2.003) }', '{ [0.000, 2.022) }'], |
+ mp4: ['{ [0.000, 2.000) }', '{ [0.000, 2.043) }'], |
}; |
var expectedBeforeEndOfStream = expectationsAV[subType][0]; |
var expectedAfterEndOfStream = expectationsAV[subType][1]; |
- assertBufferedEquals(mediaSource.activeSourceBuffers[0], expectedBeforeEndOfStream, "mediaSource.activeSourceBuffers[0]"); |
- assertBufferedEquals(mediaElement, expectedBeforeEndOfStream, "mediaElement.buffered"); |
+ assertBufferedEquals(mediaSource.activeSourceBuffers[0], expectedBeforeEndOfStream, 'mediaSource.activeSourceBuffers[0]'); |
+ assertBufferedEquals(mediaElement, expectedBeforeEndOfStream, 'mediaElement.buffered'); |
mediaSource.endOfStream(); |
- assertBufferedEquals(mediaSource.activeSourceBuffers[0], expectedAfterEndOfStream, "mediaSource.activeSourceBuffers[0]"); |
- assertBufferedEquals(mediaElement, expectedAfterEndOfStream, "mediaElement.buffered"); |
+ assertBufferedEquals(mediaSource.activeSourceBuffers[0], expectedAfterEndOfStream, 'mediaSource.activeSourceBuffers[0]'); |
+ assertBufferedEquals(mediaElement, expectedAfterEndOfStream, 'mediaElement.buffered'); |
test.done(); |
}); |
}); |
- }, "Muxed tracks with different lengths"); |
+ }, 'Muxed tracks with different lengths'); |
mediaSourceDemuxedTest(function(test, mediaElement, mediaSource, dataA, dataB) { |
appendData(test, mediaSource, dataA, dataB.subarray(0, 318), function() |
{ |
- assertBufferedEquals(mediaSource.activeSourceBuffers[0], expectationsA[subType], "mediaSource.activeSourceBuffers[0]"); |
- assertBufferedEquals(mediaSource.activeSourceBuffers[1], "{ }", "mediaSource.activeSourceBuffers[1]"); |
- assertBufferedEquals(mediaElement, "{ }", "mediaElement.buffered"); |
+ assertBufferedEquals(mediaSource.activeSourceBuffers[0], expectationsA[subType], 'mediaSource.activeSourceBuffers[0]'); |
+ assertBufferedEquals(mediaSource.activeSourceBuffers[1], '{ }', 'mediaSource.activeSourceBuffers[1]'); |
+ assertBufferedEquals(mediaElement, '{ }', 'mediaElement.buffered'); |
mediaSource.endOfStream(); |
- assertBufferedEquals(mediaSource.activeSourceBuffers[0], expectationsA[subType], "mediaSource.activeSourceBuffers[0]"); |
- assertBufferedEquals(mediaSource.activeSourceBuffers[1], "{ }", "mediaSource.activeSourceBuffers[1]"); |
- assertBufferedEquals(mediaElement, "{ }", "mediaElement.buffered"); |
+ assertBufferedEquals(mediaSource.activeSourceBuffers[0], expectationsA[subType], 'mediaSource.activeSourceBuffers[0]'); |
+ assertBufferedEquals(mediaSource.activeSourceBuffers[1], '{ }', 'mediaSource.activeSourceBuffers[1]'); |
+ assertBufferedEquals(mediaElement, '{ }', 'mediaElement.buffered'); |
test.done(); |
}); |
- }, "Demuxed content with an empty buffered range on one SourceBuffer"); |
+ }, 'Demuxed content with an empty buffered range on one SourceBuffer'); |
mediasource_test(function(test, mediaElement, mediaSource) |
{ |
@@ -142,27 +142,27 @@ |
test.failOnEvent(mediaElement, 'error'); |
test.endOnEvent(mediaElement, 'ended'); |
- MediaSourceUtil.fetchManifestAndData(test, subType + "/test-av-384k-44100Hz-1ch-320x240-30fps-10kfr-manifest.json", function(type, data) |
+ MediaSourceUtil.fetchManifestAndData(test, subType + '/test-av-384k-44100Hz-1ch-320x240-30fps-10kfr-manifest.json', function(type, data) |
{ |
var sourceBuffer = mediaSource.addSourceBuffer(type); |
- test.expectEvent(sourceBuffer, "update"); |
- test.expectEvent(sourceBuffer, "updateend"); |
+ test.expectEvent(sourceBuffer, 'update'); |
+ test.expectEvent(sourceBuffer, 'updateend'); |
sourceBuffer.appendBuffer(data.subarray(0, 4052)); |
test.waitForExpectedEvents(function() |
{ |
- assertBufferedEquals(mediaSource.activeSourceBuffers[0], "{ }", "mediaSource.activeSourceBuffers[0]"); |
- assertBufferedEquals(mediaElement, "{ }", "mediaElement.buffered"); |
+ assertBufferedEquals(mediaSource.activeSourceBuffers[0], '{ }', 'mediaSource.activeSourceBuffers[0]'); |
+ assertBufferedEquals(mediaElement, '{ }', 'mediaElement.buffered'); |
mediaSource.endOfStream(); |
- assertBufferedEquals(mediaSource.activeSourceBuffers[0], "{ }", "mediaSource.activeSourceBuffers[0]"); |
- assertBufferedEquals(mediaElement, "{ }", "mediaElement.buffered"); |
+ assertBufferedEquals(mediaSource.activeSourceBuffers[0], '{ }', 'mediaSource.activeSourceBuffers[0]'); |
+ assertBufferedEquals(mediaElement, '{ }', 'mediaElement.buffered'); |
test.done(); |
}); |
}); |
- }, "Muxed content empty buffered ranges."); |
+ }, 'Muxed content empty buffered ranges.'); |
mediasource_test(function(test, mediaElement, mediaSource) |
{ |
@@ -174,27 +174,41 @@ |
// FIXME: verify activeSourceBuffers is empty until init segment with at least |
// one active track is appended. |
- assertBufferedEquals(mediaSource.sourceBuffers[0], "{ }", "mediaSource.sourceBuffers[0]"); |
- assertBufferedEquals(mediaElement, "{ }", "mediaElement.buffered"); |
+ assertBufferedEquals(mediaSource.sourceBuffers[0], '{ }', 'mediaSource.sourceBuffers[0]'); |
+ assertBufferedEquals(mediaElement, '{ }', 'mediaElement.buffered'); |
test.done(); |
- }, "Get buffered range when sourcebuffer is empty."); |
+ }, 'Get buffered range when sourcebuffer is empty.'); |
mediasource_testafterdataloaded(function(test, mediaElement, mediaSource, segmentInfo, sourceBuffer, mediaData) |
{ |
var initSegment = MediaSourceUtil.extractSegmentData(mediaData, segmentInfo.init); |
- test.expectEvent(sourceBuffer, "updateend", "initSegment append ended."); |
+ test.expectEvent(sourceBuffer, 'updateend', 'initSegment append ended.'); |
sourceBuffer.appendBuffer(initSegment); |
test.waitForExpectedEvents(function() |
{ |
- assertBufferedEquals(mediaSource.sourceBuffers[0], "{ }", "mediaSource.sourceBuffers[0]"); |
- assertBufferedEquals(mediaSource.activeSourceBuffers[0], "{ }", "mediaSource.activeSourceBuffers[0]"); |
- assertBufferedEquals(mediaElement, "{ }", "mediaElement.buffered"); |
+ assertBufferedEquals(mediaSource.sourceBuffers[0], '{ }', 'mediaSource.sourceBuffers[0]'); |
+ assertBufferedEquals(mediaSource.activeSourceBuffers[0], '{ }', 'mediaSource.activeSourceBuffers[0]'); |
+ assertBufferedEquals(mediaElement, '{ }', 'mediaElement.buffered'); |
test.done(); |
}); |
- }, "Get buffered range when only initsegment is appended."); |
+ }, 'Get buffered range when only initsegment is appended.'); |
+ |
+ mediasource_testafterdataloaded(function(test, mediaElement, mediaSource, segmentInfo, sourceBuffer, mediaData) |
+ { |
+ test.expectEvent(mediaSource.sourceBuffers, 'removesourcebuffer', 'SourceBuffer removed.'); |
+ mediaSource.removeSourceBuffer(sourceBuffer); |
+ |
+ test.waitForExpectedEvents(function() |
+ { |
+ assert_throws('InvalidStateError', |
+ function() { sourceBuffer.buffered; }, |
+ 'get sourceBuffer.buffered throws an exception for InvalidStateError.'); |
+ test.done(); |
+ }); |
+ }, 'Get buffered range after removing sourcebuffer.'); |
</script> |
</body> |
</html> |