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 #include "components/proximity_auth/connection.h" | 5 #include "components/proximity_auth/connection.h" |
6 | 6 |
7 #include "base/macros.h" | 7 #include "base/macros.h" |
| 8 #include "base/memory/ptr_util.h" |
8 #include "components/proximity_auth/connection_observer.h" | 9 #include "components/proximity_auth/connection_observer.h" |
9 #include "components/proximity_auth/remote_device.h" | 10 #include "components/proximity_auth/remote_device.h" |
10 #include "components/proximity_auth/wire_message.h" | 11 #include "components/proximity_auth/wire_message.h" |
11 #include "testing/gmock/include/gmock/gmock.h" | 12 #include "testing/gmock/include/gmock/gmock.h" |
12 #include "testing/gtest/include/gtest/gtest.h" | 13 #include "testing/gtest/include/gtest/gtest.h" |
13 | 14 |
14 using testing::_; | 15 using testing::_; |
15 using testing::DoAll; | 16 using testing::DoAll; |
16 using testing::NiceMock; | 17 using testing::NiceMock; |
17 using testing::Return; | 18 using testing::Return; |
(...skipping 11 matching lines...) Expand all Loading... |
29 MOCK_METHOD1(SetPaused, void(bool paused)); | 30 MOCK_METHOD1(SetPaused, void(bool paused)); |
30 MOCK_METHOD0(Connect, void()); | 31 MOCK_METHOD0(Connect, void()); |
31 MOCK_METHOD0(Disconnect, void()); | 32 MOCK_METHOD0(Disconnect, void()); |
32 MOCK_METHOD0(CancelConnectionAttempt, void()); | 33 MOCK_METHOD0(CancelConnectionAttempt, void()); |
33 MOCK_METHOD1(SendMessageImplProxy, void(WireMessage* message)); | 34 MOCK_METHOD1(SendMessageImplProxy, void(WireMessage* message)); |
34 MOCK_METHOD1(DeserializeWireMessageProxy, | 35 MOCK_METHOD1(DeserializeWireMessageProxy, |
35 WireMessage*(bool* is_incomplete_message)); | 36 WireMessage*(bool* is_incomplete_message)); |
36 | 37 |
37 // Gmock only supports copyable types, so create simple wrapper methods for | 38 // Gmock only supports copyable types, so create simple wrapper methods for |
38 // ease of mocking. | 39 // ease of mocking. |
39 void SendMessageImpl(scoped_ptr<WireMessage> message) override { | 40 void SendMessageImpl(std::unique_ptr<WireMessage> message) override { |
40 SendMessageImplProxy(message.get()); | 41 SendMessageImplProxy(message.get()); |
41 } | 42 } |
42 | 43 |
43 scoped_ptr<WireMessage> DeserializeWireMessage( | 44 std::unique_ptr<WireMessage> DeserializeWireMessage( |
44 bool* is_incomplete_message) override { | 45 bool* is_incomplete_message) override { |
45 return make_scoped_ptr(DeserializeWireMessageProxy(is_incomplete_message)); | 46 return base::WrapUnique(DeserializeWireMessageProxy(is_incomplete_message)); |
46 } | 47 } |
47 | 48 |
48 using Connection::status; | 49 using Connection::status; |
49 using Connection::SetStatus; | 50 using Connection::SetStatus; |
50 using Connection::OnDidSendMessage; | 51 using Connection::OnDidSendMessage; |
51 using Connection::OnBytesReceived; | 52 using Connection::OnBytesReceived; |
52 | 53 |
53 private: | 54 private: |
54 DISALLOW_COPY_AND_ASSIGN(MockConnection); | 55 DISALLOW_COPY_AND_ASSIGN(MockConnection); |
55 }; | 56 }; |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
98 | 99 |
99 connection.SetStatus(Connection::IN_PROGRESS); | 100 connection.SetStatus(Connection::IN_PROGRESS); |
100 EXPECT_FALSE(connection.IsConnected()); | 101 EXPECT_FALSE(connection.IsConnected()); |
101 } | 102 } |
102 | 103 |
103 TEST(ProximityAuthConnectionTest, SendMessage_FailsWhenNotConnected) { | 104 TEST(ProximityAuthConnectionTest, SendMessage_FailsWhenNotConnected) { |
104 StrictMock<MockConnection> connection; | 105 StrictMock<MockConnection> connection; |
105 connection.SetStatus(Connection::IN_PROGRESS); | 106 connection.SetStatus(Connection::IN_PROGRESS); |
106 | 107 |
107 EXPECT_CALL(connection, SendMessageImplProxy(_)).Times(0); | 108 EXPECT_CALL(connection, SendMessageImplProxy(_)).Times(0); |
108 connection.SendMessage(scoped_ptr<WireMessage>()); | 109 connection.SendMessage(std::unique_ptr<WireMessage>()); |
109 } | 110 } |
110 | 111 |
111 TEST(ProximityAuthConnectionTest, | 112 TEST(ProximityAuthConnectionTest, |
112 SendMessage_FailsWhenAnotherMessageSendIsInProgress) { | 113 SendMessage_FailsWhenAnotherMessageSendIsInProgress) { |
113 NiceMock<MockConnection> connection; | 114 NiceMock<MockConnection> connection; |
114 connection.SetStatus(Connection::CONNECTED); | 115 connection.SetStatus(Connection::CONNECTED); |
115 connection.SendMessage(scoped_ptr<WireMessage>()); | 116 connection.SendMessage(std::unique_ptr<WireMessage>()); |
116 | 117 |
117 EXPECT_CALL(connection, SendMessageImplProxy(_)).Times(0); | 118 EXPECT_CALL(connection, SendMessageImplProxy(_)).Times(0); |
118 connection.SendMessage(scoped_ptr<WireMessage>()); | 119 connection.SendMessage(std::unique_ptr<WireMessage>()); |
119 } | 120 } |
120 | 121 |
121 TEST(ProximityAuthConnectionTest, SendMessage_SucceedsWhenConnected) { | 122 TEST(ProximityAuthConnectionTest, SendMessage_SucceedsWhenConnected) { |
122 StrictMock<MockConnection> connection; | 123 StrictMock<MockConnection> connection; |
123 connection.SetStatus(Connection::CONNECTED); | 124 connection.SetStatus(Connection::CONNECTED); |
124 | 125 |
125 EXPECT_CALL(connection, SendMessageImplProxy(_)); | 126 EXPECT_CALL(connection, SendMessageImplProxy(_)); |
126 connection.SendMessage(scoped_ptr<WireMessage>()); | 127 connection.SendMessage(std::unique_ptr<WireMessage>()); |
127 } | 128 } |
128 | 129 |
129 TEST(ProximityAuthConnectionTest, | 130 TEST(ProximityAuthConnectionTest, |
130 SendMessage_SucceedsAfterPreviousMessageSendCompletes) { | 131 SendMessage_SucceedsAfterPreviousMessageSendCompletes) { |
131 NiceMock<MockConnection> connection; | 132 NiceMock<MockConnection> connection; |
132 connection.SetStatus(Connection::CONNECTED); | 133 connection.SetStatus(Connection::CONNECTED); |
133 connection.SendMessage(scoped_ptr<WireMessage>()); | 134 connection.SendMessage(std::unique_ptr<WireMessage>()); |
134 connection.OnDidSendMessage(TestWireMessage(), true /* success */); | 135 connection.OnDidSendMessage(TestWireMessage(), true /* success */); |
135 | 136 |
136 EXPECT_CALL(connection, SendMessageImplProxy(_)); | 137 EXPECT_CALL(connection, SendMessageImplProxy(_)); |
137 connection.SendMessage(scoped_ptr<WireMessage>()); | 138 connection.SendMessage(std::unique_ptr<WireMessage>()); |
138 } | 139 } |
139 | 140 |
140 TEST(ProximityAuthConnectionTest, SetStatus_NotifiesObserversOfStatusChange) { | 141 TEST(ProximityAuthConnectionTest, SetStatus_NotifiesObserversOfStatusChange) { |
141 StrictMock<MockConnection> connection; | 142 StrictMock<MockConnection> connection; |
142 EXPECT_EQ(Connection::DISCONNECTED, connection.status()); | 143 EXPECT_EQ(Connection::DISCONNECTED, connection.status()); |
143 | 144 |
144 StrictMock<MockConnectionObserver> observer; | 145 StrictMock<MockConnectionObserver> observer; |
145 connection.AddObserver(&observer); | 146 connection.AddObserver(&observer); |
146 | 147 |
147 EXPECT_CALL(observer, | 148 EXPECT_CALL(observer, |
(...skipping 11 matching lines...) Expand all Loading... |
159 connection.AddObserver(&observer); | 160 connection.AddObserver(&observer); |
160 | 161 |
161 EXPECT_CALL(observer, OnConnectionStatusChanged(_, _, _)).Times(0); | 162 EXPECT_CALL(observer, OnConnectionStatusChanged(_, _, _)).Times(0); |
162 connection.SetStatus(Connection::DISCONNECTED); | 163 connection.SetStatus(Connection::DISCONNECTED); |
163 } | 164 } |
164 | 165 |
165 TEST(ProximityAuthConnectionTest, | 166 TEST(ProximityAuthConnectionTest, |
166 OnDidSendMessage_NotifiesObserversIfMessageSendInProgress) { | 167 OnDidSendMessage_NotifiesObserversIfMessageSendInProgress) { |
167 NiceMock<MockConnection> connection; | 168 NiceMock<MockConnection> connection; |
168 connection.SetStatus(Connection::CONNECTED); | 169 connection.SetStatus(Connection::CONNECTED); |
169 connection.SendMessage(scoped_ptr<WireMessage>()); | 170 connection.SendMessage(std::unique_ptr<WireMessage>()); |
170 | 171 |
171 StrictMock<MockConnectionObserver> observer; | 172 StrictMock<MockConnectionObserver> observer; |
172 connection.AddObserver(&observer); | 173 connection.AddObserver(&observer); |
173 | 174 |
174 EXPECT_CALL(observer, OnSendCompleted(Ref(connection), _, true)); | 175 EXPECT_CALL(observer, OnSendCompleted(Ref(connection), _, true)); |
175 connection.OnDidSendMessage(TestWireMessage(), true /* success */); | 176 connection.OnDidSendMessage(TestWireMessage(), true /* success */); |
176 } | 177 } |
177 | 178 |
178 TEST(ProximityAuthConnectionTest, | 179 TEST(ProximityAuthConnectionTest, |
179 OnDidSendMessage_DoesntNotifyObserversIfNoMessageSendInProgress) { | 180 OnDidSendMessage_DoesntNotifyObserversIfNoMessageSendInProgress) { |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
238 connection.AddObserver(&observer); | 239 connection.AddObserver(&observer); |
239 | 240 |
240 ON_CALL(connection, DeserializeWireMessageProxy(_)) | 241 ON_CALL(connection, DeserializeWireMessageProxy(_)) |
241 .WillByDefault(DoAll(SetArgPointee<0>(false), | 242 .WillByDefault(DoAll(SetArgPointee<0>(false), |
242 Return(static_cast<WireMessage*>(NULL)))); | 243 Return(static_cast<WireMessage*>(NULL)))); |
243 EXPECT_CALL(observer, OnMessageReceived(_, _)).Times(0); | 244 EXPECT_CALL(observer, OnMessageReceived(_, _)).Times(0); |
244 connection.OnBytesReceived(std::string()); | 245 connection.OnBytesReceived(std::string()); |
245 } | 246 } |
246 | 247 |
247 } // namespace proximity_auth | 248 } // namespace proximity_auth |
OLD | NEW |