Bug 1770047 [wpt PR 34117] - [Clipboard API] Clipboard Web Custom Formats implementat...
[gecko.git] / testing / web-platform / tests / mst-content-hint / RTCRtpSendParameters-degradationPreference.html
blob3573bb58760210611cd13f0d7d0fbd2aa6682bd7
1 <!doctype html>
2 <meta charset=utf-8>
3 <title>RTCRtpSendParameters degradationPreference</title>
4 <script src="/resources/testharness.js"></script>
5 <script src="/resources/testharnessreport.js"></script>
6 <script>
7 'use strict';
9 promise_test(async t => {
10 const pc = new RTCPeerConnection();
11 t.add_cleanup(() => pc.close());
12 const { sender } = pc.addTransceiver('video');
14 let param = sender.getParameters();
16 assert_equals(param.degradationPreference, undefined,
17 'Expect initial param.degradationPreference to be undefined');
19 param.degradationPreference = 'maintain-framerate';
20 await sender.setParameters(param);
21 param = sender.getParameters();
22 assert_equals(param.degradationPreference, 'maintain-framerate');
24 param.degradationPreference = 'maintain-resolution';
25 await sender.setParameters(param);
26 param = sender.getParameters();
27 assert_equals(param.degradationPreference, 'maintain-resolution');
29 param.degradationPreference = 'balanced';
30 await sender.setParameters(param);
31 param = sender.getParameters();
32 assert_equals(param.degradationPreference, 'balanced');
34 param.degradationPreference = undefined;
35 await sender.setParameters(param);
36 param = sender.getParameters();
37 assert_equals(param.degradationPreference, undefined);
38 }, 'setParameters with degradationPreference set should succeed on video transceiver');
40 promise_test(async t => {
41 const pc = new RTCPeerConnection();
42 t.add_cleanup(() => pc.close());
43 const { sender } = pc.addTransceiver('video');
45 let param = sender.getParameters();
47 assert_equals(param.degradationPreference, undefined,
48 'Expect initial param.degradationPreference to be undefined');
50 param.degradationPreference = undefined;
52 await sender.setParameters(param);
54 param = sender.getParameters();
55 assert_equals(param.degradationPreference, undefined);
56 }, 'setParameters with degradationPreference unset should succeed on video transceiver');
58 promise_test(async t => {
59 const pc = new RTCPeerConnection();
60 t.add_cleanup(() => pc.close());
61 const { sender } = pc.addTransceiver('video');
63 let param = sender.getParameters();
64 param.degradationPreference = 'invalid';
66 return promise_rejects_js(t, TypeError, sender.setParameters(param));
67 }, 'setParameters with invalid degradationPreference should throw TypeError on video transceiver');
69 promise_test(async t => {
70 const pc = new RTCPeerConnection();
71 t.add_cleanup(() => pc.close());
72 const { sender } = pc.addTransceiver('audio');
74 let param = sender.getParameters();
76 assert_equals(param.degradationPreference, undefined,
77 'Expect initial param.degradationPreference to be undefined');
79 param.degradationPreference = 'maintain-framerate';
80 await sender.setParameters(param);
81 param = sender.getParameters();
82 assert_equals(param.degradationPreference, 'maintain-framerate');
84 param.degradationPreference = 'maintain-resolution';
85 await sender.setParameters(param);
86 param = sender.getParameters();
87 assert_equals(param.degradationPreference, 'maintain-resolution');
89 param.degradationPreference = 'balanced';
90 await sender.setParameters(param);
91 param = sender.getParameters();
92 assert_equals(param.degradationPreference, 'balanced');
94 param.degradationPreference = undefined;
95 await sender.setParameters(param);
96 param = sender.getParameters();
97 assert_equals(param.degradationPreference, undefined);
98 }, 'setParameters with degradationPreference set should succeed on audio transceiver');
100 promise_test(async t => {
101 const pc = new RTCPeerConnection();
102 t.add_cleanup(() => pc.close());
103 const { sender } = pc.addTransceiver('audio');
105 let param = sender.getParameters();
107 assert_equals(param.degradationPreference, undefined,
108 'Expect initial param.degradationPreference to be undefined');
110 param.degradationPreference = undefined;
112 await sender.setParameters(param);
114 param = sender.getParameters();
115 assert_equals(param.degradationPreference, undefined);
116 }, 'setParameters with degradationPreference unset should succeed on audio transceiver');
118 promise_test(async t => {
119 const pc = new RTCPeerConnection();
120 t.add_cleanup(() => pc.close());
121 const { sender } = pc.addTransceiver('audio');
123 let param = sender.getParameters();
124 param.degradationPreference = 'invalid';
126 return promise_rejects_js(t, TypeError, sender.setParameters(param));
127 }, 'setParameters with invalid degradationPreference should throw TypeError on audio transceiver');
129 </script>