diff options
Diffstat (limited to 'tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-helper.js')
-rw-r--r-- | tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-helper.js | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-helper.js b/tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-helper.js index d7069493008..d61d8e14932 100644 --- a/tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-helper.js +++ b/tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-helper.js @@ -242,3 +242,69 @@ function validateCodecParameters(codec) { assert_optional_unsigned_int_field(codec, 'channels'); assert_optional_string_field(codec, 'sdpFmtpLine'); } + +// Get the first encoding in param.encodings. +// Asserts that param.encodings has at least one element. +function getFirstEncoding(param) { + const { + encodings + } = param; + assert_equals(encodings.length, 1); + return encodings[0]; +} + +// Helper function to test that modifying an encoding field should succeed +function test_modified_encoding(kind, field, value1, value2, desc) { + promise_test(async t => { + const pc = new RTCPeerConnection(); + t.add_cleanup(() => pc.close()); + const { + sender + } = pc.addTransceiver(kind, { + sendEncodings: [{ + [field]: value1 + }] + }); + await doOfferAnswerExchange(t, pc); + + const param1 = sender.getParameters(); + validateSenderRtpParameters(param1); + const encoding1 = getFirstEncoding(param1); + + assert_equals(encoding1[field], value1); + encoding1[field] = value2; + + await sender.setParameters(param1); + const param2 = sender.getParameters(); + validateSenderRtpParameters(param2); + const encoding2 = getFirstEncoding(param2); + assert_equals(encoding2[field], value2); + }, desc + ' with RTCRtpTransceiverInit'); + + promise_test(async t => { + const pc = new RTCPeerConnection(); + t.add_cleanup(() => pc.close()); + const { + sender + } = pc.addTransceiver(kind); + await doOfferAnswerExchange(t, pc); + + const initParam = sender.getParameters(); + validateSenderRtpParameters(initParam); + initParam.encodings[0][field] = value1; + await sender.setParameters(initParam); + + const param1 = sender.getParameters(); + validateSenderRtpParameters(param1); + const encoding1 = getFirstEncoding(param1); + + assert_equals(encoding1[field], value1); + encoding1[field] = value2; + + await sender.setParameters(param1); + const param2 = sender.getParameters(); + validateSenderRtpParameters(param2); + const encoding2 = getFirstEncoding(param2); + assert_equals(encoding2[field], value2); + }, desc + ' without RTCRtpTransceiverInit'); +}
\ No newline at end of file |