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 // Mockable version of Connect. Accepts a bare pointer to a mock object. |
63 // (GMock won't compile with scoped_ptr method parameters.) | 73 // (GMock won't compile with scoped_ptr method parameters.) |
64 MOCK_METHOD2(ConnectRawPtr, | 74 MOCK_METHOD2(AddObserverInternal, |
65 void(CastTransport::Delegate* delegate, | 75 void(const std::string& id, Observer* observer)); |
66 base::Callback<void(ChannelError)> callback)); | |
67 | 76 |
68 // Proxy for ConnectRawPtr. Unpacks scoped_ptr into a GMock-friendly bare | 77 // Proxy for ConnectRawPtr. Unpacks scoped_ptr into a GMock-friendly bare |
69 // ptr. | 78 // ptr. |
70 void Connect(std::unique_ptr<CastTransport::Delegate> delegate, | 79 void AddObserver(const std::string& id, |
71 base::Callback<void(ChannelError)> callback) override { | 80 std::unique_ptr<Observer> observer) override { |
72 delegate_ = std::move(delegate); | 81 observer_ = std::move(observer); |
73 ConnectRawPtr(delegate_.get(), callback); | 82 AddObserverInternal(id, observer_.get()); |
74 } | 83 } |
75 | 84 |
| 85 MOCK_METHOD1(Connect, void(base::Callback<void(ChannelError)> callback)); |
76 MOCK_METHOD1(Close, void(const net::CompletionCallback& callback)); | 86 MOCK_METHOD1(Close, void(const net::CompletionCallback& callback)); |
77 MOCK_CONST_METHOD0(ip_endpoint, const net::IPEndPoint&()); | 87 MOCK_CONST_METHOD0(ip_endpoint, const net::IPEndPoint&()); |
78 MOCK_CONST_METHOD0(id, int()); | 88 MOCK_CONST_METHOD0(id, int()); |
79 MOCK_METHOD1(set_id, void(int id)); | 89 MOCK_METHOD1(set_id, void(int id)); |
80 MOCK_CONST_METHOD0(ready_state, ReadyState()); | 90 MOCK_CONST_METHOD0(ready_state, ReadyState()); |
81 MOCK_CONST_METHOD0(error_state, ChannelError()); | 91 MOCK_CONST_METHOD0(error_state, ChannelError()); |
82 MOCK_CONST_METHOD0(keep_alive, bool(void)); | 92 MOCK_CONST_METHOD0(keep_alive, bool(void)); |
83 MOCK_CONST_METHOD0(audio_only, bool(void)); | 93 MOCK_CONST_METHOD0(audio_only, bool(void)); |
84 MOCK_METHOD1(SetErrorState, void(ChannelError error_state)); | 94 MOCK_METHOD1(SetErrorState, void(ChannelError error_state)); |
| 95 MOCK_METHOD1(HasObserver, bool(const std::string& id)); |
85 | 96 |
86 CastTransport* transport() const override { return mock_transport_.get(); } | 97 CastTransport* transport() const override { return mock_transport_.get(); } |
87 | 98 |
88 MockCastTransport* mock_transport() const { return mock_transport_.get(); } | 99 MockCastTransport* mock_transport() const { return mock_transport_.get(); } |
89 | 100 |
90 private: | 101 private: |
91 std::unique_ptr<MockCastTransport> mock_transport_; | 102 std::unique_ptr<MockCastTransport> mock_transport_; |
92 std::unique_ptr<CastTransport::Delegate> delegate_; | 103 std::unique_ptr<Observer> observer_; |
93 | 104 |
94 DISALLOW_COPY_AND_ASSIGN(MockCastSocket); | 105 DISALLOW_COPY_AND_ASSIGN(MockCastSocket); |
95 }; | 106 }; |
96 | 107 |
97 // Creates the IPEndpoint 192.168.1.1. | 108 // Creates the IPEndpoint 192.168.1.1. |
98 net::IPEndPoint CreateIPEndPointForTest(); | 109 net::IPEndPoint CreateIPEndPointForTest(); |
99 | 110 |
100 // Checks if two proto messages are the same. | 111 // Checks if two proto messages are the same. |
101 // From | 112 // From |
102 // third_party/cacheinvalidation/overrides/google/cacheinvalidation/deps/gmock.h | 113 // third_party/cacheinvalidation/overrides/google/cacheinvalidation/deps/gmock.h |
103 // TODO(kmarshall): promote to a shared testing library. | 114 // TODO(kmarshall): promote to a shared testing library. |
104 MATCHER_P(EqualsProto, message, "") { | 115 MATCHER_P(EqualsProto, message, "") { |
105 std::string expected_serialized, actual_serialized; | 116 std::string expected_serialized, actual_serialized; |
106 message.SerializeToString(&expected_serialized); | 117 message.SerializeToString(&expected_serialized); |
107 arg.SerializeToString(&actual_serialized); | 118 arg.SerializeToString(&actual_serialized); |
108 return expected_serialized == actual_serialized; | 119 return expected_serialized == actual_serialized; |
109 } | 120 } |
110 | 121 |
111 ACTION_TEMPLATE(PostCompletionCallbackTask, | 122 ACTION_TEMPLATE(PostCompletionCallbackTask, |
112 HAS_1_TEMPLATE_PARAMS(int, cb_idx), | 123 HAS_1_TEMPLATE_PARAMS(int, cb_idx), |
113 AND_1_VALUE_PARAMS(rv)) { | 124 AND_1_VALUE_PARAMS(rv)) { |
114 base::ThreadTaskRunnerHandle::Get()->PostTask( | 125 base::ThreadTaskRunnerHandle::Get()->PostTask( |
115 FROM_HERE, base::Bind(testing::get<cb_idx>(args), rv)); | 126 FROM_HERE, base::Bind(testing::get<cb_idx>(args), rv)); |
116 } | 127 } |
117 | 128 |
118 } // namespace cast_channel | 129 } // namespace cast_channel |
119 | 130 |
120 #endif // COMPONENTS_CAST_CHANNEL_CAST_TEST_UTIL_H_ | 131 #endif // COMPONENTS_CAST_CHANNEL_CAST_TEST_UTIL_H_ |
OLD | NEW |