<!doctype html>
<title>MediaRecorder constructor</title>
<link rel="help" href="https://w3c.github.io/mediacapture-record/MediaRecorder.html#mediarecorder">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
    test(function() {
        assert_equals(MediaRecorder.length, 1);
        assert_throws(new TypeError, function() {
            new MediaRecorder();
        });
        assert_throws(new TypeError, function() {
            new MediaRecorder(null);
        });
        assert_throws(new TypeError, function() {
            new MediaRecorder(undefined);
        });
    }, "The MediaStream argument is required");

    test(function() {
        var context = new AudioContext();
        var dest = context.createMediaStreamDestination();
        var recorder = new MediaRecorder(dest.stream);
        assert_equals(recorder.state, "inactive");
    }, "The MediaStream instance's state attribute is set.");
</script>
