getStats-remote-candidate-address.html (2294B)
1 <!doctype html> 2 <meta charset=utf-8> 3 <meta name="timeout" content="long"> 4 <title>Exposure or remote candidate address on stats</title> 5 <script src="/resources/testharness.js"></script> 6 <script src="/resources/testharnessreport.js"></script> 7 <script src="../webrtc/RTCPeerConnection-helper.js"></script> 8 <script src="../webrtc/RTCDataChannel-helper.js"></script> 9 <script> 10 promise_test(async (test) => { 11 const localPc = new RTCPeerConnection(); 12 test.add_cleanup(() => localPc.close()); 13 const remotePc = new RTCPeerConnection(); 14 test.add_cleanup(() => remotePc.close()); 15 16 const pairPromise = openChannelPair(localPc, remotePc, 'prflx_obfuscate'); 17 localPc.addEventListener('icecandidate', event => { 18 if (event.candidate) 19 remotePc.addIceCandidate(event.candidate); 20 }); 21 exchangeOfferAnswer(localPc, remotePc); 22 23 const [localChannel, remoteChannel] = await pairPromise; 24 25 localChannel.send("test"); 26 27 await new Promise(resolve => { 28 remoteChannel.onmessage = resolve; 29 }); 30 31 const remoteCandidateStats = [...(await localPc.getStats()).values()].find(({type}) => type === 'remote-candidate'); 32 assert_equals(remoteCandidateStats.address, null, "address should be null"); 33 }, "Do not expose in stats remote addresses that are not known to be already exposed to JS"); 34 35 promise_test(async (test) => { 36 const localPc = new RTCPeerConnection(); 37 test.add_cleanup(() => localPc.close()); 38 const remotePc = new RTCPeerConnection(); 39 test.add_cleanup(() => remotePc.close()); 40 41 const pairPromise = openChannelPair(localPc, remotePc, 'prflx_obfuscate'); 42 localPc.addEventListener('icecandidate', event => { 43 if (event.candidate) 44 remotePc.addIceCandidate(event.candidate); 45 }); 46 exchangeOfferAnswer(localPc, remotePc); 47 48 const [localChannel, remoteChannel] = await pairPromise; 49 50 localChannel.send("test"); 51 52 await new Promise(resolve => { 53 remoteChannel.onmessage = resolve; 54 }); 55 56 const remoteCandidateStats = [...(await localPc.getStats()).values()].find(({type}) => type === 'remote-candidate'); 57 assert_not_equals(remoteCandidateStats.address, null, "address should not be null"); 58 }, "Expose in stats remote addresses that are already exposed to JS"); 59 60 </script>