Update web-platform-tests to revision e29e596073468910d8655a8ec23262f17543e147

This commit is contained in:
WPT Sync Bot 2018-10-03 21:30:54 -04:00
parent e56db1f322
commit 5e2118728a
67 changed files with 1403 additions and 821 deletions

View file

@ -3,10 +3,27 @@
'use strict';
// https://w3c.github.io/speech-api/#dom-speechsynthesis-getvoices can
// return an empty list and a voiceschanged event is fired if the list of
// voices is determined asynchronously.
function getVoices() {
return new Promise(resolve => {
const voices = speechSynthesis.getVoices();
if (voices.length) {
resolve(voices);
} else {
// wait for voiceschanged event
speechSynthesis.addEventListener('voiceschanged', () => {
resolve(speechSynthesis.getVoices());
}, { once: true });
}
});
}
idl_test(
['speech-api'],
['dom', 'html'],
idl_array => {
(idl_array, t) => {
idl_array.add_objects({
SpeechGrammar: ['new SpeechGrammar()'],
SpeechGrammarList: ['new SpeechGrammarList()'],
@ -20,15 +37,14 @@ idl_test(
// TODO: SpeechSynthesisErrorEvent
// TODO: SpeechSynthesisEvent
SpeechSynthesisUtterance: ['new SpeechSynthesisUtterance()'],
SpeechSynthesisVoice: ['voice'],
Window: ['self'],
});
// https://w3c.github.io/speech-api/#dom-speechsynthesis-getvoices can
// return an empty list, so add SpeechSynthesisVoice conditionally.
const voices = speechSynthesis.getVoices();
if (voices.length) {
self.voice = voices[0];
idl_array.add_objects({ SpeechSynthesisVoice: ['voice'] });
}
const awaitVoice = getVoices().then(voices => self.voice = voices[0]);
const timeout = new Promise((_, reject) => {
t.step_timeout(() => reject('Timed out waiting for voice'), 3000);
});
return Promise.race([awaitVoice, timeout]);
}
);