diff options
Diffstat (limited to 'dom/media/test/test_mediarecorder_getencodeddata.html')
-rw-r--r-- | dom/media/test/test_mediarecorder_getencodeddata.html | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/dom/media/test/test_mediarecorder_getencodeddata.html b/dom/media/test/test_mediarecorder_getencodeddata.html new file mode 100644 index 000000000..426552ce7 --- /dev/null +++ b/dom/media/test/test_mediarecorder_getencodeddata.html @@ -0,0 +1,67 @@ +<!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(); +SimpleTest.requestFlakyTimeout("untriaged"); +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(); + }, 100); + } +); +</script> +</pre> +</body> +</html> |