<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Testing RTCDataChannelEvent</title>
    <script src="../../resources/testharness.js"></script>
    <script src="../../resources/testharnessreport.js"></script>
  </head>
  <body>
    <script>
test(() => {
    var pc = new RTCPeerConnection();
    var channel = pc.createDataChannel("test");

    assert_throws(new TypeError, () => new RTCDataChannelEvent());
    assert_throws(new TypeError, () => new RTCDataChannelEvent("test"));
    assert_throws(new TypeError, () => new RTCDataChannelEvent("test", undefined));
    assert_throws(new TypeError, () => new RTCDataChannelEvent("test", { channel: 1 }));
    assert_throws(new TypeError, () => new RTCDataChannelEvent(undefined, { channel: 1 }));

    var event = new RTCDataChannelEvent("test", { channel: channel });
    assert_equals(event.channel, channel, "channel passed in constructor should be used");
    assert_equals(event.type, "test");
    assert_equals(event.isTrusted, false, "trusted");
    assert_equals(event.bubbles, false, "bubble");
    assert_equals(event.cancelable, false, "cancelable");

}, "Testing data channel event constructor");
    </script>
  </body>
</html>
