Update web-platform-tests to revision 0fe9f012a8ee5503b728a379705a6c5286ba1e96

This commit is contained in:
WPT Sync Bot 2018-02-23 20:08:37 -05:00
parent 8329a45163
commit 5dc1649544
69 changed files with 1716 additions and 112 deletions

View file

@ -8,17 +8,50 @@
// The following helper functions are called from RTCPeerConnection-helper.js:
// getTrackFromUserMedia
// doSignalingHandshake
// Create a RTCDTMFSender using getUserMedia()
// Connect the PeerConnection to another PC and wait until it is
// properly connected, so that DTMF can be sent.
function createDtmfSender(pc = new RTCPeerConnection()) {
var dtmfSender;
return getTrackFromUserMedia('audio')
.then(([track, mediaStream]) => {
const sender = pc.addTrack(track, mediaStream);
const dtmfSender = sender.dtmf;
dtmfSender = sender.dtmf;
assert_true(dtmfSender instanceof RTCDTMFSender,
'Expect audio sender.dtmf to be set to a RTCDTMFSender');
'Expect audio sender.dtmf to be set to a RTCDTMFSender');
// Note: spec bug open - https://github.com/w3c/webrtc-pc/issues/1774
// on whether sending should be possible before negotiation.
const pc2 = new RTCPeerConnection();
Object.defineProperty(pc, 'otherPc', { value: pc2 });
exchangeIceCandidates(pc, pc2);
return doSignalingHandshake(pc, pc2);
}).then(() => {
// Wait until dtmfSender.canInsertDTMF becomes true.
// Up to 150 ms has been observed in test. Wait 1 second
// in steps of 10 ms.
// Note: Using a short timeout and rejected promise in order to
// make test return a clear error message on failure.
return new Promise((resolve, reject) => {
let counter = 0;
let checkfunc = function() {
if (dtmfSender.canInsertDTMF) {
resolve();
} else {
if (counter >= 100) {
reject('Waited too long for canInsertDTMF');
return;
}
++counter;
step_timeout(checkfunc, 10);
}
};
checkfunc();
});
}).then(() => {
assert_true(dtmfSender.canInsertDTMF,
'Failed to create usable dtmfSender:');
return dtmfSender;
});
}
@ -89,12 +122,12 @@ function test_tone_change_events(testFunc, toneChanges, desc) {
t.step_func(() => {
t.done();
pc.close();
pc.otherPc.close();
}), expectedDuration + 100);
}
});
dtmfSender.addEventListener('tonechange', onToneChange);
testFunc(t, dtmfSender, pc);
})
.catch(t.step_func(err => {

View file

@ -55,7 +55,7 @@
*/
promise_test(t => {
return createDtmfSender()
.then(dtmfSender => {
.then(dtmfSender => {
dtmfSender.insertDTMF('');
dtmfSender.insertDTMF('012345689');
dtmfSender.insertDTMF('ABCD');

View file

@ -50,7 +50,7 @@
7. Fire an event named tonechange with a string consisting of tone at the
RTCDTMFSender object.
*/
test_tone_change_events(dtmfSender => {
test_tone_change_events((t, dtmfSender) => {
dtmfSender.insertDTMF('123');
}, [
['1', '23', 0],
@ -59,7 +59,7 @@
['', '', 170]
], 'insertDTMF() with default duration and intertoneGap should fire tonechange events at the expected time');
test_tone_change_events(dtmfSender => {
test_tone_change_events((t, dtmfSender) => {
dtmfSender.insertDTMF('abc', 100, 70);
}, [
['A', 'BC', 0],