Chromium Code Reviews| Index: cc/test/remote_proto_channel_bridge.h |
| diff --git a/cc/test/remote_proto_channel_bridge.h b/cc/test/remote_proto_channel_bridge.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..af9bd9af1ecb11816e326794dab8426247f9f84a |
| --- /dev/null |
| +++ b/cc/test/remote_proto_channel_bridge.h |
| @@ -0,0 +1,67 @@ |
| +// Copyright 2016 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 CC_TEST_REMOTE_PROTO_CHANNEL_BRIDGE_H_ |
| +#define CC_TEST_REMOTE_PROTO_CHANNEL_BRIDGE_H_ |
| + |
| +#include "base/macros.h" |
| +#include "cc/base/cc_export.h" |
| +#include "cc/test/test_hooks.h" |
| +#include "cc/trees/remote_proto_channel.h" |
| + |
| +// The RemoteProtoChannelBridge mocks out the external network layer for the |
| +// unit tests by sending messages directly between the RemoteProtoChannels for |
| +// the server and client LayerTreeHost. |
| +namespace cc { |
| +class RemoteProtoChannelBridge; |
| + |
| +class CC_EXPORT FakeRemoteProtoChannel : public RemoteProtoChannel { |
| + public: |
| + explicit FakeRemoteProtoChannel(RemoteProtoChannelBridge* bridge); |
| + ~FakeRemoteProtoChannel() override; |
| + |
| + // RemoteProtoChannel implementation |
| + void SetProtoReceiver(ProtoReceiver* receiver) override; |
| + |
| + virtual void OnProtoReceived(scoped_ptr<proto::CompositorMessage> proto); |
| + |
| + bool HasReceiver() const; |
| + |
| + protected: |
| + RemoteProtoChannelBridge* bridge_; |
| + |
| + private: |
| + RemoteProtoChannel::ProtoReceiver* receiver_; |
| +}; |
| + |
| +class CC_EXPORT FakeRemoteProtoChannelMain : public FakeRemoteProtoChannel { |
| + public: |
| + explicit FakeRemoteProtoChannelMain(RemoteProtoChannelBridge* bridge, |
|
ericrk
2016/01/20 22:32:29
nit: remove explicit on a 2 arg constructor.
Khushal
2016/01/22 01:03:24
Done.
|
| + TestHooks* test_hooks); |
| + |
| + void SendCompositorProto(const proto::CompositorMessage& proto) override; |
| + |
| + private: |
| + TestHooks* test_hooks_; |
| +}; |
| + |
| +class CC_EXPORT FakeRemoteProtoChannelImpl : public FakeRemoteProtoChannel { |
| + public: |
| + explicit FakeRemoteProtoChannelImpl(RemoteProtoChannelBridge* bridge); |
| + |
| + void SendCompositorProto(const proto::CompositorMessage& proto) override; |
| +}; |
| + |
| +class CC_EXPORT RemoteProtoChannelBridge { |
| + public: |
| + explicit RemoteProtoChannelBridge(TestHooks* test_hooks); |
| + ~RemoteProtoChannelBridge(); |
| + |
| + FakeRemoteProtoChannelMain channel_main; |
| + FakeRemoteProtoChannelImpl channel_impl; |
| +}; |
| + |
| +} // namespace cc |
| + |
| +#endif // CC_TEST_REMOTE_PROTO_CHANNEL_BRIDGE_H_ |