129 lines
4.4 KiB
HTML
129 lines
4.4 KiB
HTML
<!doctype html>
|
|
<meta charset=utf-8>
|
|
<title>RTCRtpSendParameters degradationPreference</title>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script>
|
|
'use strict';
|
|
|
|
promise_test(async t => {
|
|
const pc = new RTCPeerConnection();
|
|
t.add_cleanup(() => pc.close());
|
|
const { sender } = pc.addTransceiver('video');
|
|
|
|
let param = sender.getParameters();
|
|
|
|
assert_equals(param.degradationPreference, undefined,
|
|
'Expect initial param.degradationPreference to be undefined');
|
|
|
|
param.degradationPreference = 'maintain-framerate';
|
|
await sender.setParameters(param);
|
|
param = sender.getParameters();
|
|
assert_equals(param.degradationPreference, 'maintain-framerate');
|
|
|
|
param.degradationPreference = 'maintain-resolution';
|
|
await sender.setParameters(param);
|
|
param = sender.getParameters();
|
|
assert_equals(param.degradationPreference, 'maintain-resolution');
|
|
|
|
param.degradationPreference = 'balanced';
|
|
await sender.setParameters(param);
|
|
param = sender.getParameters();
|
|
assert_equals(param.degradationPreference, 'balanced');
|
|
|
|
param.degradationPreference = undefined;
|
|
await sender.setParameters(param);
|
|
param = sender.getParameters();
|
|
assert_equals(param.degradationPreference, undefined);
|
|
}, 'setParameters with degradationPreference set should succeed on video transceiver');
|
|
|
|
promise_test(async t => {
|
|
const pc = new RTCPeerConnection();
|
|
t.add_cleanup(() => pc.close());
|
|
const { sender } = pc.addTransceiver('video');
|
|
|
|
let param = sender.getParameters();
|
|
|
|
assert_equals(param.degradationPreference, undefined,
|
|
'Expect initial param.degradationPreference to be undefined');
|
|
|
|
param.degradationPreference = undefined;
|
|
|
|
await sender.setParameters(param);
|
|
|
|
param = sender.getParameters();
|
|
assert_equals(param.degradationPreference, undefined);
|
|
}, 'setParameters with degradationPreference unset should succeed on video transceiver');
|
|
|
|
promise_test(async t => {
|
|
const pc = new RTCPeerConnection();
|
|
t.add_cleanup(() => pc.close());
|
|
const { sender } = pc.addTransceiver('video');
|
|
|
|
let param = sender.getParameters();
|
|
param.degradationPreference = 'invalid';
|
|
|
|
return promise_rejects_js(t, TypeError, sender.setParameters(param));
|
|
}, 'setParameters with invalid degradationPreference should throw TypeError on video transceiver');
|
|
|
|
promise_test(async t => {
|
|
const pc = new RTCPeerConnection();
|
|
t.add_cleanup(() => pc.close());
|
|
const { sender } = pc.addTransceiver('audio');
|
|
|
|
let param = sender.getParameters();
|
|
|
|
assert_equals(param.degradationPreference, undefined,
|
|
'Expect initial param.degradationPreference to be undefined');
|
|
|
|
param.degradationPreference = 'maintain-framerate';
|
|
await sender.setParameters(param);
|
|
param = sender.getParameters();
|
|
assert_equals(param.degradationPreference, 'maintain-framerate');
|
|
|
|
param.degradationPreference = 'maintain-resolution';
|
|
await sender.setParameters(param);
|
|
param = sender.getParameters();
|
|
assert_equals(param.degradationPreference, 'maintain-resolution');
|
|
|
|
param.degradationPreference = 'balanced';
|
|
await sender.setParameters(param);
|
|
param = sender.getParameters();
|
|
assert_equals(param.degradationPreference, 'balanced');
|
|
|
|
param.degradationPreference = undefined;
|
|
await sender.setParameters(param);
|
|
param = sender.getParameters();
|
|
assert_equals(param.degradationPreference, undefined);
|
|
}, 'setParameters with degradationPreference set should succeed on audio transceiver');
|
|
|
|
promise_test(async t => {
|
|
const pc = new RTCPeerConnection();
|
|
t.add_cleanup(() => pc.close());
|
|
const { sender } = pc.addTransceiver('audio');
|
|
|
|
let param = sender.getParameters();
|
|
|
|
assert_equals(param.degradationPreference, undefined,
|
|
'Expect initial param.degradationPreference to be undefined');
|
|
|
|
param.degradationPreference = undefined;
|
|
|
|
await sender.setParameters(param);
|
|
|
|
param = sender.getParameters();
|
|
assert_equals(param.degradationPreference, undefined);
|
|
}, 'setParameters with degradationPreference unset should succeed on audio transceiver');
|
|
|
|
promise_test(async t => {
|
|
const pc = new RTCPeerConnection();
|
|
t.add_cleanup(() => pc.close());
|
|
const { sender } = pc.addTransceiver('audio');
|
|
|
|
let param = sender.getParameters();
|
|
param.degradationPreference = 'invalid';
|
|
|
|
return promise_rejects_js(t, TypeError, sender.setParameters(param));
|
|
}, 'setParameters with invalid degradationPreference should throw TypeError on audio transceiver');
|
|
|
|
</script>
|