| 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 |