Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
- This WPT test may be referenced by the following Test IDs:
- /media-source/mediasource-endofstream-invaliderror.html - WPT Dashboard Interop Dashboard
<!DOCTYPE html>
<!-- Copyright © 2016 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
<html>
<head>
<title>Invalid MediaSource.endOfStream() parameter test cases.</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="mediasource-util.js"></script>
</head>
<body>
<div id="log"></div>
<script>
mediasource_test(function(test, mediaElement, mediaSource)
{
mediaElement.addEventListener('error', test.unreached_func("Unexpected event 'error'"));
assert_equals(mediaSource.readyState, 'open');
assert_throws_js(TypeError,
function() { mediaSource.endOfStream('garbage'); },
'endOfStream(\'garbage\') throws TypeError');
assert_equals(mediaSource.readyState, 'open');
test.done();
}, 'Test MediaSource.endOfStream() with invalid non-empty error string.');
mediasource_test(function(test, mediaElement, mediaSource)
{
mediaElement.addEventListener('error', test.unreached_func("Unexpected event 'error'"));
assert_equals(mediaSource.readyState, 'open');
assert_throws_js(TypeError,
function() { mediaSource.endOfStream(''); },
'endOfStream(\'\') throws TypeError');
assert_equals(mediaSource.readyState, 'open');
test.done();
}, 'Test MediaSource.endOfStream() with invalid empty error string.');
function endOfStreamWhenEndedTest(erroneousArg)
{
mediasource_testafterdataloaded(function(test, mediaElement, mediaSource, segmentInfo, sourceBuffer, mediaData)
{
assert_equals(mediaSource.readyState, 'open');
test.expectEvent(sourceBuffer, 'updateend', 'sourceBuffer');
sourceBuffer.appendBuffer(mediaData);
test.waitForExpectedEvents(function()
{
test.expectEvent(mediaSource, 'sourceended', 'mediaSource');
mediaSource.endOfStream();
test.waitForExpectedEvents(function()
{
assert_equals(mediaSource.readyState, 'ended');
assert_throws_dom("InvalidStateError",
function() { mediaSource.endOfStream(erroneousArg); },
"endOfStream() threw an exception when in ended state");
test.done();
});
});
}, 'Test MediaSource.endOfStream(' + (erroneousArg === undefined ? '' : erroneousArg) + ') when readyState is ended.');
}
endOfStreamWhenEndedTest(undefined);
endOfStreamWhenEndedTest("decode");
endOfStreamWhenEndedTest("network");
mediasource_test(function(test, mediaElement, mediaSource)
{
mediaElement.addEventListener('error', test.unreached_func("Unexpected event 'error'"));
assert_equals(mediaSource.readyState, 'open');
assert_throws_js(TypeError,
function() { mediaSource.endOfStream(null); },
'endOfStream(null) throws TypeError');
assert_equals(mediaSource.readyState, 'open');
test.done();
}, 'Test MediaSource.endOfStream() with invalid null error parameter.');
</script>
</body>
</html>