summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/webrtc-stats/getStats-remote-candidate-address.html
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /testing/web-platform/tests/webrtc-stats/getStats-remote-candidate-address.html
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/webrtc-stats/getStats-remote-candidate-address.html')
-rw-r--r--testing/web-platform/tests/webrtc-stats/getStats-remote-candidate-address.html79
1 files changed, 79 insertions, 0 deletions
diff --git a/testing/web-platform/tests/webrtc-stats/getStats-remote-candidate-address.html b/testing/web-platform/tests/webrtc-stats/getStats-remote-candidate-address.html
new file mode 100644
index 0000000000..d30f2252bf
--- /dev/null
+++ b/testing/web-platform/tests/webrtc-stats/getStats-remote-candidate-address.html
@@ -0,0 +1,79 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>Exposure or remote candidate address on stats</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../webrtc/RTCPeerConnection-helper.js"></script>
+<script>
+ 'use strict';
+
+promise_test(async (test) => {
+ const localPc = new RTCPeerConnection();
+ test.add_cleanup(() => localPc.close());
+ const remotePc = new RTCPeerConnection();
+ test.add_cleanup(() => remotePc.close());
+
+ const promiseDataChannel = new Promise(resolve => {
+ remotePc.addEventListener('datachannel', (event) => {
+ resolve(event.channel);
+ });
+ });
+
+ const localDataChannel = localPc.createDataChannel('test');
+
+ localPc.addEventListener('icecandidate', event => {
+ if (event.candidate)
+ remotePc.addIceCandidate(event.candidate);
+ });
+ exchangeOfferAnswer(localPc, remotePc);
+
+ const remoteDataChannel = await promiseDataChannel;
+
+ localDataChannel.send("test");
+
+ await new Promise(resolve => {
+ remoteDataChannel.onmessage = resolve;
+ });
+
+ const remoteCandidateStats = [...(await localPc.getStats()).values()].find(({type}) => type === 'remote-candidate');
+ assert_equals(remoteCandidateStats.address, null, "address should be null");
+}, "Do not expose in stats remote addresses that are not known to be already exposed to JS");
+
+
+promise_test(async (test) => {
+ const localPc = new RTCPeerConnection();
+ test.add_cleanup(() => localPc.close());
+ const remotePc = new RTCPeerConnection();
+ test.add_cleanup(() => remotePc.close());
+
+ const promiseDataChannel = new Promise(resolve => {
+ remotePc.addEventListener('datachannel', (event) => {
+ resolve(event.channel);
+ });
+ });
+
+ const localDataChannel = localPc.createDataChannel('test');
+
+ localPc.addEventListener('icecandidate', event => {
+ if (event.candidate)
+ remotePc.addIceCandidate(event.candidate);
+ });
+ remotePc.addEventListener('icecandidate', event => {
+ if (event.candidate)
+ localPc.addIceCandidate(event.candidate);
+ });
+ exchangeOfferAnswer(localPc, remotePc);
+
+ const remoteDataChannel = await promiseDataChannel;
+
+ localDataChannel.send("test");
+
+ await new Promise(resolve => {
+ remoteDataChannel.onmessage = resolve;
+ });
+
+ const remoteCandidateStats = [...(await localPc.getStats()).values()].find(({type}) => type === 'remote-candidate');
+ assert_not_equals(remoteCandidateStats.address, null, "address should not be null");
+}, "Expose in stats remote addresses that are already exposed to JS");
+
+</script>