51 lines
1.8 KiB
HTML
51 lines
1.8 KiB
HTML
<!doctype html>
|
|
<meta charset=utf-8>
|
|
<title>RTCRtpSender.prototype.setParameters</title>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="RTCPeerConnection-helper.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();
|
|
t.add_cleanup(() => pc.close());
|
|
const transceiver = pc.addTransceiver('audio');
|
|
const { sender } = transceiver;
|
|
|
|
const param = sender.getParameters();
|
|
transceiver.stop();
|
|
return promise_rejects_dom(t, 'InvalidStateError',
|
|
sender.setParameters(param));
|
|
}, `setParameters() when transceiver is stopped should reject with InvalidStateError`);
|
|
|
|
promise_test(async t => {
|
|
const pc = new RTCPeerConnection();
|
|
t.add_cleanup(() => pc.close());
|
|
const sender = pc.addTransceiver('audio').sender;
|
|
const param = sender.getParameters();
|
|
sender.setParameters(param);
|
|
await sender.setParameters(param);
|
|
}, `setParameters() with already used parameters should work if the event loop has not been relinquished`);
|
|
|
|
promise_test(async t => {
|
|
const pc = new RTCPeerConnection();
|
|
t.add_cleanup(() => pc.close());
|
|
const sender = pc.addTransceiver('audio').sender;
|
|
const param = sender.getParameters();
|
|
sender.setParameters(param);
|
|
await queueAWebrtcTask();
|
|
|
|
await promise_rejects_dom(t, 'InvalidStateError',
|
|
sender.setParameters(param));
|
|
}, `setParameters() with already used parameters should reject with InvalidStateError if the event loop has been relinquished`);
|
|
|
|
</script>
|