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) 55c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch MOCK_METHOD1(OnConnectionAuthenticating, 56c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch void(ConnectionToClient* connection)); 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(OnConnectionAuthenticated, void(ConnectionToClient* connection)); 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(OnConnectionChannelsConnected, 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void(ConnectionToClient* connection)); 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD2(OnConnectionClosed, void(ConnectionToClient* connection, 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ErrorCode error)); 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD2(OnSequenceNumberUpdated, void(ConnectionToClient* connection, 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int64 sequence_number)); 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD3(OnRouteChange, void(ConnectionToClient* connection, 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& channel_name, 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const TransportRoute& route)); 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(MockConnectionToClientEventHandler); 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MockClipboardStub : public ClipboardStub { 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MockClipboardStub(); 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~MockClipboardStub(); 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(InjectClipboardEvent, void(const ClipboardEvent& event)); 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(MockClipboardStub); 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MockCursorShapeChangeCallback { 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MockCursorShapeChangeCallback(); 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~MockCursorShapeChangeCallback(); 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(CursorShapeChangedPtr, void(CursorShapeInfo* info)); 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void CursorShapeChanged(scoped_ptr<CursorShapeInfo> info); 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(MockCursorShapeChangeCallback); 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MockInputStub : public InputStub { 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MockInputStub(); 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~MockInputStub(); 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(InjectKeyEvent, void(const KeyEvent& event)); 101effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch MOCK_METHOD1(InjectTextEvent, void(const TextEvent& event)); 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(InjectMouseEvent, void(const MouseEvent& event)); 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(MockInputStub); 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MockHostStub : public HostStub { 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MockHostStub(); 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~MockHostStub(); 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) MOCK_METHOD1(NotifyClientResolution, 1142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void(const ClientResolution& resolution)); 115c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) MOCK_METHOD1(ControlVideo, void(const VideoControl& video_control)); 116c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) MOCK_METHOD1(ControlAudio, void(const AudioControl& audio_control)); 117c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) MOCK_METHOD1(SetCapabilities, void(const Capabilities& capabilities)); 118b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) MOCK_METHOD1(RequestPairing, 119b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) void(const PairingRequest& pairing_request)); 120c2db58bd994c04d98e4ee2cd7565b71548655fe3Ben Murdoch MOCK_METHOD1(DeliverClientMessage, void(const ExtensionMessage& message)); 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(MockHostStub); 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MockClientStub : public ClientStub { 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MockClientStub(); 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~MockClientStub(); 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 131c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // ClientStub mock implementation. 132c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) MOCK_METHOD1(SetCapabilities, void(const Capabilities& capabilities)); 133b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) MOCK_METHOD1(SetPairingResponse, 134b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) void(const PairingResponse& pairing_response)); 135c2db58bd994c04d98e4ee2cd7565b71548655fe3Ben Murdoch MOCK_METHOD1(DeliverHostMessage, void(const ExtensionMessage& message)); 136c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // ClipboardStub mock implementation. 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(InjectClipboardEvent, void(const ClipboardEvent& event)); 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // CursorShapeStub mock implementation. 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(SetCursorShape, void(const CursorShapeInfo& cursor_shape)); 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(MockClientStub); 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MockVideoStub : public VideoStub { 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MockVideoStub(); 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~MockVideoStub(); 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD2(ProcessVideoPacketPtr, void(const VideoPacket* video_packet, 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const base::Closure& done)); 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ProcessVideoPacket(scoped_ptr<VideoPacket> video_packet, 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const base::Closure& done) { 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ProcessVideoPacketPtr(video_packet.get(), done); 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(MockVideoStub); 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MockSession : public Session { 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MockSession(); 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~MockSession(); 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(SetEventHandler, void(Session::EventHandler* event_handler)); 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD0(error, ErrorCode()); 1701320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci MOCK_METHOD0(GetTransportChannelFactory, StreamChannelFactory*()); 1711320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci MOCK_METHOD0(GetMultiplexedChannelFactory, StreamChannelFactory*()); 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD0(jid, const std::string&()); 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD0(candidate_config, const CandidateSessionConfig*()); 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD0(config, const SessionConfig&()); 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(set_config, void(const SessionConfig& config)); 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD0(initiator_token, const std::string&()); 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(set_initiator_token, void(const std::string& initiator_token)); 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD0(receiver_token, const std::string&()); 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(set_receiver_token, void(const std::string& receiver_token)); 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(set_shared_secret, void(const std::string& secret)); 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD0(shared_secret, const std::string&()); 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD0(Close, void()); 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(MockSession); 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MockSessionManager : public SessionManager { 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MockSessionManager(); 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~MockSessionManager(); 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD2(Init, void(SignalStrategy*, Listener*)); 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD3(ConnectPtr, Session*( 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& host_jid, 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Authenticator* authenticator, 1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CandidateSessionConfig* config)); 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD0(Close, void()); 1997d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) MOCK_METHOD1(set_authenticator_factory_ptr, 2007d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) void(AuthenticatorFactory* factory)); 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual scoped_ptr<Session> Connect( 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& host_jid, 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<Authenticator> authenticator, 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<CandidateSessionConfig> config) { 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return scoped_ptr<Session>(ConnectPtr( 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) host_jid, authenticator.get(), config.get())); 2077d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) } 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void set_authenticator_factory( 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<AuthenticatorFactory> authenticator_factory) { 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set_authenticator_factory_ptr(authenticator_factory.release()); 2117d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) } 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(MockSessionManager); 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2177d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// Simple delegate that caches information on paired clients in memory. 2187d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)class MockPairingRegistryDelegate : public PairingRegistry::Delegate { 2197d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) public: 2207d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) MockPairingRegistryDelegate(); 2217d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) virtual ~MockPairingRegistryDelegate(); 2227d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 2237d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) // PairingRegistry::Delegate implementation. 224a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) virtual scoped_ptr<base::ListValue> LoadAll() OVERRIDE; 225a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) virtual bool DeleteAll() OVERRIDE; 226a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) virtual protocol::PairingRegistry::Pairing Load( 227a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) const std::string& client_id) OVERRIDE; 228a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) virtual bool Save(const protocol::PairingRegistry::Pairing& pairing) OVERRIDE; 229a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) virtual bool Delete(const std::string& client_id) OVERRIDE; 230ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 231a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) private: 232a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) typedef std::map<std::string, protocol::PairingRegistry::Pairing> Pairings; 233a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) Pairings pairings_; 234a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)}; 235a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 236a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)class SynchronousPairingRegistry : public PairingRegistry { 237a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) public: 238a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) explicit SynchronousPairingRegistry(scoped_ptr<Delegate> delegate); 239ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 240a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) protected: 241a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) virtual ~SynchronousPairingRegistry(); 2427d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 243a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) // Runs tasks synchronously instead of posting them to |task_runner|. 244a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) virtual void PostTask( 245a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) const scoped_refptr<base::SingleThreadTaskRunner>& task_runner, 246a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) const tracked_objects::Location& from_here, 247a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) const base::Closure& task) OVERRIDE; 2487d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)}; 2497d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace protocol 2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace remoting 2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // REMOTING_PROTOCOL_PROTOCOL_MOCK_OBJECTS_H_ 254