content/media/test/test_mediarecorder_getencodeddata.html

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/content/media/test/test_mediarecorder_getencodeddata.html	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,64 @@
     1.4 +<!DOCTYPE HTML>
     1.5 +<html>
     1.6 +<head>
     1.7 +  <title>Bug 957452 Test GetEncodedData problem on asan build</title>
     1.8 +  <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
     1.9 +  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
    1.10 +</head>
    1.11 +<body>
    1.12 +<pre id="test">
    1.13 +<script class="testbody" type="text/javascript">
    1.14 +SimpleTest.waitForExplicitFinish();
    1.15 +SpecialPowers.pushPrefEnv({"set": [["media.ogg.enabled", false]]},
    1.16 +  function () {
    1.17 +    var ac = new window.AudioContext();
    1.18 +    var dest = ac.createMediaStreamDestination();
    1.19 +    var stream = dest.stream;
    1.20 +    var onErrorFired = false;
    1.21 +    var expectedMimeType = '';
    1.22 +    var ondataavailableFired = false;
    1.23 +    setTimeout(function() {
    1.24 +      var mediaRecorder = new MediaRecorder(stream);
    1.25 +      mediaRecorder.onstop = function(e) {
    1.26 +        is(e.target.state, 'inactive',
    1.27 +           'Media recorder is inactive after being stopped');
    1.28 +        ok(onErrorFired, 'onStop after onError');
    1.29 +        ok(ondataavailableFired, 'ondataavailableFired');
    1.30 +
    1.31 +        SimpleTest.finish();
    1.32 +      }
    1.33 +      mediaRecorder.ondataavailable = function(evt) {
    1.34 +        ondataavailableFired = true;
    1.35 +        ok(evt instanceof BlobEvent,
    1.36 +           'Events fired from ondataavailable should be BlobEvent');
    1.37 +        is(evt.type, 'dataavailable',
    1.38 +           'Event type should dataavailable');
    1.39 +        is(evt.data.size, 0,
    1.40 +           'Blob data size received is equal to zero');
    1.41 +        is(evt.data.type, expectedMimeType,
    1.42 +           'Blob data received should have type = ' + expectedMimeType);
    1.43 +        is(evt.target.mimeType, expectedMimeType,
    1.44 +           'Mime type in ondataavailable = ' + expectedMimeType);
    1.45 +      }
    1.46 +      mediaRecorder.onerror = function(evt) {
    1.47 +        ok(evt instanceof RecordErrorEvent,
    1.48 +          'Events fired from onerror should be RecordErrorEvent');
    1.49 +        is(evt.type, 'error',
    1.50 +           'Event type should onerror');
    1.51 +        is(evt.name, 'GenericError',
    1.52 +           'Event name is GenericError');
    1.53 +        onErrorFired = true;
    1.54 +      }
    1.55 +      mediaRecorder.start(0);
    1.56 +      is(mediaRecorder.state, 'recording', 'Media recorder should be recording');
    1.57 +      is(mediaRecorder.stream, stream,
    1.58 +         'Media recorder stream = element stream at the start of recording');
    1.59 +      mediaRecorder.requestData();
    1.60 +      mediaRecorder.stop();
    1.61 +    }, 100);
    1.62 +  }
    1.63 +);
    1.64 +</script>
    1.65 +</pre>
    1.66 +</body>
    1.67 +</html>

mercurial