Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(250)

Side by Side Diff: components/proximity_auth/device_to_device_authenticator_unittest.cc

Issue 1912433002: Convert //components/proximity_auth from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: nits Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/device_to_device_authenticator.h" 5 #include "components/proximity_auth/device_to_device_authenticator.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/base64url.h" 9 #include "base/base64url.h"
10 #include "base/bind.h" 10 #include "base/bind.h"
11 #include "base/macros.h" 11 #include "base/macros.h"
12 #include "base/memory/ptr_util.h"
12 #include "base/memory/scoped_vector.h" 13 #include "base/memory/scoped_vector.h"
13 #include "base/rand_util.h" 14 #include "base/rand_util.h"
14 #include "base/timer/mock_timer.h" 15 #include "base/timer/mock_timer.h"
15 #include "components/proximity_auth/connection.h" 16 #include "components/proximity_auth/connection.h"
16 #include "components/proximity_auth/cryptauth/fake_secure_message_delegate.h" 17 #include "components/proximity_auth/cryptauth/fake_secure_message_delegate.h"
17 #include "components/proximity_auth/device_to_device_responder_operations.h" 18 #include "components/proximity_auth/device_to_device_responder_operations.h"
18 #include "components/proximity_auth/proximity_auth_test_util.h" 19 #include "components/proximity_auth/proximity_auth_test_util.h"
19 #include "components/proximity_auth/secure_context.h" 20 #include "components/proximity_auth/secure_context.h"
20 #include "components/proximity_auth/wire_message.h" 21 #include "components/proximity_auth/wire_message.h"
21 #include "testing/gmock/include/gmock/gmock.h" 22 #include "testing/gmock/include/gmock/gmock.h"
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 const ScopedVector<WireMessage>& message_buffer() { return message_buffer_; } 78 const ScopedVector<WireMessage>& message_buffer() { return message_buffer_; }
78 79
79 void set_connection_blocked(bool connection_blocked) { 80 void set_connection_blocked(bool connection_blocked) {
80 connection_blocked_ = connection_blocked; 81 connection_blocked_ = connection_blocked;
81 } 82 }
82 83
83 bool connection_blocked() { return connection_blocked_; } 84 bool connection_blocked() { return connection_blocked_; }
84 85
85 protected: 86 protected:
86 // Connection: 87 // Connection:
87 void SendMessageImpl(scoped_ptr<WireMessage> message) override { 88 void SendMessageImpl(std::unique_ptr<WireMessage> message) override {
88 const WireMessage& message_alias = *message; 89 const WireMessage& message_alias = *message;
89 message_buffer_.push_back(std::move(message)); 90 message_buffer_.push_back(std::move(message));
90 OnDidSendMessage(message_alias, !connection_blocked_); 91 OnDidSendMessage(message_alias, !connection_blocked_);
91 } 92 }
92 93
93 private: 94 private:
94 ScopedVector<WireMessage> message_buffer_; 95 ScopedVector<WireMessage> message_buffer_;
95 96
96 bool connection_blocked_; 97 bool connection_blocked_;
97 98
98 DISALLOW_COPY_AND_ASSIGN(FakeConnection); 99 DISALLOW_COPY_AND_ASSIGN(FakeConnection);
99 }; 100 };
100 101
101 // Harness for testing DeviceToDeviceAuthenticator. 102 // Harness for testing DeviceToDeviceAuthenticator.
102 class DeviceToDeviceAuthenticatorForTest : public DeviceToDeviceAuthenticator { 103 class DeviceToDeviceAuthenticatorForTest : public DeviceToDeviceAuthenticator {
103 public: 104 public:
104 DeviceToDeviceAuthenticatorForTest( 105 DeviceToDeviceAuthenticatorForTest(
105 Connection* connection, 106 Connection* connection,
106 scoped_ptr<SecureMessageDelegate> secure_message_delegate) 107 std::unique_ptr<SecureMessageDelegate> secure_message_delegate)
107 : DeviceToDeviceAuthenticator(connection, 108 : DeviceToDeviceAuthenticator(connection,
108 kAccountId, 109 kAccountId,
109 std::move(secure_message_delegate)), 110 std::move(secure_message_delegate)),
110 timer_(nullptr) {} 111 timer_(nullptr) {}
111 ~DeviceToDeviceAuthenticatorForTest() override {} 112 ~DeviceToDeviceAuthenticatorForTest() override {}
112 113
113 base::MockTimer* timer() { return timer_; } 114 base::MockTimer* timer() { return timer_; }
114 115
115 private: 116 private:
116 // DeviceToDeviceAuthenticator: 117 // DeviceToDeviceAuthenticator:
117 scoped_ptr<base::Timer> CreateTimer() override { 118 std::unique_ptr<base::Timer> CreateTimer() override {
118 bool retain_user_task = false; 119 bool retain_user_task = false;
119 bool is_repeating = false; 120 bool is_repeating = false;
120 121
121 scoped_ptr<base::MockTimer> timer( 122 std::unique_ptr<base::MockTimer> timer(
122 new base::MockTimer(retain_user_task, is_repeating)); 123 new base::MockTimer(retain_user_task, is_repeating));
123 124
124 timer_ = timer.get(); 125 timer_ = timer.get();
125 return std::move(timer); 126 return std::move(timer);
126 } 127 }
127 128
128 // This instance is owned by the super class. 129 // This instance is owned by the super class.
129 base::MockTimer* timer_; 130 base::MockTimer* timer_;
130 131
131 DISALLOW_COPY_AND_ASSIGN(DeviceToDeviceAuthenticatorForTest); 132 DISALLOW_COPY_AND_ASSIGN(DeviceToDeviceAuthenticatorForTest);
132 }; 133 };
133 134
134 } // namespace 135 } // namespace
135 136
136 class ProximityAuthDeviceToDeviceAuthenticatorTest : public testing::Test { 137 class ProximityAuthDeviceToDeviceAuthenticatorTest : public testing::Test {
137 public: 138 public:
138 ProximityAuthDeviceToDeviceAuthenticatorTest() 139 ProximityAuthDeviceToDeviceAuthenticatorTest()
139 : remote_device_(CreateClassicRemoteDeviceForTest()), 140 : remote_device_(CreateClassicRemoteDeviceForTest()),
140 connection_(remote_device_), 141 connection_(remote_device_),
141 secure_message_delegate_(new FakeSecureMessageDelegate), 142 secure_message_delegate_(new FakeSecureMessageDelegate),
142 authenticator_(&connection_, 143 authenticator_(&connection_,
143 make_scoped_ptr(secure_message_delegate_)) {} 144 base::WrapUnique(secure_message_delegate_)) {}
144 ~ProximityAuthDeviceToDeviceAuthenticatorTest() override {} 145 ~ProximityAuthDeviceToDeviceAuthenticatorTest() override {}
145 146
146 void SetUp() override { 147 void SetUp() override {
147 // Set up the session asymmetric keys for both the local and remote devices. 148 // Set up the session asymmetric keys for both the local and remote devices.
148 ASSERT_TRUE( 149 ASSERT_TRUE(
149 base::Base64UrlDecode(kInitiatorSessionPublicKeyBase64, 150 base::Base64UrlDecode(kInitiatorSessionPublicKeyBase64,
150 base::Base64UrlDecodePolicy::REQUIRE_PADDING, 151 base::Base64UrlDecodePolicy::REQUIRE_PADDING,
151 &local_session_public_key_)); 152 &local_session_public_key_));
152 ASSERT_TRUE( 153 ASSERT_TRUE(
153 base::Base64UrlDecode(kResponderSessionPublicKeyBase64, 154 base::Base64UrlDecode(kResponderSessionPublicKeyBase64,
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 base::Bind(&SaveStringResult, &responder_auth_message)); 207 base::Bind(&SaveStringResult, &responder_auth_message));
207 EXPECT_FALSE(responder_auth_message.empty()); 208 EXPECT_FALSE(responder_auth_message.empty());
208 209
209 WireMessage wire_message(responder_auth_message); 210 WireMessage wire_message(responder_auth_message);
210 connection_.OnBytesReceived(wire_message.Serialize()); 211 connection_.OnBytesReceived(wire_message.Serialize());
211 212
212 return responder_auth_message; 213 return responder_auth_message;
213 } 214 }
214 215
215 void OnAuthenticationResult(Authenticator::Result result, 216 void OnAuthenticationResult(Authenticator::Result result,
216 scoped_ptr<SecureContext> secure_context) { 217 std::unique_ptr<SecureContext> secure_context) {
217 secure_context_ = std::move(secure_context); 218 secure_context_ = std::move(secure_context);
218 OnAuthenticationResultProxy(result); 219 OnAuthenticationResultProxy(result);
219 } 220 }
220 221
221 MOCK_METHOD1(OnAuthenticationResultProxy, void(Authenticator::Result result)); 222 MOCK_METHOD1(OnAuthenticationResultProxy, void(Authenticator::Result result));
222 223
223 // Contains information about the remote device. 224 // Contains information about the remote device.
224 const RemoteDevice remote_device_; 225 const RemoteDevice remote_device_;
225 226
226 // Simulates the connection to the remote device. 227 // Simulates the connection to the remote device.
227 FakeConnection connection_; 228 FakeConnection connection_;
228 229
229 // The SecureMessageDelegate used by the authenticator. 230 // The SecureMessageDelegate used by the authenticator.
230 // Owned by |authenticator_|. 231 // Owned by |authenticator_|.
231 FakeSecureMessageDelegate* secure_message_delegate_; 232 FakeSecureMessageDelegate* secure_message_delegate_;
232 233
233 // The DeviceToDeviceAuthenticator under test. 234 // The DeviceToDeviceAuthenticator under test.
234 DeviceToDeviceAuthenticatorForTest authenticator_; 235 DeviceToDeviceAuthenticatorForTest authenticator_;
235 236
236 // The session keys in play during authentication. 237 // The session keys in play during authentication.
237 std::string local_session_public_key_; 238 std::string local_session_public_key_;
238 std::string remote_session_public_key_; 239 std::string remote_session_public_key_;
239 std::string remote_session_private_key_; 240 std::string remote_session_private_key_;
240 std::string session_symmetric_key_; 241 std::string session_symmetric_key_;
241 242
242 // Stores the SecureContext returned after authentication succeeds. 243 // Stores the SecureContext returned after authentication succeeds.
243 scoped_ptr<SecureContext> secure_context_; 244 std::unique_ptr<SecureContext> secure_context_;
244 245
245 DISALLOW_COPY_AND_ASSIGN(ProximityAuthDeviceToDeviceAuthenticatorTest); 246 DISALLOW_COPY_AND_ASSIGN(ProximityAuthDeviceToDeviceAuthenticatorTest);
246 }; 247 };
247 248
248 TEST_F(ProximityAuthDeviceToDeviceAuthenticatorTest, AuthenticateSucceeds) { 249 TEST_F(ProximityAuthDeviceToDeviceAuthenticatorTest, AuthenticateSucceeds) {
249 // Starts the authentication protocol and grab [Hello] message. 250 // Starts the authentication protocol and grab [Hello] message.
250 std::string hello_message = BeginAuthentication(); 251 std::string hello_message = BeginAuthentication();
251 252
252 // Simulate receiving a valid [Responder Auth] from the remote device. 253 // Simulate receiving a valid [Responder Auth] from the remote device.
253 EXPECT_CALL(*this, 254 EXPECT_CALL(*this,
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
333 SendMessagesAfterAuthenticationSuccess) { 334 SendMessagesAfterAuthenticationSuccess) {
334 std::string hello_message = BeginAuthentication(); 335 std::string hello_message = BeginAuthentication();
335 EXPECT_CALL(*this, 336 EXPECT_CALL(*this,
336 OnAuthenticationResultProxy(Authenticator::Result::SUCCESS)); 337 OnAuthenticationResultProxy(Authenticator::Result::SUCCESS));
337 SimulateResponderAuth(hello_message); 338 SimulateResponderAuth(hello_message);
338 339
339 // Test that the authenticator is properly cleaned up after authentication 340 // Test that the authenticator is properly cleaned up after authentication
340 // completes. 341 // completes.
341 WireMessage wire_message(base::RandBytesAsString(300u)); 342 WireMessage wire_message(base::RandBytesAsString(300u));
342 connection_.SendMessage( 343 connection_.SendMessage(
343 make_scoped_ptr(new WireMessage(base::RandBytesAsString(300u)))); 344 base::WrapUnique(new WireMessage(base::RandBytesAsString(300u))));
344 connection_.OnBytesReceived(wire_message.Serialize()); 345 connection_.OnBytesReceived(wire_message.Serialize());
345 connection_.SendMessage( 346 connection_.SendMessage(
346 make_scoped_ptr(new WireMessage(base::RandBytesAsString(300u)))); 347 base::WrapUnique(new WireMessage(base::RandBytesAsString(300u))));
347 connection_.OnBytesReceived(wire_message.Serialize()); 348 connection_.OnBytesReceived(wire_message.Serialize());
348 } 349 }
349 350
350 } // namespace proximity_auth 351 } // namespace proximity_auth
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698