Chromium Code Reviews| Index: LayoutTests/http/tests/media/media-source/mediasource-append-buffer.html |
| diff --git a/LayoutTests/http/tests/media/media-source/mediasource-append-buffer.html b/LayoutTests/http/tests/media/media-source/mediasource-append-buffer.html |
| index 16347a57dbf6bfc4311f68b2957c956789e40531..175bbe369dd2ca67ddcf72d3f1a81726810e0f35 100644 |
| --- a/LayoutTests/http/tests/media/media-source/mediasource-append-buffer.html |
| +++ b/LayoutTests/http/tests/media/media-source/mediasource-append-buffer.html |
| @@ -345,6 +345,68 @@ |
| mediasource_testafterdataloaded(function(test, mediaElement, mediaSource, segmentInfo, sourceBuffer, mediaData) |
| { |
| var initSegment = MediaSourceUtil.extractSegmentData(mediaData, segmentInfo.init); |
| + var halfIndex = (initSegment.length + 1) / 2; |
| + var partialInitSegment = initSegment.subarray(0, halfIndex); |
| + var remainingInitSegment = initSegment.subarray(halfIndex); |
| + var mediaSegment = MediaSourceUtil.extractSegmentData(mediaData, segmentInfo.media[0]); |
| + |
| + test.expectEvent(sourceBuffer, "updateend", "partialInitSegment append ended."); |
|
wolenetz
2014/07/26 00:07:14
eek! :) there's lots of " vs ' inconsistency in th
prabhur1
2014/07/28 21:36:48
Done.
|
| + sourceBuffer.appendBuffer(partialInitSegment); |
| + |
| + test.waitForExpectedEvents(function() |
| + { |
| + test.expectEvent(sourceBuffer, "updateend", "remainingInitSegment append ended."); |
|
wolenetz
2014/07/26 00:07:14
Also, verify the init segment received algorithm h
prabhur1
2014/07/28 21:36:48
Done.
|
| + sourceBuffer.appendBuffer(remainingInitSegment); |
|
wolenetz
2014/07/26 00:07:15
Also, expect loadedmetadata event on media element
prabhur1
2014/07/28 21:36:48
Done.
|
| + }); |
| + |
| + test.waitForExpectedEvents(function() |
| + { |
| + test.expectEvent(sourceBuffer, "updateend", "mediaSegment append ended."); |
|
wolenetz
2014/07/26 00:07:14
Also, verify the init segment received algorithm H
prabhur1
2014/07/28 21:36:48
Done.
|
| + test.expectEvent(mediaElement, "loadeddata", "loadeddata fired."); |
| + sourceBuffer.appendBuffer(mediaSegment); |
| + }); |
| + |
| + test.waitForExpectedEvents(function() |
| + { |
| + assert_equals(sourceBuffer.updating, false); |
|
wolenetz
2014/07/26 00:07:15
Also verify HAVE_CURRENT_DATA readyState, though t
prabhur1
2014/07/28 21:36:47
Done.
prabhur1
2014/07/28 21:36:48
It appears to be responding with HAVE_ENOUGH_DATA
wolenetz
2014/07/29 22:33:20
Acknowledged.
|
| + test.done(); |
| + }); |
| + }, "Test appendBuffer with partial init segments."); |
| + |
| + mediasource_testafterdataloaded(function(test, mediaElement, mediaSource, segmentInfo, sourceBuffer, mediaData) |
| + { |
| + var initSegment = MediaSourceUtil.extractSegmentData(mediaData, segmentInfo.init); |
| + var mediaSegment = MediaSourceUtil.extractSegmentData(mediaData, segmentInfo.media[0]); |
| + var halfIndex = (mediaSegment.length + 1) / 2; |
| + var partialMediaSegment = mediaSegment.subarray(0, halfIndex); |
| + var remainingMediaSegment = mediaSegment.subarray(halfIndex); |
| + |
| + test.expectEvent(sourceBuffer, "updateend", "InitSegment append ended."); |
|
wolenetz
2014/07/26 00:07:14
nit: also expect loadedmetadata?
prabhur1
2014/07/28 21:36:48
Done.
|
| + sourceBuffer.appendBuffer(initSegment); |
| + |
| + test.waitForExpectedEvents(function() |
| + { |
| + test.expectEvent(sourceBuffer, "updateend", "partial media segment append ended."); |
|
wolenetz
2014/07/26 00:07:14
verify HAVE_METADATA readyState and non-NaN durati
prabhur1
2014/07/28 21:36:48
Done.
|
| + sourceBuffer.appendBuffer(partialMediaSegment); |
| + }); |
| + |
| + test.waitForExpectedEvents(function() |
| + { |
| + test.expectEvent(sourceBuffer, "updateend", "mediaSegment append ended."); |
|
wolenetz
2014/07/26 00:07:14
// Aside: we cannot assume HAVE_CURRENT_DATA at th
prabhur1
2014/07/28 21:36:48
Done.
|
| + test.expectEvent(mediaElement, "loadeddata", "loadeddata fired."); |
| + sourceBuffer.appendBuffer(remainingMediaSegment); |
| + }); |
| + |
| + test.waitForExpectedEvents(function() |
| + { |
| + assert_equals(sourceBuffer.updating, false); |
|
wolenetz
2014/07/26 00:07:14
verify >= HAVE_CURRENT_DATA element readyState (bu
prabhur1
2014/07/28 21:36:48
Done.
|
| + test.done(); |
| + }); |
| + }, "Test appendBuffer with partial media segments."); |
| + |
| + mediasource_testafterdataloaded(function(test, mediaElement, mediaSource, segmentInfo, sourceBuffer, mediaData) |
| + { |
| + var initSegment = MediaSourceUtil.extractSegmentData(mediaData, segmentInfo.init); |
| var partialInitSegment = initSegment.subarray(0, initSegment.length / 2); |
| var mediaSegment = MediaSourceUtil.extractSegmentData(mediaData, segmentInfo.media[0]); |
| @@ -415,7 +477,60 @@ |
| test.done(); |
| }); |
| }, "Test abort in the middle of a media segment."); |
| + |
| + mediasource_testafterdataloaded(function(test, mediaElement, mediaSource, segmentInfo, sourceBuffer, mediaData) |
| + { |
| + test.expectEvent(mediaSource.activeSourceBuffers, "removesourcebuffer", "SourceBuffer removed."); |
|
wolenetz
2014/07/26 00:07:14
I think this line is actually testing non-complian
prabhur1
2014/07/28 21:36:47
New test added to mediasource-removesourcebuffer.h
prabhur1
2014/07/28 21:36:48
Done.
|
| + mediaSource.removeSourceBuffer(sourceBuffer); |
| + test.waitForExpectedEvents(function() |
| + { |
| + assert_throws("InvalidStateError", |
| + function() { sourceBuffer.abort(); }, |
| + "sourceBuffer.abort() throws an exception for InvalidStateError."); |
| + |
| + test.done(); |
| + }); |
|
wolenetz
2014/07/26 00:07:14
nit: remove empty line.
prabhur1
2014/07/28 21:36:47
Done.
|
| + }, "Test abort after removing sourcebuffer."); |
| + |
| + mediasource_testafterdataloaded(function(test, mediaElement, mediaSource, segmentInfo, sourceBuffer, mediaData) |
| + { |
| + test.expectEvent(mediaSource, 'sourceended', "source ended"); |
| + |
| + assert_equals(mediaSource.readyState, 'open', "readyState is open."); |
| + mediaSource.endOfStream(); |
| + |
| + test.waitForExpectedEvents(function() |
| + { |
| + assert_equals(mediaSource.readyState, 'ended', "readyState is ended."); |
| + assert_throws("InvalidStateError", |
| + function() { sourceBuffer.abort(); }, |
| + "sourceBuffer.abort() throws an exception for InvalidStateError."); |
| + |
| + test.done(); |
| + }); |
| + |
| + }, "Test abort after readyState is ended."); |
| + |
| + mediasource_testafterdataloaded(function(test, mediaElement, mediaSource, segmentInfo, sourceBuffer, mediaData) |
| + { |
| + test.failOnEvent(mediaElement, "error"); |
|
wolenetz
2014/07/26 00:07:13
This is already done in mediasource_testafterdatal
prabhur1
2014/07/28 21:36:48
Done.
|
| + |
| + test.expectEvent(sourceBuffer, "updatestart", "Append started."); |
| + test.expectEvent(sourceBuffer, "updateend", "Append ended."); |
| + sourceBuffer.appendBuffer(mediaData); |
| + |
| + test.waitForExpectedEvents(function() |
| + { |
| + assert_false(sourceBuffer.updating, "updating attribute is false"); |
| + sourceBuffer.abort(); |
| + assert_equals(sourceBuffer.appendWindowStart, 0, "appendWindowStart is reset to 0"); |
|
wolenetz
2014/07/26 00:07:14
Improve this test by setting non-default appendwin
prabhur1
2014/07/28 21:36:47
Done.
|
| + assert_equals(sourceBuffer.appendWindowEnd, Number.POSITIVE_INFINITY, |
| + "appendWindowEnd is reset to +INFINITY"); |
|
wolenetz
2014/07/26 00:07:15
nit: indentation
prabhur1
2014/07/28 21:36:48
Done.
|
| + test.done(); |
| + }); |
| + }, "Test abort after appendBuffer."); |
|
wolenetz
2014/07/26 00:07:15
nit: s/ffer/ffer update ends/
prabhur1
2014/07/28 21:36:48
Done.
|
| + |
| mediasource_test(function(test, mediaElement, mediaSource) |
| { |
| var sourceBuffer = mediaSource.addSourceBuffer(MediaSourceUtil.VIDEO_ONLY_TYPE); |