| <!DOCTYPE html> |
| <meta charset="utf-8"> |
| <title>Tests for RTCRtpReceiver-jitterBufferTarget attribute</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <body> |
| <script> |
| 'use strict' |
| |
| test(t => { |
| const pc = new RTCPeerConnection(); |
| t.add_cleanup(() => pc.close()); |
| const {receiver} = pc.addTransceiver('audio', {direction:'recvonly'}); |
| assert_equals(receiver.jitterBufferTarget, null); |
| }, 'audio jitterBufferTarget is null by default'); |
| |
| test(t => { |
| const pc = new RTCPeerConnection(); |
| t.add_cleanup(() => pc.close()); |
| const {receiver} = pc.addTransceiver('audio', {direction:'recvonly'}); |
| assert_equals(receiver.jitterBufferTarget, null); |
| receiver.jitterBufferTarget = 500; |
| assert_equals(receiver.jitterBufferTarget, 500); |
| }, 'audio jitterBufferTarget accepts posititve values'); |
| |
| test(t => { |
| const pc = new RTCPeerConnection(); |
| t.add_cleanup(() => pc.close()); |
| const {receiver} = pc.addTransceiver('audio', {direction:'recvonly'}); |
| assert_equals(receiver.jitterBufferTarget, null); |
| receiver.jitterBufferTarget = 4000; |
| assert_throws_js(RangeError, () => { |
| receiver.jitterBufferTarget = 4001; |
| }, 'audio jitterBufferTarget doesn\'t accept values greater than 4000 milliseconds'); |
| assert_equals(receiver.jitterBufferTarget, 4000); |
| }, 'audio jitterBufferTarget accepts values up to 4000 milliseconds'); |
| |
| test(t => { |
| const pc = new RTCPeerConnection(); |
| t.add_cleanup(() => pc.close()); |
| const {receiver} = pc.addTransceiver('audio', {direction:'recvonly'}); |
| assert_equals(receiver.jitterBufferTarget, null); |
| receiver.jitterBufferTarget = 700; |
| assert_throws_js(RangeError, () => { |
| receiver.jitterBufferTarget = -500; |
| }, 'audio jitterBufferTarget doesn\'t accept negative values'); |
| assert_equals(receiver.jitterBufferTarget, 700); |
| }, 'audio jitterBufferTarget returns last valid value on throw'); |
| |
| test(t => { |
| const pc = new RTCPeerConnection(); |
| t.add_cleanup(() => pc.close()); |
| const {receiver} = pc.addTransceiver('audio', {direction:'recvonly'}); |
| assert_equals(receiver.jitterBufferTarget, null); |
| receiver.jitterBufferTarget = 0; |
| assert_equals(receiver.jitterBufferTarget, 0); |
| }, 'audio jitterBufferTarget allows zero value'); |
| |
| test(t => { |
| const pc = new RTCPeerConnection(); |
| t.add_cleanup(() => pc.close()); |
| const {receiver} = pc.addTransceiver('audio', {direction:'recvonly'}); |
| assert_equals(receiver.jitterBufferTarget, null); |
| receiver.jitterBufferTarget = 500; |
| assert_equals(receiver.jitterBufferTarget, 500); |
| receiver.jitterBufferTarget = null; |
| assert_equals(receiver.jitterBufferTarget, null); |
| }, 'audio jitterBufferTarget allows to reset value to null'); |
| |
| test(t => { |
| const pc = new RTCPeerConnection(); |
| t.add_cleanup(() => pc.close()); |
| const {receiver} = pc.addTransceiver('video', {direction:'recvonly'}); |
| assert_equals(receiver.jitterBufferTarget, null); |
| }, 'video jitterBufferTarget is null by default'); |
| |
| test(t => { |
| const pc = new RTCPeerConnection(); |
| t.add_cleanup(() => pc.close()); |
| const {receiver} = pc.addTransceiver('video', {direction:'recvonly'}); |
| assert_equals(receiver.jitterBufferTarget, null); |
| receiver.jitterBufferTarget = 500; |
| assert_equals(receiver.jitterBufferTarget, 500); |
| }, 'video jitterBufferTarget accepts posititve values'); |
| |
| test(t => { |
| const pc = new RTCPeerConnection(); |
| t.add_cleanup(() => pc.close()); |
| const {receiver} = pc.addTransceiver('video', {direction:'recvonly'}); |
| assert_equals(receiver.jitterBufferTarget, null); |
| receiver.jitterBufferTarget = 4000; |
| assert_throws_js(RangeError, () => { |
| receiver.jitterBufferTarget = 4001; |
| }, 'video jitterBufferTarget doesn\'t accept values greater than 4000 milliseconds'); |
| assert_equals(receiver.jitterBufferTarget, 4000); |
| }, 'video jitterBufferTarget accepts values up to 4000 milliseconds'); |
| |
| test(t => { |
| const pc = new RTCPeerConnection(); |
| t.add_cleanup(() => pc.close()); |
| const {receiver} = pc.addTransceiver('video', {direction:'recvonly'}); |
| assert_equals(receiver.jitterBufferTarget, null); |
| receiver.jitterBufferTarget = 700; |
| assert_throws_js(RangeError, () => { |
| receiver.jitterBufferTarget = -500; |
| }, 'video jitterBufferTarget doesn\'t accept negative values'); |
| assert_equals(receiver.jitterBufferTarget, 700); |
| }, 'video jitterBufferTarget returns last valid value'); |
| |
| test(t => { |
| const pc = new RTCPeerConnection(); |
| t.add_cleanup(() => pc.close()); |
| const {receiver} = pc.addTransceiver('video', {direction:'recvonly'}); |
| assert_equals(receiver.jitterBufferTarget, null); |
| receiver.jitterBufferTarget = 0; |
| assert_equals(receiver.jitterBufferTarget, 0); |
| }, 'video jitterBufferTarget allows zero value'); |
| |
| test(t => { |
| const pc = new RTCPeerConnection(); |
| t.add_cleanup(() => pc.close()); |
| const {receiver} = pc.addTransceiver('video', {direction:'recvonly'}); |
| assert_equals(receiver.jitterBufferTarget, null); |
| receiver.jitterBufferTarget = 500; |
| assert_equals(receiver.jitterBufferTarget, 500); |
| receiver.jitterBufferTarget = null; |
| assert_equals(receiver.jitterBufferTarget, null); |
| }, 'video jitterBufferTarget allows to reset value to null'); |
| </script> |
| </body> |