gecko/content/media/test/test_mediarecorder_getencodeddata.html

68 lines
2.5 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE HTML>
<html>
<head>
<title>Bug 957452 Test GetEncodedData problem on asan build</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<pre id="test">
<script class="testbody" type="text/javascript">
SimpleTest.waitForExplicitFinish();
SpecialPowers.pushPrefEnv({"set": [["media.ogg.enabled", false]]},
function () {
var ac = new window.AudioContext();
var dest = ac.createMediaStreamDestination();
var stream = dest.stream;
var onErrorFired = false;
var expectedMimeType = '';
var ondataavailableFired = false;
setTimeout(function() {
var mediaRecorder = new MediaRecorder(stream);
mediaRecorder.onstop = function(e) {
is(e.target.state, 'inactive',
'Media recorder is inactive after being stopped');
ok(onErrorFired, 'onStop after onError');
ok(ondataavailableFired, 'ondataavailableFired');
//Apparently, as soon as the document is unloading, mediaRecorder.ondataavailable
//fires again, so set it to null to avoid failures
mediaRecorder.ondataavailable = null;
SimpleTest.finish();
}
mediaRecorder.ondataavailable = function(evt) {
ondataavailableFired = true;
ok(evt instanceof BlobEvent,
'Events fired from ondataavailable should be BlobEvent');
is(evt.type, 'dataavailable',
'Event type should dataavailable');
is(evt.data.size, 0,
'Blob data size received is equal to zero');
is(evt.data.type, expectedMimeType,
'Blob data received should have type = ' + expectedMimeType);
is(evt.target.mimeType, expectedMimeType,
'Mime type in ondataavailable = ' + expectedMimeType);
}
mediaRecorder.onerror = function(evt) {
ok(evt instanceof RecordErrorEvent,
'Events fired from onerror should be RecordErrorEvent');
is(evt.type, 'error',
'Event type should onerror');
is(evt.name, 'GenericError',
'Event name is GenericError');
onErrorFired = true;
}
mediaRecorder.start(0);
is(mediaRecorder.state, 'recording', 'Media recorder should be recording');
is(mediaRecorder.stream, stream,
'Media recorder stream = element stream at the start of recording');
mediaRecorder.requestData();
mediaRecorder.stop();
}, 100);
}
);
</script>
</pre>
</body>
</html>