mirror of
https://github.com/servo/servo.git
synced 2025-08-14 01:45:33 +01:00
Update web-platform-tests to revision 4a5223502fa660ce03e470af6a61c8bc26c5a8ee
This commit is contained in:
parent
c5f7c9ccf3
commit
e891345f26
1328 changed files with 36632 additions and 20588 deletions
|
@ -378,7 +378,7 @@
|
|||
}));
|
||||
}, 'replaceTrack(): original track attachment stats present after replacing');
|
||||
|
||||
promise_test(async function() {
|
||||
promise_test(async t => {
|
||||
const caller = new RTCPeerConnection();
|
||||
const callee = new RTCPeerConnection();
|
||||
let [tracks, streams] = await getUserMediaTracksAndStreams(2);
|
||||
|
@ -424,7 +424,7 @@
|
|||
'senderReport should contain remote-candidate stats');
|
||||
}, 'RTCRtpSender.getStats() contains only outbound-rtp and related stats');
|
||||
|
||||
promise_test(async function() {
|
||||
promise_test(async t => {
|
||||
const caller = new RTCPeerConnection();
|
||||
const callee = new RTCPeerConnection();
|
||||
let [tracks, streams] = await getUserMediaTracksAndStreams(2);
|
||||
|
@ -470,6 +470,74 @@
|
|||
'receiverReport should contain remote-candidate stats');
|
||||
}, 'RTCRtpReceiver.getStats() contains only inbound-rtp and related stats');
|
||||
|
||||
promise_test(async t => {
|
||||
const caller = new RTCPeerConnection();
|
||||
const callee = new RTCPeerConnection();
|
||||
let [tracks, streams] = await getUserMediaTracksAndStreams(2);
|
||||
let sender = caller.addTrack(tracks[0], streams[0]);
|
||||
callee.addTrack(tracks[1], streams[1]);
|
||||
exchangeIceCandidates(caller, callee);
|
||||
await doSignalingHandshake(caller, callee);
|
||||
await onIceConnectionStateCompleted(caller);
|
||||
|
||||
let senderReport = await sender.getStats();
|
||||
let trackReport = await caller.getStats(sender.track);
|
||||
|
||||
// Verify the same stats objects are returned but don't compare each
|
||||
// individual metric because timestamps and counters could have gone up
|
||||
// between the two getStats() calls.
|
||||
senderReport.forEach(senderReportStat => {
|
||||
assert_true(trackReport.has(senderReportStat.id));
|
||||
});
|
||||
trackReport.forEach(trackReportStat => {
|
||||
assert_true(senderReport.has(trackReportStat.id));
|
||||
});
|
||||
}, 'RTCPeerConnection.getStats(sendingTrack) is the same as ' +
|
||||
'RTCRtpSender.getStats()');
|
||||
|
||||
promise_test(async t => {
|
||||
const caller = new RTCPeerConnection();
|
||||
const callee = new RTCPeerConnection();
|
||||
let [tracks, streams] = await getUserMediaTracksAndStreams(2);
|
||||
let sender = caller.addTrack(tracks[0], streams[0]);
|
||||
callee.addTrack(tracks[1], streams[1]);
|
||||
exchangeIceCandidates(caller, callee);
|
||||
await doSignalingHandshake(caller, callee);
|
||||
await onIceConnectionStateCompleted(caller);
|
||||
let receiver = caller.getReceivers()[0];
|
||||
|
||||
let receiverReport = await receiver.getStats();
|
||||
let trackReport = await caller.getStats(receiver.track);
|
||||
|
||||
// Verify the same stats objects are returned but don't compare each
|
||||
// individual metric because timestamps and counters could have gone up
|
||||
// between the two getStats() calls.
|
||||
receiverReport.forEach(receiverReportStat => {
|
||||
assert_true(trackReport.has(receiverReportStat.id));
|
||||
});
|
||||
trackReport.forEach(trackReportStat => {
|
||||
assert_true(receiverReport.has(trackReportStat.id));
|
||||
});
|
||||
}, 'RTCPeerConnection.getStats(receivingTrack) is the same as ' +
|
||||
'RTCRtpReceiver.getStats()');
|
||||
|
||||
promise_test(async t => {
|
||||
const pc = new RTCPeerConnection();
|
||||
let [tracks, streams] = await getUserMediaTracksAndStreams(1);
|
||||
await promise_rejects(t, 'InvalidAccessError', pc.getStats(tracks[0]));
|
||||
}, 'RTCPeerConnection.getStats(track) throws InvalidAccessError when there ' +
|
||||
'are zero senders or receivers for the track');
|
||||
|
||||
promise_test(async t => {
|
||||
const pc = new RTCPeerConnection();
|
||||
let [tracks, streams] = await getUserMediaTracksAndStreams(2);
|
||||
let sender1 = pc.addTrack(tracks[0]);
|
||||
let sender2 = pc.addTrack(tracks[1]);
|
||||
await sender2.replaceTrack(sender1.track);
|
||||
await promise_rejects(t, 'InvalidAccessError', pc.getStats(sender1.track));
|
||||
}, 'RTCPeerConnection.getStats(track) throws InvalidAccessError when there ' +
|
||||
'are multiple senders for the track');
|
||||
|
||||
// Helpers.
|
||||
|
||||
function findStatsByTypeAndId(report, type, identifier) {
|
||||
|
@ -501,14 +569,20 @@
|
|||
return stats;
|
||||
}
|
||||
|
||||
// Returns a promise that is resolved when pc.iceConnectionState changes to
|
||||
// 'completed'. This is when transport stats can be expected to have its
|
||||
// selectedCandidatePairId defined.
|
||||
// Returns a promise that is resolved when pc.iceConnectionState reaches the
|
||||
// 'connected' or 'completed' state. This is when transport stats can be
|
||||
// expected to have its selectedCandidatePairId defined.
|
||||
async function onIceConnectionStateCompleted(pc) {
|
||||
if (pc.iceConnectionState == 'connected' ||
|
||||
pc.iceConnectionState == 'completed') {
|
||||
return Promise.resolve();
|
||||
}
|
||||
let resolver = new Resolver();
|
||||
pc.oniceconnectionstatechange = e => {
|
||||
if (pc.iceConnectionState == 'completed')
|
||||
if (pc.iceConnectionState == 'connected' ||
|
||||
pc.iceConnectionState == 'completed') {
|
||||
resolver.resolve();
|
||||
}
|
||||
};
|
||||
return resolver.promise;
|
||||
}
|
||||
|
@ -541,4 +615,14 @@
|
|||
}
|
||||
}
|
||||
|
||||
async function async_assert_throws(exceptionName, promise, description) {
|
||||
try {
|
||||
await promise;
|
||||
} catch (e) {
|
||||
assert_equals(e.name, exceptionName);
|
||||
return;
|
||||
}
|
||||
assert_unreached('No exception was thrown.');
|
||||
}
|
||||
|
||||
</script>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue