protocol_mock_objects.h revision effb81e5f8246d0db0270817048dc992db66e9fb
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef REMOTING_PROTOCOL_PROTOCOL_MOCK_OBJECTS_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define REMOTING_PROTOCOL_PROTOCOL_MOCK_OBJECTS_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include <map> 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string> 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "base/location.h" 12a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "base/single_thread_task_runner.h" 13a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "base/values.h" 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "net/base/ip_endpoint.h" 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "remoting/proto/internal.pb.h" 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "remoting/proto/video.pb.h" 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "remoting/protocol/authenticator.h" 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "remoting/protocol/client_stub.h" 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "remoting/protocol/clipboard_stub.h" 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "remoting/protocol/connection_to_client.h" 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "remoting/protocol/host_stub.h" 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "remoting/protocol/input_stub.h" 237d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "remoting/protocol/pairing_registry.h" 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "remoting/protocol/session.h" 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "remoting/protocol/session_manager.h" 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "remoting/protocol/transport.h" 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "remoting/protocol/video_stub.h" 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "testing/gmock/include/gmock/gmock.h" 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace remoting { 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace protocol { 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MockConnectionToClient : public ConnectionToClient { 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MockConnectionToClient(Session* session, 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HostStub* host_stub); 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~MockConnectionToClient(); 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(Init, void(Session* session)); 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD0(video_stub, VideoStub*()); 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD0(client_stub, ClientStub*()); 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD0(session, Session*()); 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD0(Disconnect, void()); 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(MockConnectionToClient); 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MockConnectionToClientEventHandler : 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public ConnectionToClient::EventHandler { 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MockConnectionToClientEventHandler(); 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~MockConnectionToClientEventHandler(); 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(OnConnectionAuthenticated, void(ConnectionToClient* connection)); 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(OnConnectionChannelsConnected, 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void(ConnectionToClient* connection)); 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD2(OnConnectionClosed, void(ConnectionToClient* connection, 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ErrorCode error)); 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD2(OnSequenceNumberUpdated, void(ConnectionToClient* connection, 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int64 sequence_number)); 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD3(OnRouteChange, void(ConnectionToClient* connection, 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& channel_name, 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const TransportRoute& route)); 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(MockConnectionToClientEventHandler); 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MockClipboardStub : public ClipboardStub { 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MockClipboardStub(); 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~MockClipboardStub(); 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(InjectClipboardEvent, void(const ClipboardEvent& event)); 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(MockClipboardStub); 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MockCursorShapeChangeCallback { 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MockCursorShapeChangeCallback(); 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~MockCursorShapeChangeCallback(); 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(CursorShapeChangedPtr, void(CursorShapeInfo* info)); 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void CursorShapeChanged(scoped_ptr<CursorShapeInfo> info); 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(MockCursorShapeChangeCallback); 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MockInputStub : public InputStub { 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MockInputStub(); 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~MockInputStub(); 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(InjectKeyEvent, void(const KeyEvent& event)); 99effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch MOCK_METHOD1(InjectTextEvent, void(const TextEvent& event)); 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(InjectMouseEvent, void(const MouseEvent& event)); 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(MockInputStub); 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MockHostStub : public HostStub { 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MockHostStub(); 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~MockHostStub(); 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) MOCK_METHOD1(NotifyClientResolution, 1122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void(const ClientResolution& resolution)); 113c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) MOCK_METHOD1(ControlVideo, void(const VideoControl& video_control)); 114c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) MOCK_METHOD1(ControlAudio, void(const AudioControl& audio_control)); 115c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) MOCK_METHOD1(SetCapabilities, void(const Capabilities& capabilities)); 116b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) MOCK_METHOD1(RequestPairing, 117b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) void(const PairingRequest& pairing_request)); 118c2db58bd994c04d98e4ee2cd7565b71548655fe3Ben Murdoch MOCK_METHOD1(DeliverClientMessage, void(const ExtensionMessage& message)); 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(MockHostStub); 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MockClientStub : public ClientStub { 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MockClientStub(); 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~MockClientStub(); 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 129c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // ClientStub mock implementation. 130c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) MOCK_METHOD1(SetCapabilities, void(const Capabilities& capabilities)); 131b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) MOCK_METHOD1(SetPairingResponse, 132b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) void(const PairingResponse& pairing_response)); 133c2db58bd994c04d98e4ee2cd7565b71548655fe3Ben Murdoch MOCK_METHOD1(DeliverHostMessage, void(const ExtensionMessage& message)); 134c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // ClipboardStub mock implementation. 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(InjectClipboardEvent, void(const ClipboardEvent& event)); 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // CursorShapeStub mock implementation. 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(SetCursorShape, void(const CursorShapeInfo& cursor_shape)); 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(MockClientStub); 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MockVideoStub : public VideoStub { 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MockVideoStub(); 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~MockVideoStub(); 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD2(ProcessVideoPacketPtr, void(const VideoPacket* video_packet, 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const base::Closure& done)); 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ProcessVideoPacket(scoped_ptr<VideoPacket> video_packet, 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const base::Closure& done) { 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ProcessVideoPacketPtr(video_packet.get(), done); 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(MockVideoStub); 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MockSession : public Session { 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MockSession(); 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~MockSession(); 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(SetEventHandler, void(Session::EventHandler* event_handler)); 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD0(error, ErrorCode()); 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD0(GetTransportChannelFactory, ChannelFactory*()); 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD0(GetMultiplexedChannelFactory, ChannelFactory*()); 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD0(jid, const std::string&()); 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD0(candidate_config, const CandidateSessionConfig*()); 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD0(config, const SessionConfig&()); 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(set_config, void(const SessionConfig& config)); 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD0(initiator_token, const std::string&()); 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(set_initiator_token, void(const std::string& initiator_token)); 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD0(receiver_token, const std::string&()); 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(set_receiver_token, void(const std::string& receiver_token)); 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(set_shared_secret, void(const std::string& secret)); 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD0(shared_secret, const std::string&()); 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD0(Close, void()); 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(MockSession); 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MockSessionManager : public SessionManager { 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MockSessionManager(); 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~MockSessionManager(); 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD2(Init, void(SignalStrategy*, Listener*)); 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD3(ConnectPtr, Session*( 1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& host_jid, 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Authenticator* authenticator, 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CandidateSessionConfig* config)); 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD0(Close, void()); 1977d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) MOCK_METHOD1(set_authenticator_factory_ptr, 1987d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) void(AuthenticatorFactory* factory)); 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual scoped_ptr<Session> Connect( 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& host_jid, 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<Authenticator> authenticator, 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<CandidateSessionConfig> config) { 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return scoped_ptr<Session>(ConnectPtr( 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) host_jid, authenticator.get(), config.get())); 2057d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) } 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void set_authenticator_factory( 2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<AuthenticatorFactory> authenticator_factory) { 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set_authenticator_factory_ptr(authenticator_factory.release()); 2097d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) } 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(MockSessionManager); 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2157d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// Simple delegate that caches information on paired clients in memory. 2167d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)class MockPairingRegistryDelegate : public PairingRegistry::Delegate { 2177d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) public: 2187d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) MockPairingRegistryDelegate(); 2197d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) virtual ~MockPairingRegistryDelegate(); 2207d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 2217d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) // PairingRegistry::Delegate implementation. 222a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) virtual scoped_ptr<base::ListValue> LoadAll() OVERRIDE; 223a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) virtual bool DeleteAll() OVERRIDE; 224a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) virtual protocol::PairingRegistry::Pairing Load( 225a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) const std::string& client_id) OVERRIDE; 226a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) virtual bool Save(const protocol::PairingRegistry::Pairing& pairing) OVERRIDE; 227a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) virtual bool Delete(const std::string& client_id) OVERRIDE; 228ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 229a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) private: 230a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) typedef std::map<std::string, protocol::PairingRegistry::Pairing> Pairings; 231a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) Pairings pairings_; 232a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)}; 233a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 234a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)class SynchronousPairingRegistry : public PairingRegistry { 235a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) public: 236a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) explicit SynchronousPairingRegistry(scoped_ptr<Delegate> delegate); 237ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 238a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) protected: 239a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) virtual ~SynchronousPairingRegistry(); 2407d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 241a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) // Runs tasks synchronously instead of posting them to |task_runner|. 242a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) virtual void PostTask( 243a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) const scoped_refptr<base::SingleThreadTaskRunner>& task_runner, 244a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) const tracked_objects::Location& from_here, 245a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) const base::Closure& task) OVERRIDE; 2467d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)}; 2477d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace protocol 2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace remoting 2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // REMOTING_PROTOCOL_PROTOCOL_MOCK_OBJECTS_H_ 252