55 lines
1.5 KiB
HTML
55 lines
1.5 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
<html>
|
|
<head>
|
|
<script src="../../resources/js-test-pre.js"></script>
|
|
</head>
|
|
<body id="body">
|
|
|
|
<div id="console"></div>
|
|
|
|
<script>
|
|
|
|
description("This tests that cancelling a speech job fires the right events.");
|
|
|
|
if (window.testRunner)
|
|
testRunner.waitUntilDone();
|
|
|
|
if (window.internals)
|
|
window.internals.enableMockSpeechSynthesizer();
|
|
|
|
window.jsTestIsAsync = true;
|
|
|
|
var u = new SpeechSynthesisUtterance("this is a test");
|
|
u.onstart = function(event) {
|
|
debug("Speech started");
|
|
}
|
|
|
|
u.onerror = function(event) {
|
|
debug("Speech error received because we cancelled and speech should no longer be pending.");
|
|
shouldBeFalse("speechSynthesis.pending");
|
|
finishJSTest();
|
|
}
|
|
|
|
// Queue the first job which will start speaking immediately.
|
|
speechSynthesis.speak(u);
|
|
|
|
// Make a few more jobs, so that when we cancel, it will clear the entire queue.
|
|
var u2 = new SpeechSynthesisUtterance("this is a second test");
|
|
speechSynthesis.speak(u2);
|
|
|
|
// Make a few more jobs, so that when we cancel, it will clear the entire queue.
|
|
var u3 = new SpeechSynthesisUtterance("this is a third test");
|
|
speechSynthesis.speak(u3);
|
|
|
|
// While we have two jobs, speech synthesis should report that it's pending.
|
|
shouldBeTrue("speechSynthesis.pending");
|
|
|
|
// Cancel speaking.
|
|
setTimeout("speechSynthesis.cancel()", "1");
|
|
|
|
</script>
|
|
|
|
<script src="../../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|