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.
5 #ifndef REMOTING_PROTOCOL_PROTOCOL_MOCK_OBJECTS_H_
6 #define REMOTING_PROTOCOL_PROTOCOL_MOCK_OBJECTS_H_
10 #include "net/base/ip_endpoint.h"
11 #include "remoting/proto/internal.pb.h"
12 #include "remoting/proto/video.pb.h"
13 #include "remoting/protocol/authenticator.h"
14 #include "remoting/protocol/client_stub.h"
15 #include "remoting/protocol/clipboard_stub.h"
16 #include "remoting/protocol/connection_to_client.h"
17 #include "remoting/protocol/host_stub.h"
18 #include "remoting/protocol/input_stub.h"
19 #include "remoting/protocol/session.h"
20 #include "remoting/protocol/session_manager.h"
21 #include "remoting/protocol/transport.h"
22 #include "remoting/protocol/video_stub.h"
23 #include "testing/gmock/include/gmock/gmock.h"
28 class MockConnectionToClient
: public ConnectionToClient
{
30 MockConnectionToClient(Session
* session
,
32 virtual ~MockConnectionToClient();
34 MOCK_METHOD1(Init
, void(Session
* session
));
35 MOCK_METHOD0(video_stub
, VideoStub
*());
36 MOCK_METHOD0(client_stub
, ClientStub
*());
37 MOCK_METHOD0(session
, Session
*());
38 MOCK_METHOD0(Disconnect
, void());
41 DISALLOW_COPY_AND_ASSIGN(MockConnectionToClient
);
44 class MockConnectionToClientEventHandler
:
45 public ConnectionToClient::EventHandler
{
47 MockConnectionToClientEventHandler();
48 virtual ~MockConnectionToClientEventHandler();
50 MOCK_METHOD1(OnConnectionAuthenticated
, void(ConnectionToClient
* connection
));
51 MOCK_METHOD1(OnConnectionChannelsConnected
,
52 void(ConnectionToClient
* connection
));
53 MOCK_METHOD2(OnConnectionClosed
, void(ConnectionToClient
* connection
,
55 MOCK_METHOD2(OnSequenceNumberUpdated
, void(ConnectionToClient
* connection
,
56 int64 sequence_number
));
57 MOCK_METHOD3(OnRouteChange
, void(ConnectionToClient
* connection
,
58 const std::string
& channel_name
,
59 const TransportRoute
& route
));
62 DISALLOW_COPY_AND_ASSIGN(MockConnectionToClientEventHandler
);
65 class MockClipboardStub
: public ClipboardStub
{
68 virtual ~MockClipboardStub();
70 MOCK_METHOD1(InjectClipboardEvent
, void(const ClipboardEvent
& event
));
73 DISALLOW_COPY_AND_ASSIGN(MockClipboardStub
);
76 class MockCursorShapeChangeCallback
{
78 MockCursorShapeChangeCallback();
79 virtual ~MockCursorShapeChangeCallback();
81 MOCK_METHOD1(CursorShapeChangedPtr
, void(CursorShapeInfo
* info
));
82 void CursorShapeChanged(scoped_ptr
<CursorShapeInfo
> info
);
85 DISALLOW_COPY_AND_ASSIGN(MockCursorShapeChangeCallback
);
88 class MockInputStub
: public InputStub
{
91 virtual ~MockInputStub();
93 MOCK_METHOD1(InjectKeyEvent
, void(const KeyEvent
& event
));
94 MOCK_METHOD1(InjectMouseEvent
, void(const MouseEvent
& event
));
97 DISALLOW_COPY_AND_ASSIGN(MockInputStub
);
100 class MockHostStub
: public HostStub
{
103 virtual ~MockHostStub();
105 MOCK_METHOD1(NotifyClientResolution
,
106 void(const ClientResolution
& resolution
));
107 MOCK_METHOD1(ControlVideo
,
108 void(const VideoControl
& video_control
));
109 MOCK_METHOD1(ControlAudio
,
110 void(const AudioControl
& audio_control
));
113 DISALLOW_COPY_AND_ASSIGN(MockHostStub
);
116 class MockClientStub
: public ClientStub
{
119 virtual ~MockClientStub();
121 // ClipboardStub mock implementation.
122 MOCK_METHOD1(InjectClipboardEvent
, void(const ClipboardEvent
& event
));
124 // CursorShapeStub mock implementation.
125 MOCK_METHOD1(SetCursorShape
, void(const CursorShapeInfo
& cursor_shape
));
128 DISALLOW_COPY_AND_ASSIGN(MockClientStub
);
131 class MockVideoStub
: public VideoStub
{
134 virtual ~MockVideoStub();
136 MOCK_METHOD2(ProcessVideoPacketPtr
, void(const VideoPacket
* video_packet
,
137 const base::Closure
& done
));
138 virtual void ProcessVideoPacket(scoped_ptr
<VideoPacket
> video_packet
,
139 const base::Closure
& done
) {
140 ProcessVideoPacketPtr(video_packet
.get(), done
);
144 DISALLOW_COPY_AND_ASSIGN(MockVideoStub
);
147 class MockSession
: public Session
{
150 virtual ~MockSession();
152 MOCK_METHOD1(SetEventHandler
, void(Session::EventHandler
* event_handler
));
153 MOCK_METHOD0(error
, ErrorCode());
154 MOCK_METHOD0(GetTransportChannelFactory
, ChannelFactory
*());
155 MOCK_METHOD0(GetMultiplexedChannelFactory
, ChannelFactory
*());
156 MOCK_METHOD0(jid
, const std::string
&());
157 MOCK_METHOD0(candidate_config
, const CandidateSessionConfig
*());
158 MOCK_METHOD0(config
, const SessionConfig
&());
159 MOCK_METHOD1(set_config
, void(const SessionConfig
& config
));
160 MOCK_METHOD0(initiator_token
, const std::string
&());
161 MOCK_METHOD1(set_initiator_token
, void(const std::string
& initiator_token
));
162 MOCK_METHOD0(receiver_token
, const std::string
&());
163 MOCK_METHOD1(set_receiver_token
, void(const std::string
& receiver_token
));
164 MOCK_METHOD1(set_shared_secret
, void(const std::string
& secret
));
165 MOCK_METHOD0(shared_secret
, const std::string
&());
166 MOCK_METHOD0(Close
, void());
169 DISALLOW_COPY_AND_ASSIGN(MockSession
);
172 class MockSessionManager
: public SessionManager
{
174 MockSessionManager();
175 virtual ~MockSessionManager();
177 MOCK_METHOD2(Init
, void(SignalStrategy
*, Listener
*));
178 MOCK_METHOD3(ConnectPtr
, Session
*(
179 const std::string
& host_jid
,
180 Authenticator
* authenticator
,
181 CandidateSessionConfig
* config
));
182 MOCK_METHOD0(Close
, void());
183 MOCK_METHOD1(set_authenticator_factory_ptr
, void(AuthenticatorFactory
*));
184 virtual scoped_ptr
<Session
> Connect(
185 const std::string
& host_jid
,
186 scoped_ptr
<Authenticator
> authenticator
,
187 scoped_ptr
<CandidateSessionConfig
> config
) {
188 return scoped_ptr
<Session
>(ConnectPtr(
189 host_jid
, authenticator
.get(), config
.get()));
191 virtual void set_authenticator_factory(
192 scoped_ptr
<AuthenticatorFactory
> authenticator_factory
) {
193 set_authenticator_factory_ptr(authenticator_factory
.release());
197 DISALLOW_COPY_AND_ASSIGN(MockSessionManager
);
200 } // namespace protocol
201 } // namespace remoting
203 #endif // REMOTING_PROTOCOL_PROTOCOL_MOCK_OBJECTS_H_