Automatic update from web-platform-tests Implement and ship RTCRtpSendParameters.degradationPreference Intent: https://groups.google.com/a/chromium.org/g/blink-dev/c/WPvxi5nUK2E/m/Xd0ZzPwxAwAJ Bug: 857041 Change-Id: I3f11c310624d5c2153eefbf9c1e08383d9aad4f8 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2074777 Commit-Queue: Florent Castelli <orphis@chromium.org> Reviewed-by: Henrik Boström <hbos@chromium.org> Auto-Submit: Florent Castelli <orphis@chromium.org> Cr-Commit-Position: refs/heads/master@{#755512} -- wpt-commits: 4f34fd4cdd7713a5300f8eb3fb090c83e3c070e6 wpt-pr: 22561
130 lines
4.4 KiB
HTML
130 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>
|