blob: 3181456a8b5ce6a4a424cb1d2e1710fbbf32e648 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script src="/media-resources/video-test.js"></script>
<script src="/media/resources/media-source/webm/segment-info.js"></script>
<script src="media-source.js"></script>
<script>
var segmentHelper = new MediaSourceTest.SegmentHelper(WebMSegmentInfo.testWebM);
function abortDuringInitSegment(runNextTestCase, videoTag)
{
segmentHelper.addSourceBuffer();
consoleWrite("Test aborting during initialization segment.");
try {
var initSegment = segmentHelper.initSegment;
var partialInitSegment = initSegment.subarray(0, initSegment.length / 2);
consoleWrite("Appending partial initialization segment.");
segmentHelper.sourceBuffer.append(partialInitSegment);
consoleWrite("Aborting append.");
segmentHelper.sourceBuffer.abort();
consoleWrite("Appending full initialization segment.");
segmentHelper.appendInitSegment();
consoleWrite("Appending enough media segments to trigger loadeddata.");
segmentHelper.appendMediaSegment(0);
segmentHelper.appendMediaSegment(1);
var eventHandler = function(event)
{
event.target.removeEventListener('loadeddata', eventHandler);
runNextTestCase();
};
videoTag.addEventListener('loadeddata', eventHandler);
} catch (e) {
consoleWrite("Unexpected exception " + e);
}
}
function abortDuringMediaSegment(runNextTestCase, videoTag)
{
segmentHelper.addSourceBuffer();
consoleWrite("Test aborting in the middle of a media segment.");
try {
segmentHelper.appendInitSegment();
var mediaSegment = segmentHelper.mediaSegments[0];
var partialMediaSegment = mediaSegment.subarray(0, mediaSegment.length / 2);
consoleWrite("Appending partial media segment.");
segmentHelper.sourceBuffer.append(partialMediaSegment);
consoleWrite("Aborting append.");
segmentHelper.sourceBuffer.abort();
consoleWrite("Appending full media segment.");
segmentHelper.appendMediaSegment(0);
consoleWrite("Appending enough media segments to trigger loadeddata.");
segmentHelper.appendMediaSegment(1);
var eventHandler = function(event)
{
event.target.removeEventListener('loadedmetadata', eventHandler);
runNextTestCase();
};
videoTag.addEventListener('loadedmetadata', eventHandler);
} catch (e) {
consoleWrite("Unexpected exception " + e);
}
}
function onLoad()
{
findMediaElement();
waitForEvent('loadeddata');
waitForEvent('webkitsourceopen', "", false, false, mediaSource);
waitForEvent('playing');
waitForEvent('webkitsourceended', "", false, false, mediaSource);
waitForEvent('ended');
waitForEvent('emptied');
segmentHelper.init(video, function(success)
{
if (!success) {
failTest("Failed to load segment data");
return;
}
var testCases = [
abortDuringInitSegment,
abortDuringMediaSegment,
];
MediaSourceTest.startSourceOpenTesting(video, testCases);
});
}
</script>
</head>
<body onload="onLoad()">
<video> </video>
<p>Tests webkitSourceAbort() functionality</p>
</body>
</html>