<!DOCTYPE html>
<meta charset="utf-8">
<title>RTCDataChannelEvent constructor</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
// Test is based on the following revision:
// https://rawgit.com/w3c/webrtc-pc/1cc5bfc3ff18741033d804c4a71f7891242fb5b3/webrtc.html

test(function() {
    assert_equals(RTCDataChannelEvent.length, 2);
    assert_throws_js(
        TypeError,
        function() { new RTCDataChannelEvent('type'); }
    );
}, 'RTCDataChannelEvent constructor without a required argument.');

test(function() {
    assert_throws_js(
        TypeError,
        function() { new RTCDataChannelEvent('type', { channel: null }); }
    );
}, 'RTCDataChannelEvent constructor with channel passed as null.');

test(function() {
    assert_throws_js(
        TypeError,
        function() { new RTCDataChannelEvent('type', { channel: undefined }); }
    );
}, 'RTCDataChannelEvent constructor with a channel passed as undefined.');

test(t => {
    const pc = new RTCPeerConnection();
    t.add_cleanup(() => pc.close());

    const dc = pc.createDataChannel('');
    const event = new RTCDataChannelEvent('type', { channel: dc });
    assert_true(event instanceof RTCDataChannelEvent);
    assert_equals(event.channel, dc);
}, 'RTCDataChannelEvent constructor with full arguments.');
</script>
