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