fake_speech_recognition_manager.h revision 868fa2fe829687343ffae624259930155e16dbd8
1// Copyright (c) 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CONTENT_PUBLIC_TEST_FAKE_SPEECH_RECOGNTION_MANAGER_H_
6#define CONTENT_PUBLIC_TEST_FAKE_SPEECH_RECOGNTION_MANAGER_H_
7
8#include "base/synchronization/waitable_event.h"
9#include "content/public/browser/speech_recognition_manager.h"
10#include "content/public/browser/speech_recognition_session_config.h"
11#include "content/public/browser/speech_recognition_session_context.h"
12
13namespace content {
14
15// Fake SpeechRecognitionManager class that can be used for tests.
16// By default the recognition manager will respond with "Pictures of the moon"
17// as recognized result from speech. This result can be overridden by calling
18// SetFakeResult().
19class FakeSpeechRecognitionManager : public SpeechRecognitionManager {
20 public:
21  FakeSpeechRecognitionManager();
22  virtual ~FakeSpeechRecognitionManager();
23
24  const std::string& grammar() const {
25    return grammar_;
26  }
27
28  bool did_cancel_all() {
29    return did_cancel_all_;
30  }
31
32  void set_should_send_fake_response(bool send) {
33    should_send_fake_response_ = send;
34  }
35
36  bool should_send_fake_response() {
37    return should_send_fake_response_;
38  }
39
40  base::WaitableEvent& recognition_started_event() {
41    return recognition_started_event_;
42  }
43
44  void SetFakeResult(const std::string& result);
45
46  // SpeechRecognitionManager methods.
47  virtual int CreateSession(
48      const SpeechRecognitionSessionConfig& config) OVERRIDE;
49  virtual void StartSession(int session_id) OVERRIDE;
50  virtual void AbortSession(int session_id) OVERRIDE;
51  virtual void StopAudioCaptureForSession(int session_id) OVERRIDE;
52  virtual void AbortAllSessionsForListener(
53      SpeechRecognitionEventListener* listener) OVERRIDE;
54  virtual void AbortAllSessionsForRenderView(int render_process_id,
55                                             int render_view_id) OVERRIDE;
56  virtual bool HasAudioInputDevices() OVERRIDE;
57  virtual string16 GetAudioInputDeviceModel() OVERRIDE;
58  virtual void ShowAudioInputSettings() OVERRIDE {}
59  virtual int GetSession(int render_process_id,
60                         int render_view_id,
61                         int request_id) const OVERRIDE;
62  virtual const SpeechRecognitionSessionConfig& GetSessionConfig(
63      int session_id) const OVERRIDE;
64  virtual SpeechRecognitionSessionContext GetSessionContext(
65      int session_id) const OVERRIDE;
66
67 private:
68  void SetFakeRecognitionResult();
69
70  int session_id_;
71  SpeechRecognitionEventListener* listener_;
72  SpeechRecognitionSessionConfig session_config_;
73  SpeechRecognitionSessionContext session_ctx_;
74  std::string fake_result_;
75  std::string grammar_;
76  bool did_cancel_all_;
77  bool should_send_fake_response_;
78  base::WaitableEvent recognition_started_event_;
79
80  DISALLOW_COPY_AND_ASSIGN(FakeSpeechRecognitionManager);
81};
82
83}  // namespace content
84
85#endif  // CONTENT_PUBLIC_TEST_FAKE_SPEECH_RECOGNTION_MANAGER_H_
86