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