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 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