<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>SpeechRecognition.stop</title>
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
    <script src="webspeech.js"></script>
  </head>
  <body>
    <p><b>Instructions:</b> Do NOT speak. Run test in silence.
      This test may fail if too much noise.</p>
    <div id="log"></div>
    <div id="notes"></div>
    <script>
var audioTest = new CycleTest('onaudio');
reco.onaudiostart = audioTest.startEvent();
reco.onaudioend = audioTest.endEvent();

reco.onsoundstart = neverFireEvent('onsoundstart');
reco.onsoundend = neverFireEvent('onsoundend');
reco.onspeechstart = neverFireEvent('onspeechstart');
reco.onspeechend = neverFireEvent('onsspeechend');
reco.onresult = neverFireEvent('onresult');
reco.onerror = neverFireEvent('onerror');

var nomatchTest = new CountTest('onnomatch', 0, 1);
reco.onnomatch = nomatchTest.test().step_func(function(event) {
  nomatchTest.count(1);
});

reco.start();

function beginTest() {
  setTimeout(function() { reco.stop(); }, DELAY);
}
    </script>
  </body>
</html>

