1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
|
<!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>
|