Index: content/shell/renderer/test_runner/MockWebSpeechRecognizer.h |
diff --git a/content/shell/renderer/test_runner/MockWebSpeechRecognizer.h b/content/shell/renderer/test_runner/MockWebSpeechRecognizer.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d2496418c937be6ad2b1c9aaa953bdcd23b05b6a |
--- /dev/null |
+++ b/content/shell/renderer/test_runner/MockWebSpeechRecognizer.h |
@@ -0,0 +1,84 @@ |
+// Copyright 2013 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. |
+ |
+#ifndef MockWebSpeechRecognizer_h |
+#define MockWebSpeechRecognizer_h |
+ |
+#include <deque> |
+#include <vector> |
+ |
+#include "content/shell/renderer/test_runner/TestCommon.h" |
+#include "content/shell/renderer/test_runner/WebTask.h" |
+#include "third_party/WebKit/public/platform/WebNonCopyable.h" |
+#include "third_party/WebKit/public/web/WebSpeechRecognizer.h" |
+ |
+namespace blink { |
+class WebSpeechRecognitionHandle; |
+class WebSpeechRecognitionParams; |
+class WebSpeechRecognizerClient; |
+} |
+ |
+namespace WebTestRunner { |
+ |
+class WebTestDelegate; |
+ |
+class MockWebSpeechRecognizer : public blink::WebSpeechRecognizer, public blink::WebNonCopyable { |
+public: |
+ MockWebSpeechRecognizer(); |
+ ~MockWebSpeechRecognizer(); |
+ |
+ void setDelegate(WebTestDelegate*); |
+ |
+ // WebSpeechRecognizer implementation: |
+ virtual void start(const blink::WebSpeechRecognitionHandle&, const blink::WebSpeechRecognitionParams&, blink::WebSpeechRecognizerClient*) OVERRIDE; |
+ virtual void stop(const blink::WebSpeechRecognitionHandle&, blink::WebSpeechRecognizerClient*) OVERRIDE; |
+ virtual void abort(const blink::WebSpeechRecognitionHandle&, blink::WebSpeechRecognizerClient*) OVERRIDE; |
+ |
+ // Methods accessed by layout tests: |
+ void addMockResult(const blink::WebString& transcript, float confidence); |
+ void setError(const blink::WebString& error, const blink::WebString& message); |
+ bool wasAborted() const { return m_wasAborted; } |
+ |
+ // Methods accessed from Task objects: |
+ blink::WebSpeechRecognizerClient* client() { return m_client; } |
+ blink::WebSpeechRecognitionHandle& handle() { return m_handle; } |
+ WebTaskList* taskList() { return &m_taskList; } |
+ |
+ class Task { |
+ public: |
+ Task(MockWebSpeechRecognizer* recognizer) : m_recognizer(recognizer) { } |
+ virtual ~Task() { } |
+ virtual void run() = 0; |
+ protected: |
+ MockWebSpeechRecognizer* m_recognizer; |
+ }; |
+ |
+private: |
+ void startTaskQueue(); |
+ void clearTaskQueue(); |
+ |
+ WebTaskList m_taskList; |
+ blink::WebSpeechRecognitionHandle m_handle; |
+ blink::WebSpeechRecognizerClient* m_client; |
+ std::vector<blink::WebString> m_mockTranscripts; |
+ std::vector<float> m_mockConfidences; |
+ bool m_wasAborted; |
+ |
+ // Queue of tasks to be run. |
+ std::deque<Task*> m_taskQueue; |
+ bool m_taskQueueRunning; |
+ |
+ WebTestDelegate* m_delegate; |
+ |
+ // Task for stepping the queue. |
+ class StepTask : public WebMethodTask<MockWebSpeechRecognizer> { |
+ public: |
+ StepTask(MockWebSpeechRecognizer* object) : WebMethodTask<MockWebSpeechRecognizer>(object) { } |
+ virtual void runIfValid() OVERRIDE; |
+ }; |
+}; |
+ |
+} |
+ |
+#endif // MockWebSpeechRecognizer_h |