зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1523562 [wpt PR 13922] - Ensure that the 'address' member remains null in RTCIceCandidateStats for remote prflx candidates, a=testonly
Automatic update from web-platform-tests Ensure that the 'address' member remains undefined in RTCIceCandidateStats for remote prflx candidates -- Moving from undefined to null -- Updated according comments -- Merge pull request #13922 from youennf/no-address-member-in-remote-candidate-stats Ensure that the 'address' member remains null in RTCIceCandidateStats for remote prflx candidates -- wpt-commits: 0580aeec33f1c68636eb84f70b5aae04ec05d3bb, 0ec8f2cf94d81c73bc13ded0a57cf12b68633727, e3136b484e2c3f8a4ef4ba49739e8e458d80ef30, cba8de7d7ed600943951e16aa757173586a6881c wpt-pr: 13922
This commit is contained in:
Родитель
df177d587c
Коммит
68fc551701
|
@ -0,0 +1,81 @@
|
|||
<!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 src="../webrtc/RTCStats-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);
|
||||
});
|
||||
doSignalingHandshake(localPc, remotePc);
|
||||
|
||||
const remoteDataChannel = await promiseDataChannel;
|
||||
|
||||
localDataChannel.send("test");
|
||||
|
||||
await new Promise(resolve => {
|
||||
remoteDataChannel.onmessage = resolve;
|
||||
});
|
||||
|
||||
const remoteCandidateStats = getRequiredStats(await localPc.getStats(), "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);
|
||||
});
|
||||
doSignalingHandshake(localPc, remotePc);
|
||||
|
||||
const remoteDataChannel = await promiseDataChannel;
|
||||
|
||||
localDataChannel.send("test");
|
||||
|
||||
await new Promise(resolve => {
|
||||
remoteDataChannel.onmessage = resolve;
|
||||
});
|
||||
|
||||
const remoteCandidateStats = getRequiredStats(await localPc.getStats(), "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>
|
Загрузка…
Ссылка в новой задаче