Update web-platform-tests to revision 4a5223502fa660ce03e470af6a61c8bc26c5a8ee

This commit is contained in:
WPT Sync Bot 2018-04-23 21:13:37 -04:00
parent c5f7c9ccf3
commit e891345f26
1328 changed files with 36632 additions and 20588 deletions

View file

@ -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>