Home | History | Annotate | Download | only in host
      1 // Copyright (c) 2012 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 REMOTING_HOST_HOST_MOCK_OBJECTS_H_
      6 #define REMOTING_HOST_HOST_MOCK_OBJECTS_H_
      7 
      8 #include <string>
      9 
     10 #include "net/base/ip_endpoint.h"
     11 #include "remoting/host/chromoting_host_context.h"
     12 #include "remoting/host/client_session.h"
     13 #include "remoting/host/client_session_control.h"
     14 #include "remoting/host/desktop_environment.h"
     15 #include "remoting/host/gnubby_auth_handler.h"
     16 #include "remoting/host/host_status_observer.h"
     17 #include "remoting/host/input_injector.h"
     18 #include "remoting/host/screen_controls.h"
     19 #include "remoting/host/screen_resolution.h"
     20 #include "remoting/proto/control.pb.h"
     21 #include "testing/gmock/include/gmock/gmock.h"
     22 
     23 namespace base {
     24 class SingleThreadTaskRunner;
     25 }  // namespace base
     26 
     27 namespace remoting {
     28 
     29 class MockDesktopEnvironment : public DesktopEnvironment {
     30  public:
     31   MockDesktopEnvironment();
     32   virtual ~MockDesktopEnvironment();
     33 
     34   MOCK_METHOD0(CreateAudioCapturerPtr, AudioCapturer*());
     35   MOCK_METHOD0(CreateInputInjectorPtr, InputInjector*());
     36   MOCK_METHOD0(CreateScreenControlsPtr, ScreenControls*());
     37   MOCK_METHOD0(CreateVideoCapturerPtr, webrtc::ScreenCapturer*());
     38   MOCK_CONST_METHOD0(GetCapabilities, std::string());
     39   MOCK_METHOD1(SetCapabilities, void(const std::string&));
     40   MOCK_METHOD1(CreateGnubbyAuthHandlerPtr, GnubbyAuthHandler*(
     41       protocol::ClientStub* client_stub));
     42 
     43   // DesktopEnvironment implementation.
     44   virtual scoped_ptr<AudioCapturer> CreateAudioCapturer() OVERRIDE;
     45   virtual scoped_ptr<InputInjector> CreateInputInjector() OVERRIDE;
     46   virtual scoped_ptr<ScreenControls> CreateScreenControls() OVERRIDE;
     47   virtual scoped_ptr<webrtc::ScreenCapturer> CreateVideoCapturer() OVERRIDE;
     48   virtual scoped_ptr<GnubbyAuthHandler> CreateGnubbyAuthHandler(
     49       protocol::ClientStub* client_stub) OVERRIDE;
     50 };
     51 
     52 class MockClientSessionControl : public ClientSessionControl {
     53  public:
     54   MockClientSessionControl();
     55   virtual ~MockClientSessionControl();
     56 
     57   MOCK_CONST_METHOD0(client_jid, const std::string&());
     58   MOCK_METHOD0(DisconnectSession, void());
     59   MOCK_METHOD1(OnLocalMouseMoved, void(const webrtc::DesktopVector&));
     60   MOCK_METHOD1(SetDisableInputs, void(bool));
     61 
     62  private:
     63   DISALLOW_COPY_AND_ASSIGN(MockClientSessionControl);
     64 };
     65 
     66 class MockClientSessionEventHandler : public ClientSession::EventHandler {
     67  public:
     68   MockClientSessionEventHandler();
     69   virtual ~MockClientSessionEventHandler();
     70 
     71   MOCK_METHOD1(OnSessionAuthenticating, void(ClientSession* client));
     72   MOCK_METHOD1(OnSessionAuthenticated, bool(ClientSession* client));
     73   MOCK_METHOD1(OnSessionChannelsConnected, void(ClientSession* client));
     74   MOCK_METHOD1(OnSessionClientCapabilities, void(ClientSession* client));
     75   MOCK_METHOD1(OnSessionAuthenticationFailed, void(ClientSession* client));
     76   MOCK_METHOD1(OnSessionClosed, void(ClientSession* client));
     77   MOCK_METHOD2(OnSessionSequenceNumber, void(ClientSession* client,
     78                                              int64 sequence_number));
     79   MOCK_METHOD3(OnSessionRouteChange, void(
     80       ClientSession* client,
     81       const std::string& channel_name,
     82       const protocol::TransportRoute& route));
     83 
     84  private:
     85   DISALLOW_COPY_AND_ASSIGN(MockClientSessionEventHandler);
     86 };
     87 
     88 class MockDesktopEnvironmentFactory : public DesktopEnvironmentFactory {
     89  public:
     90   MockDesktopEnvironmentFactory();
     91   virtual ~MockDesktopEnvironmentFactory();
     92 
     93   MOCK_METHOD0(CreatePtr, DesktopEnvironment*());
     94   MOCK_CONST_METHOD0(SupportsAudioCapture, bool());
     95 
     96   virtual scoped_ptr<DesktopEnvironment> Create(
     97       base::WeakPtr<ClientSessionControl> client_session_control) OVERRIDE;
     98 
     99  private:
    100   DISALLOW_COPY_AND_ASSIGN(MockDesktopEnvironmentFactory);
    101 };
    102 
    103 class MockInputInjector : public InputInjector {
    104  public:
    105   MockInputInjector();
    106   virtual ~MockInputInjector();
    107 
    108   MOCK_METHOD1(InjectClipboardEvent,
    109                void(const protocol::ClipboardEvent& event));
    110   MOCK_METHOD1(InjectKeyEvent, void(const protocol::KeyEvent& event));
    111   MOCK_METHOD1(InjectTextEvent, void(const protocol::TextEvent& event));
    112   MOCK_METHOD1(InjectMouseEvent, void(const protocol::MouseEvent& event));
    113   MOCK_METHOD1(StartPtr,
    114                void(protocol::ClipboardStub* client_clipboard));
    115 
    116   void Start(scoped_ptr<protocol::ClipboardStub> client_clipboard);
    117 
    118  private:
    119   DISALLOW_COPY_AND_ASSIGN(MockInputInjector);
    120 };
    121 
    122 class MockHostStatusObserver : public HostStatusObserver {
    123  public:
    124   MockHostStatusObserver();
    125   virtual ~MockHostStatusObserver();
    126 
    127   MOCK_METHOD1(OnAccessDenied, void(const std::string& jid));
    128   MOCK_METHOD1(OnClientAuthenticated, void(const std::string& jid));
    129   MOCK_METHOD1(OnClientConnected, void(const std::string& jid));
    130   MOCK_METHOD1(OnClientDisconnected, void(const std::string& jid));
    131   MOCK_METHOD3(OnClientRouteChange,
    132                void(const std::string& jid,
    133                     const std::string& channel_name,
    134                     const protocol::TransportRoute& route));
    135   MOCK_METHOD1(OnStart, void(const std::string& xmpp_login));
    136   MOCK_METHOD0(OnShutdown, void());
    137 };
    138 
    139 class MockGnubbyAuthHandler : public GnubbyAuthHandler {
    140  public:
    141   MockGnubbyAuthHandler();
    142   virtual ~MockGnubbyAuthHandler();
    143 
    144   MOCK_METHOD1(DeliverClientMessage, void(const std::string& message));
    145   MOCK_CONST_METHOD2(DeliverHostDataMessage,
    146                      void(int connection_id, const std::string& data));
    147 
    148  private:
    149   DISALLOW_COPY_AND_ASSIGN(MockGnubbyAuthHandler);
    150 };
    151 
    152 }  // namespace remoting
    153 
    154 #endif  // REMOTING_HOST_HOST_MOCK_OBJECTS_H_
    155