<!doctype html>
<meta charset=utf-8>
<title>RTCRtpSender.prototype.setParameters</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
  'use strict';

  // Test is based on the following editor draft:
  // https://w3c.github.io/webrtc-pc/archives/20170605/webrtc.html

  /*
    5.2.  setParameters
        6.  If transceiver.stopped is true, abort these steps and return a promise
            rejected with a newly created InvalidStateError.
   */
  promise_test(t => {
    const pc = new RTCPeerConnection();
    const transceiver = pc.addTransceiver('audio');
    const { sender } = transceiver;

    const param = sender.getParameters();
    transceiver.stop();

    return promise_rejects(t, 'InvalidStateError',
      sender.setParameters(param));

  }, `setParameters() when transceiver is stopped should reject with InvalidStateError`);

</script>
