summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/webrtc-extensions/RTCRtpReceiver-jitterBufferTarget.html
blob: 448162d3a2fbbb94d85fd87f2072026a64dd821a (plain)
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>