Index: chrome/test/data/extensions/api_test/speech_input/recognition/test.js |
diff --git a/chrome/test/data/extensions/api_test/speech_input/recognition/test.js b/chrome/test/data/extensions/api_test/speech_input/recognition/test.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d896d1c3db7144098ff747a232bffa2def5a2191 |
--- /dev/null |
+++ b/chrome/test/data/extensions/api_test/speech_input/recognition/test.js |
@@ -0,0 +1,64 @@ |
+// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+// Extension Speech Input api test. |
+// browser_tests --gtest_filter="ExtensionSpeechInputApiTest.*" |
+ |
+chrome.test.runTests([ |
+ function testSpeechInputRecognition() { |
+ var did_sound_start = false; |
+ var did_sound_end = false; |
+ |
+ // Check that sound starts once and before ending. |
+ chrome.experimental.speechInput.onSoundStart.addListener(function() { |
+ chrome.test.assertFalse(did_sound_start); |
+ chrome.test.assertFalse(did_sound_end); |
+ did_sound_start = true; |
+ }); |
+ |
+ // Check that sounds ends once and after starting. |
+ chrome.experimental.speechInput.onSoundEnd.addListener(function() { |
+ chrome.test.assertTrue(did_sound_start); |
+ chrome.test.assertFalse(did_sound_end); |
+ did_end_sound = true; |
+ }); |
+ |
+ // Check that both sound events happened and that the given results |
+ // match the expected ones. |
+ chrome.experimental.speechInput.onResult.addListener(function(event) { |
+ chrome.test.assertTrue(did_sound_start); |
+ chrome.test.assertTrue(did_end_sound); |
+ chrome.test.assertEq(event.hypotheses.length, 1); |
+ chrome.test.assertEq(event.hypotheses[0].utterance, "this is a test"); |
+ chrome.test.assertEq(event.hypotheses[0].confidence, 0.99); |
+ |
+ // Ensure no recording is happening after delivering results. |
+ chrome.experimental.speechInput.isRecording(function(recording) { |
+ chrome.test.assertNoLastError(); |
+ chrome.test.assertFalse(recording); |
+ |
+ // Stopping should fail since we're in the idle state again. |
+ chrome.experimental.speechInput.stop(function() { |
+ chrome.test.assertEq(chrome.extension.lastError.message, |
+ "invalidOperation"); |
+ chrome.test.succeed(); |
+ }); |
+ }); |
+ }); |
+ |
+ // Ensure that no errors happened during the recognition. |
+ chrome.experimental.speechInput.onError.addListener(function(event) { |
+ chrome.test.fail(); |
+ }); |
+ |
+ // Recording is not active, start it. |
+ chrome.experimental.speechInput.isRecording(function(recording) { |
+ chrome.test.assertNoLastError(); |
+ chrome.test.assertFalse(recording); |
+ chrome.experimental.speechInput.start({}, function() { |
+ chrome.test.assertNoLastError(); |
+ }); |
+ }); |
+ } |
+]); |