OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef COMPONENTS_CAST_CHANNEL_CAST_TEST_UTIL_H_ | 5 #ifndef COMPONENTS_CAST_CHANNEL_CAST_TEST_UTIL_H_ |
6 #define COMPONENTS_CAST_CHANNEL_CAST_TEST_UTIL_H_ | 6 #define COMPONENTS_CAST_CHANNEL_CAST_TEST_UTIL_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
47 ~MockCastTransportDelegate() override; | 47 ~MockCastTransportDelegate() override; |
48 | 48 |
49 MOCK_METHOD1(OnError, void(ChannelError error)); | 49 MOCK_METHOD1(OnError, void(ChannelError error)); |
50 MOCK_METHOD1(OnMessage, void(const CastMessage& message)); | 50 MOCK_METHOD1(OnMessage, void(const CastMessage& message)); |
51 MOCK_METHOD0(Start, void(void)); | 51 MOCK_METHOD0(Start, void(void)); |
52 | 52 |
53 private: | 53 private: |
54 DISALLOW_COPY_AND_ASSIGN(MockCastTransportDelegate); | 54 DISALLOW_COPY_AND_ASSIGN(MockCastTransportDelegate); |
55 }; | 55 }; |
56 | 56 |
| 57 class MockCastSocketObserver : public CastSocket::Observer { |
| 58 public: |
| 59 MockCastSocketObserver(); |
| 60 ~MockCastSocketObserver() override; |
| 61 |
| 62 MOCK_METHOD2(OnError, void(const CastSocket& socket, ChannelError error)); |
| 63 MOCK_METHOD2(OnMessage, |
| 64 void(const CastSocket& socket, const CastMessage& message)); |
| 65 }; |
| 66 |
57 class MockCastSocket : public CastSocket { | 67 class MockCastSocket : public CastSocket { |
58 public: | 68 public: |
59 MockCastSocket(); | 69 MockCastSocket(); |
60 ~MockCastSocket() override; | 70 ~MockCastSocket() override; |
61 | 71 |
62 // Mockable version of Connect. Accepts a bare pointer to a mock object. | 72 MOCK_METHOD1(Connect, void(base::Callback<void(ChannelError)> callback)); |
63 // (GMock won't compile with scoped_ptr method parameters.) | |
64 MOCK_METHOD2(ConnectRawPtr, | |
65 void(CastTransport::Delegate* delegate, | |
66 base::Callback<void(ChannelError)> callback)); | |
67 | |
68 // Proxy for ConnectRawPtr. Unpacks scoped_ptr into a GMock-friendly bare | |
69 // ptr. | |
70 void Connect(std::unique_ptr<CastTransport::Delegate> delegate, | |
71 base::Callback<void(ChannelError)> callback) override { | |
72 delegate_ = std::move(delegate); | |
73 ConnectRawPtr(delegate_.get(), callback); | |
74 } | |
75 | |
76 MOCK_METHOD1(Close, void(const net::CompletionCallback& callback)); | 73 MOCK_METHOD1(Close, void(const net::CompletionCallback& callback)); |
77 MOCK_CONST_METHOD0(ip_endpoint, const net::IPEndPoint&()); | 74 MOCK_CONST_METHOD0(ip_endpoint, const net::IPEndPoint&()); |
78 MOCK_CONST_METHOD0(id, int()); | 75 MOCK_CONST_METHOD0(id, int()); |
79 MOCK_METHOD1(set_id, void(int id)); | 76 MOCK_METHOD1(set_id, void(int id)); |
80 MOCK_CONST_METHOD0(ready_state, ReadyState()); | 77 MOCK_CONST_METHOD0(ready_state, ReadyState()); |
81 MOCK_CONST_METHOD0(error_state, ChannelError()); | 78 MOCK_CONST_METHOD0(error_state, ChannelError()); |
82 MOCK_CONST_METHOD0(keep_alive, bool(void)); | 79 MOCK_CONST_METHOD0(keep_alive, bool(void)); |
83 MOCK_CONST_METHOD0(audio_only, bool(void)); | 80 MOCK_CONST_METHOD0(audio_only, bool(void)); |
84 MOCK_METHOD1(SetErrorState, void(ChannelError error_state)); | 81 MOCK_METHOD1(SetErrorState, void(ChannelError error_state)); |
| 82 MOCK_METHOD1(AddObserver, void(Observer* observer)); |
85 | 83 |
86 CastTransport* transport() const override { return mock_transport_.get(); } | 84 CastTransport* transport() const override { return mock_transport_.get(); } |
87 | 85 |
88 MockCastTransport* mock_transport() const { return mock_transport_.get(); } | 86 MockCastTransport* mock_transport() const { return mock_transport_.get(); } |
89 | 87 |
90 private: | 88 private: |
91 std::unique_ptr<MockCastTransport> mock_transport_; | 89 std::unique_ptr<MockCastTransport> mock_transport_; |
92 std::unique_ptr<CastTransport::Delegate> delegate_; | 90 std::unique_ptr<Observer> observer_; |
93 | 91 |
94 DISALLOW_COPY_AND_ASSIGN(MockCastSocket); | 92 DISALLOW_COPY_AND_ASSIGN(MockCastSocket); |
95 }; | 93 }; |
96 | 94 |
97 // Creates the IPEndpoint 192.168.1.1. | 95 // Creates the IPEndpoint 192.168.1.1. |
98 net::IPEndPoint CreateIPEndPointForTest(); | 96 net::IPEndPoint CreateIPEndPointForTest(); |
99 | 97 |
100 // Checks if two proto messages are the same. | 98 // Checks if two proto messages are the same. |
101 // From | 99 // From |
102 // third_party/cacheinvalidation/overrides/google/cacheinvalidation/deps/gmock.h | 100 // third_party/cacheinvalidation/overrides/google/cacheinvalidation/deps/gmock.h |
103 // TODO(kmarshall): promote to a shared testing library. | 101 // TODO(kmarshall): promote to a shared testing library. |
104 MATCHER_P(EqualsProto, message, "") { | 102 MATCHER_P(EqualsProto, message, "") { |
105 std::string expected_serialized, actual_serialized; | 103 std::string expected_serialized, actual_serialized; |
106 message.SerializeToString(&expected_serialized); | 104 message.SerializeToString(&expected_serialized); |
107 arg.SerializeToString(&actual_serialized); | 105 arg.SerializeToString(&actual_serialized); |
108 return expected_serialized == actual_serialized; | 106 return expected_serialized == actual_serialized; |
109 } | 107 } |
110 | 108 |
111 ACTION_TEMPLATE(PostCompletionCallbackTask, | 109 ACTION_TEMPLATE(PostCompletionCallbackTask, |
112 HAS_1_TEMPLATE_PARAMS(int, cb_idx), | 110 HAS_1_TEMPLATE_PARAMS(int, cb_idx), |
113 AND_1_VALUE_PARAMS(rv)) { | 111 AND_1_VALUE_PARAMS(rv)) { |
114 base::ThreadTaskRunnerHandle::Get()->PostTask( | 112 base::ThreadTaskRunnerHandle::Get()->PostTask( |
115 FROM_HERE, base::Bind(testing::get<cb_idx>(args), rv)); | 113 FROM_HERE, base::Bind(testing::get<cb_idx>(args), rv)); |
116 } | 114 } |
117 | 115 |
118 } // namespace cast_channel | 116 } // namespace cast_channel |
119 | 117 |
120 #endif // COMPONENTS_CAST_CHANNEL_CAST_TEST_UTIL_H_ | 118 #endif // COMPONENTS_CAST_CHANNEL_CAST_TEST_UTIL_H_ |
OLD | NEW |