|  | <!DOCTYPE html> | 
|  | <html> | 
|  | <head> | 
|  | <meta charset="utf-8"> | 
|  | <title>SpeechRecognition.abort</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.onnomatch = neverFireEvent('onnomatch'); | 
|  |  | 
|  | var errorTest = new CountTest('onerror aborted', 1, 1); | 
|  | reco.onerror = errorTest.test().step_func(function(event) { | 
|  | errorTest.count(1); | 
|  | assert_equals(typeof(event.message), 'string', 'typeof(event.message)'); | 
|  | notes.innerHTML += 'onerror message is "' + event.message + '"' + '<br>'; | 
|  | assert_equals(event.error, 'aborted', 'onerror event.error'); | 
|  | }); | 
|  |  | 
|  | reco.start(); | 
|  |  | 
|  | function beginTest() { | 
|  | audioTest.test.step_timeout(function() { reco.abort(); }, DELAY); | 
|  | } | 
|  | </script> | 
|  | </body> | 
|  | </html> | 
|  |  |