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

@ -282,4 +282,15 @@
}, `Setting transceiver.currentDirection to recvonly in the middle of tonechange events should stop future tonechange events from firing`);
/* Section 7.3 - Tone change event */
test(t => {
let ev = new RTCDTMFToneChangeEvent('tonechange', {'tone': '1'});
assert_equals(ev.type, 'tonechange');
assert_equals(ev.tone, '1');
}, 'Tone change event constructor works');
test(t => {
let ev = new RTCDTMFToneChangeEvent('worngname', {});
}, 'Tone change event with unexpected name should not crash');
</script>

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>