Home | History | Annotate | Download | only in test
      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 
     13 namespace 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().
     19 class 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 AbortAllSessionsForListener(
     51       SpeechRecognitionEventListener* listener) OVERRIDE;
     52   virtual void AbortAllSessionsForRenderView(int render_process_id,
     53                                              int render_view_id) OVERRIDE;
     54   virtual bool HasAudioInputDevices() OVERRIDE;
     55   virtual string16 GetAudioInputDeviceModel() OVERRIDE;
     56   virtual void ShowAudioInputSettings() OVERRIDE {}
     57   virtual int GetSession(int render_process_id,
     58                          int render_view_id,
     59                          int request_id) const OVERRIDE;
     60   virtual const SpeechRecognitionSessionConfig& GetSessionConfig(
     61       int session_id) const OVERRIDE;
     62   virtual SpeechRecognitionSessionContext GetSessionContext(
     63       int session_id) const OVERRIDE;
     64 
     65  private:
     66   void SetFakeRecognitionResult();
     67 
     68   int session_id_;
     69   SpeechRecognitionEventListener* listener_;
     70   SpeechRecognitionSessionConfig session_config_;
     71   SpeechRecognitionSessionContext session_ctx_;
     72   std::string fake_result_;
     73   std::string grammar_;
     74   bool did_cancel_all_;
     75   bool should_send_fake_response_;
     76   base::Closure recognition_started_closure_;
     77 
     78   DISALLOW_COPY_AND_ASSIGN(FakeSpeechRecognitionManager);
     79 };
     80 
     81 }  // namespace content
     82 
     83 #endif  // CONTENT_PUBLIC_TEST_FAKE_SPEECH_RECOGNTION_MANAGER_H_
     84