RTCRtpReceiver-jitterBufferTarget.html (5178B)
1 <!DOCTYPE html> 2 <meta charset="utf-8"> 3 <title>Tests for RTCRtpReceiver-jitterBufferTarget attribute</title> 4 <script src="/resources/testharness.js"></script> 5 <script src="/resources/testharnessreport.js"></script> 6 <body> 7 <script> 8 'use strict' 9 10 test(t => { 11 const pc = new RTCPeerConnection(); 12 t.add_cleanup(() => pc.close()); 13 const {receiver} = pc.addTransceiver('audio', {direction:'recvonly'}); 14 assert_equals(receiver.jitterBufferTarget, null); 15 }, 'audio jitterBufferTarget is null by default'); 16 17 test(t => { 18 const pc = new RTCPeerConnection(); 19 t.add_cleanup(() => pc.close()); 20 const {receiver} = pc.addTransceiver('audio', {direction:'recvonly'}); 21 assert_equals(receiver.jitterBufferTarget, null); 22 receiver.jitterBufferTarget = 500; 23 assert_equals(receiver.jitterBufferTarget, 500); 24 }, 'audio jitterBufferTarget accepts posititve values'); 25 26 test(t => { 27 const pc = new RTCPeerConnection(); 28 t.add_cleanup(() => pc.close()); 29 const {receiver} = pc.addTransceiver('audio', {direction:'recvonly'}); 30 assert_equals(receiver.jitterBufferTarget, null); 31 receiver.jitterBufferTarget = 4000; 32 assert_throws_js(RangeError, () => { 33 receiver.jitterBufferTarget = 4001; 34 }, 'audio jitterBufferTarget doesn\'t accept values greater than 4000 milliseconds'); 35 assert_equals(receiver.jitterBufferTarget, 4000); 36 }, 'audio jitterBufferTarget accepts values up to 4000 milliseconds'); 37 38 test(t => { 39 const pc = new RTCPeerConnection(); 40 t.add_cleanup(() => pc.close()); 41 const {receiver} = pc.addTransceiver('audio', {direction:'recvonly'}); 42 assert_equals(receiver.jitterBufferTarget, null); 43 receiver.jitterBufferTarget = 700; 44 assert_throws_js(RangeError, () => { 45 receiver.jitterBufferTarget = -500; 46 }, 'audio jitterBufferTarget doesn\'t accept negative values'); 47 assert_equals(receiver.jitterBufferTarget, 700); 48 }, 'audio jitterBufferTarget returns last valid value on throw'); 49 50 test(t => { 51 const pc = new RTCPeerConnection(); 52 t.add_cleanup(() => pc.close()); 53 const {receiver} = pc.addTransceiver('audio', {direction:'recvonly'}); 54 assert_equals(receiver.jitterBufferTarget, null); 55 receiver.jitterBufferTarget = 0; 56 assert_equals(receiver.jitterBufferTarget, 0); 57 }, 'audio jitterBufferTarget allows zero value'); 58 59 test(t => { 60 const pc = new RTCPeerConnection(); 61 t.add_cleanup(() => pc.close()); 62 const {receiver} = pc.addTransceiver('audio', {direction:'recvonly'}); 63 assert_equals(receiver.jitterBufferTarget, null); 64 receiver.jitterBufferTarget = 500; 65 assert_equals(receiver.jitterBufferTarget, 500); 66 receiver.jitterBufferTarget = null; 67 assert_equals(receiver.jitterBufferTarget, null); 68 }, 'audio jitterBufferTarget allows to reset value to null'); 69 70 test(t => { 71 const pc = new RTCPeerConnection(); 72 t.add_cleanup(() => pc.close()); 73 const {receiver} = pc.addTransceiver('video', {direction:'recvonly'}); 74 assert_equals(receiver.jitterBufferTarget, null); 75 }, 'video jitterBufferTarget is null by default'); 76 77 test(t => { 78 const pc = new RTCPeerConnection(); 79 t.add_cleanup(() => pc.close()); 80 const {receiver} = pc.addTransceiver('video', {direction:'recvonly'}); 81 assert_equals(receiver.jitterBufferTarget, null); 82 receiver.jitterBufferTarget = 500; 83 assert_equals(receiver.jitterBufferTarget, 500); 84 }, 'video jitterBufferTarget accepts posititve values'); 85 86 test(t => { 87 const pc = new RTCPeerConnection(); 88 t.add_cleanup(() => pc.close()); 89 const {receiver} = pc.addTransceiver('video', {direction:'recvonly'}); 90 assert_equals(receiver.jitterBufferTarget, null); 91 receiver.jitterBufferTarget = 4000; 92 assert_throws_js(RangeError, () => { 93 receiver.jitterBufferTarget = 4001; 94 }, 'video jitterBufferTarget doesn\'t accept values greater than 4000 milliseconds'); 95 assert_equals(receiver.jitterBufferTarget, 4000); 96 }, 'video jitterBufferTarget accepts values up to 4000 milliseconds'); 97 98 test(t => { 99 const pc = new RTCPeerConnection(); 100 t.add_cleanup(() => pc.close()); 101 const {receiver} = pc.addTransceiver('video', {direction:'recvonly'}); 102 assert_equals(receiver.jitterBufferTarget, null); 103 receiver.jitterBufferTarget = 700; 104 assert_throws_js(RangeError, () => { 105 receiver.jitterBufferTarget = -500; 106 }, 'video jitterBufferTarget doesn\'t accept negative values'); 107 assert_equals(receiver.jitterBufferTarget, 700); 108 }, 'video jitterBufferTarget returns last valid value'); 109 110 test(t => { 111 const pc = new RTCPeerConnection(); 112 t.add_cleanup(() => pc.close()); 113 const {receiver} = pc.addTransceiver('video', {direction:'recvonly'}); 114 assert_equals(receiver.jitterBufferTarget, null); 115 receiver.jitterBufferTarget = 0; 116 assert_equals(receiver.jitterBufferTarget, 0); 117 }, 'video jitterBufferTarget allows zero value'); 118 119 test(t => { 120 const pc = new RTCPeerConnection(); 121 t.add_cleanup(() => pc.close()); 122 const {receiver} = pc.addTransceiver('video', {direction:'recvonly'}); 123 assert_equals(receiver.jitterBufferTarget, null); 124 receiver.jitterBufferTarget = 500; 125 assert_equals(receiver.jitterBufferTarget, 500); 126 receiver.jitterBufferTarget = null; 127 assert_equals(receiver.jitterBufferTarget, null); 128 }, 'video jitterBufferTarget allows to reset value to null'); 129 </script> 130 </body>