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/callback_forward.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  void WaitForRecognitionStarted();
41
42  void SetFakeResult(const std::string& result);
43
44  // SpeechRecognitionManager methods.
45  virtual int CreateSession(
46      const SpeechRecognitionSessionConfig& config) OVERRIDE;
47  virtual void StartSession(int session_id) OVERRIDE;
48  virtual void AbortSession(int session_id) OVERRIDE;
49  virtual void StopAudioCaptureForSession(int session_id) OVERRIDE;
50  virtual void AbortAllSessionsForRenderProcess(int render_process_id) OVERRIDE;
51  virtual void AbortAllSessionsForRenderView(int render_process_id,
52                                             int render_view_id) OVERRIDE;
53  virtual bool HasAudioInputDevices() OVERRIDE;
54  virtual base::string16 GetAudioInputDeviceModel() OVERRIDE;
55  virtual void ShowAudioInputSettings() OVERRIDE {}
56  virtual int GetSession(int render_process_id,
57                         int render_view_id,
58                         int request_id) const OVERRIDE;
59  virtual const SpeechRecognitionSessionConfig& GetSessionConfig(
60      int session_id) const OVERRIDE;
61  virtual SpeechRecognitionSessionContext GetSessionContext(
62      int session_id) const OVERRIDE;
63
64 private:
65  void SetFakeRecognitionResult();
66
67  int session_id_;
68  SpeechRecognitionEventListener* listener_;
69  SpeechRecognitionSessionConfig session_config_;
70  SpeechRecognitionSessionContext session_ctx_;
71  std::string fake_result_;
72  std::string grammar_;
73  bool did_cancel_all_;
74  bool should_send_fake_response_;
75  base::Closure recognition_started_closure_;
76
77  DISALLOW_COPY_AND_ASSIGN(FakeSpeechRecognitionManager);
78};
79
80}  // namespace content
81
82#endif  // CONTENT_PUBLIC_TEST_FAKE_SPEECH_RECOGNTION_MANAGER_H_
83