blob: 747892ac1892d01c18d23204f02cfbd888601ecb [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef REMOTING_PROTOCOL_FAKE_CONNECTION_TO_HOST_H_
#define REMOTING_PROTOCOL_FAKE_CONNECTION_TO_HOST_H_
#include <string>
#include "base/macros.h"
#include "base/single_thread_task_runner.h"
#include "remoting/protocol/connection_to_host.h"
#include "remoting/protocol/protocol_mock_objects.h"
namespace remoting {
namespace test {
class FakeConnectionToHost : public protocol::ConnectionToHost {
public:
FakeConnectionToHost();
~FakeConnectionToHost() override;
// ConnectionToHost interface.
void set_client_stub(protocol::ClientStub* client_stub) override;
void set_clipboard_stub(protocol::ClipboardStub* clipboard_stub) override;
void set_video_renderer(protocol::VideoRenderer* video_renderer) override;
void InitializeAudio(
scoped_refptr<base::SingleThreadTaskRunner> audio_decode_task_runner,
base::WeakPtr<protocol::AudioStub> audio_stub) override;
void Connect(std::unique_ptr<protocol::Session> session,
scoped_refptr<protocol::TransportContext> transport_context,
HostEventCallback* event_callback) override;
const protocol::SessionConfig& config() override;
protocol::ClipboardStub* clipboard_forwarder() override;
protocol::HostStub* host_stub() override;
protocol::InputStub* input_stub() override;
State state() const override;
// Calls OnConnectionState on the |event_callback_| with the supplied state
// and error.
void SignalStateChange(protocol::Session::State state,
protocol::ErrorCode error);
// Calls OnConnectionReady on the |event_callback_| with the supplied bool.
void SignalConnectionReady(bool ready);
private:
void SetState(State state, protocol::ErrorCode error);
State state_ = INITIALIZING;
HostEventCallback* event_callback_;
testing::NiceMock<protocol::MockClipboardStub> mock_clipboard_stub_;
testing::NiceMock<protocol::MockHostStub> mock_host_stub_;
testing::NiceMock<protocol::MockInputStub> mock_input_stub_;
std::unique_ptr<protocol::SessionConfig> session_config_;
DISALLOW_COPY_AND_ASSIGN(FakeConnectionToHost);
};
} // namespace test
} // namespace remoting
#endif // REMOTING_PROTOCOL_FAKE_CONNECTION_TO_HOST_H_