<!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('onspeechend');
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>

