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

Side by Side Diff: remoting/host/security_key/security_key_extension_session_unittest.cc

Issue 2162083003: Renaming Gnubby and RemoteSecurityKey files/classes/members (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixing a GYP build error Created 4 years, 5 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "remoting/host/security_key/gnubby_extension_session.h" 5 #include "remoting/host/security_key/security_key_extension_session.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/files/file_path.h" 9 #include "base/files/file_path.h"
10 #include "base/files/scoped_temp_dir.h" 10 #include "base/files/scoped_temp_dir.h"
11 #include "base/json/json_writer.h" 11 #include "base/json/json_writer.h"
12 #include "base/macros.h" 12 #include "base/macros.h"
13 #include "base/memory/ptr_util.h" 13 #include "base/memory/ptr_util.h"
14 #include "base/message_loop/message_loop.h" 14 #include "base/message_loop/message_loop.h"
15 #include "base/run_loop.h" 15 #include "base/run_loop.h"
16 #include "base/strings/stringprintf.h" 16 #include "base/strings/stringprintf.h"
17 #include "base/threading/thread_task_runner_handle.h" 17 #include "base/threading/thread_task_runner_handle.h"
18 #include "base/timer/mock_timer.h" 18 #include "base/timer/mock_timer.h"
19 #include "base/values.h" 19 #include "base/values.h"
20 #include "net/base/io_buffer.h" 20 #include "net/base/io_buffer.h"
21 #include "net/base/net_errors.h" 21 #include "net/base/net_errors.h"
22 #include "net/base/test_completion_callback.h" 22 #include "net/base/test_completion_callback.h"
23 #include "net/socket/unix_domain_client_socket_posix.h" 23 #include "net/socket/unix_domain_client_socket_posix.h"
24 #include "remoting/host/client_session_details.h" 24 #include "remoting/host/client_session_details.h"
25 #include "remoting/host/host_mock_objects.h" 25 #include "remoting/host/host_mock_objects.h"
26 #include "remoting/host/security_key/gnubby_auth_handler.h" 26 #include "remoting/host/security_key/security_key_auth_handler.h"
27 #include "remoting/proto/internal.pb.h" 27 #include "remoting/proto/internal.pb.h"
28 #include "remoting/protocol/client_stub.h" 28 #include "remoting/protocol/client_stub.h"
29 #include "testing/gmock/include/gmock/gmock.h" 29 #include "testing/gmock/include/gmock/gmock.h"
30 #include "testing/gtest/include/gtest/gtest.h" 30 #include "testing/gtest/include/gtest/gtest.h"
31 31
32 namespace remoting { 32 namespace remoting {
33 33
34 namespace { 34 namespace {
35 35
36 // Test gnubby request data. 36 // Test security key request data.
37 const unsigned char kRequestData[] = { 37 const unsigned char kRequestData[] = {
38 0x00, 0x00, 0x00, 0x9a, 0x65, 0x1e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 38 0x00, 0x00, 0x00, 0x9a, 0x65, 0x1e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
39 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x60, 0x90, 39 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x60, 0x90,
40 0x24, 0x71, 0xf8, 0xf2, 0xe5, 0xdf, 0x7f, 0x81, 0xc7, 0x49, 0xc4, 0xa3, 40 0x24, 0x71, 0xf8, 0xf2, 0xe5, 0xdf, 0x7f, 0x81, 0xc7, 0x49, 0xc4, 0xa3,
41 0x58, 0x5c, 0xf6, 0xcc, 0x40, 0x14, 0x28, 0x0c, 0xa0, 0xfa, 0x03, 0x18, 41 0x58, 0x5c, 0xf6, 0xcc, 0x40, 0x14, 0x28, 0x0c, 0xa0, 0xfa, 0x03, 0x18,
42 0x38, 0xd8, 0x7d, 0x77, 0x2b, 0x3a, 0x00, 0x00, 0x00, 0x20, 0x64, 0x46, 42 0x38, 0xd8, 0x7d, 0x77, 0x2b, 0x3a, 0x00, 0x00, 0x00, 0x20, 0x64, 0x46,
43 0x47, 0x2f, 0xdf, 0x6e, 0xed, 0x7b, 0xf3, 0xc3, 0x37, 0x20, 0xf2, 0x36, 43 0x47, 0x2f, 0xdf, 0x6e, 0xed, 0x7b, 0xf3, 0xc3, 0x37, 0x20, 0xf2, 0x36,
44 0x67, 0x6c, 0x36, 0xe1, 0xb4, 0x5e, 0xbe, 0x04, 0x85, 0xdb, 0x89, 0xa3, 44 0x67, 0x6c, 0x36, 0xe1, 0xb4, 0x5e, 0xbe, 0x04, 0x85, 0xdb, 0x89, 0xa3,
45 0xcd, 0xfd, 0xd2, 0x4b, 0xd6, 0x9f, 0x00, 0x00, 0x00, 0x40, 0x38, 0x35, 45 0xcd, 0xfd, 0xd2, 0x4b, 0xd6, 0x9f, 0x00, 0x00, 0x00, 0x40, 0x38, 0x35,
46 0x05, 0x75, 0x1d, 0x13, 0x6e, 0xb3, 0x6b, 0x1d, 0x29, 0xae, 0xd3, 0x43, 46 0x05, 0x75, 0x1d, 0x13, 0x6e, 0xb3, 0x6b, 0x1d, 0x29, 0xae, 0xd3, 0x43,
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 private: 136 private:
137 uint32_t desktop_session_id_ = UINT32_MAX; 137 uint32_t desktop_session_id_ = UINT32_MAX;
138 138
139 DISALLOW_COPY_AND_ASSIGN(TestClientSessionDetails); 139 DISALLOW_COPY_AND_ASSIGN(TestClientSessionDetails);
140 }; 140 };
141 141
142 TestClientSessionDetails::TestClientSessionDetails() {} 142 TestClientSessionDetails::TestClientSessionDetails() {}
143 143
144 TestClientSessionDetails::~TestClientSessionDetails() {} 144 TestClientSessionDetails::~TestClientSessionDetails() {}
145 145
146 class GnubbyExtensionSessionTest : public testing::Test { 146 class SecurityKeyExtensionSessionTest : public testing::Test {
147 public: 147 public:
148 GnubbyExtensionSessionTest(); 148 SecurityKeyExtensionSessionTest();
149 ~GnubbyExtensionSessionTest() override; 149 ~SecurityKeyExtensionSessionTest() override;
150 150
151 void WaitForAndVerifyHostMessage(); 151 void WaitForAndVerifyHostMessage();
152 152
153 void CreateGnubbyConnection(); 153 void CreateSecurityKeyConnection();
154 154
155 protected: 155 protected:
156 base::MessageLoopForIO message_loop_; 156 base::MessageLoopForIO message_loop_;
157 157
158 // Object under test. 158 // Object under test.
159 std::unique_ptr<GnubbyExtensionSession> gnubby_extension_session_; 159 std::unique_ptr<SecurityKeyExtensionSession> security_key_extension_session_;
160 160
161 MockGnubbyAuthHandler* mock_gnubby_auth_handler_ = nullptr; 161 MockSecurityKeyAuthHandler* mock_security_key_auth_handler_ = nullptr;
162 162
163 TestClientStub client_stub_; 163 TestClientStub client_stub_;
164 TestClientSessionDetails client_details_; 164 TestClientSessionDetails client_details_;
165 165
166 private: 166 private:
167 DISALLOW_COPY_AND_ASSIGN(GnubbyExtensionSessionTest); 167 DISALLOW_COPY_AND_ASSIGN(SecurityKeyExtensionSessionTest);
168 }; 168 };
169 169
170 GnubbyExtensionSessionTest::GnubbyExtensionSessionTest() 170 SecurityKeyExtensionSessionTest::SecurityKeyExtensionSessionTest()
171 : gnubby_extension_session_( 171 : security_key_extension_session_(
172 new GnubbyExtensionSession(&client_details_, &client_stub_)) { 172 new SecurityKeyExtensionSession(&client_details_, &client_stub_)) {
173 // We want to retain ownership of mock object so we can use it to inject 173 // We want to retain ownership of mock object so we can use it to inject
174 // events into the extension session. The mock object should not be used 174 // events into the extension session. The mock object should not be used
175 // once |gnubby_extension_session_| is destroyed. 175 // once |security_key_extension_session_| is destroyed.
176 mock_gnubby_auth_handler_ = new MockGnubbyAuthHandler(); 176 mock_security_key_auth_handler_ = new MockSecurityKeyAuthHandler();
177 gnubby_extension_session_->SetGnubbyAuthHandlerForTesting( 177 security_key_extension_session_->SetSecurityKeyAuthHandlerForTesting(
178 base::WrapUnique(mock_gnubby_auth_handler_)); 178 base::WrapUnique(mock_security_key_auth_handler_));
179 } 179 }
180 180
181 GnubbyExtensionSessionTest::~GnubbyExtensionSessionTest() {} 181 SecurityKeyExtensionSessionTest::~SecurityKeyExtensionSessionTest() {}
182 182
183 void GnubbyExtensionSessionTest::WaitForAndVerifyHostMessage() { 183 void SecurityKeyExtensionSessionTest::WaitForAndVerifyHostMessage() {
184 client_stub_.WaitForDeliverHostMessage( 184 client_stub_.WaitForDeliverHostMessage(
185 base::TimeDelta::FromMilliseconds(500)); 185 base::TimeDelta::FromMilliseconds(500));
186 base::ListValue expected_data; 186 base::ListValue expected_data;
187 187
188 // Skip first four bytes. 188 // Skip first four bytes.
189 for (size_t i = 4; i < sizeof(kRequestData); ++i) { 189 for (size_t i = 4; i < sizeof(kRequestData); ++i) {
190 expected_data.AppendInteger(kRequestData[i]); 190 expected_data.AppendInteger(kRequestData[i]);
191 } 191 }
192 192
193 std::string expected_data_json; 193 std::string expected_data_json;
194 base::JSONWriter::Write(expected_data, &expected_data_json); 194 base::JSONWriter::Write(expected_data, &expected_data_json);
195 client_stub_.CheckHostDataMessage(1, expected_data_json); 195 client_stub_.CheckHostDataMessage(1, expected_data_json);
196 } 196 }
197 197
198 void GnubbyExtensionSessionTest::CreateGnubbyConnection() { 198 void SecurityKeyExtensionSessionTest::CreateSecurityKeyConnection() {
199 EXPECT_CALL(*mock_gnubby_auth_handler_, CreateGnubbyConnection()).Times(1); 199 EXPECT_CALL(*mock_security_key_auth_handler_, CreateSecurityKeyConnection())
200 .Times(1);
200 201
201 protocol::ExtensionMessage message; 202 protocol::ExtensionMessage message;
202 message.set_type("gnubby-auth"); 203 message.set_type("gnubby-auth");
203 message.set_data("{\"type\":\"control\",\"option\":\"auth-v1\"}"); 204 message.set_data("{\"type\":\"control\",\"option\":\"auth-v1\"}");
204 205
205 ASSERT_TRUE( 206 ASSERT_TRUE(security_key_extension_session_->OnExtensionMessage(
206 gnubby_extension_session_->OnExtensionMessage(nullptr, nullptr, message)); 207 nullptr, nullptr, message));
207 } 208 }
208 209
209 TEST_F(GnubbyExtensionSessionTest, GnubbyConnectionCreated_ValidMessage) { 210 TEST_F(SecurityKeyExtensionSessionTest,
210 CreateGnubbyConnection(); 211 SecurityKeyConnectionCreated_ValidMessage) {
212 CreateSecurityKeyConnection();
211 } 213 }
212 214
213 TEST_F(GnubbyExtensionSessionTest, NoGnubbyConnectionCreated_WrongMessageType) { 215 TEST_F(SecurityKeyExtensionSessionTest,
214 EXPECT_CALL(*mock_gnubby_auth_handler_, CreateGnubbyConnection()).Times(0); 216 NoSecurityKeyConnectionCreated_WrongMessageType) {
217 EXPECT_CALL(*mock_security_key_auth_handler_, CreateSecurityKeyConnection())
218 .Times(0);
215 219
216 protocol::ExtensionMessage message; 220 protocol::ExtensionMessage message;
217 message.set_type("unsupported-gnubby-auth"); 221 message.set_type("unsupported-gnubby-auth");
218 message.set_data("{\"type\":\"control\",\"option\":\"auth-v1\"}"); 222 message.set_data("{\"type\":\"control\",\"option\":\"auth-v1\"}");
219 223
220 ASSERT_FALSE( 224 ASSERT_FALSE(security_key_extension_session_->OnExtensionMessage(
221 gnubby_extension_session_->OnExtensionMessage(nullptr, nullptr, message)); 225 nullptr, nullptr, message));
222 } 226 }
223 227
224 TEST_F(GnubbyExtensionSessionTest, 228 TEST_F(SecurityKeyExtensionSessionTest,
225 NoGnubbyConnectionCreated_InvalidMessageData) { 229 NoSecurityKeyConnectionCreated_InvalidMessageData) {
226 EXPECT_CALL(*mock_gnubby_auth_handler_, CreateGnubbyConnection()).Times(0); 230 EXPECT_CALL(*mock_security_key_auth_handler_, CreateSecurityKeyConnection())
231 .Times(0);
227 232
228 // First try invalid JSON. 233 // First try invalid JSON.
229 protocol::ExtensionMessage message; 234 protocol::ExtensionMessage message;
230 message.set_type("gnubby-auth"); 235 message.set_type("gnubby-auth");
231 message.set_data("{\"type\":\"control\",\"option\":}"); 236 message.set_data("{\"type\":\"control\",\"option\":}");
232 // handled should still be true, even if the message payload is invalid. 237 // handled should still be true, even if the message payload is invalid.
233 ASSERT_TRUE( 238 ASSERT_TRUE(security_key_extension_session_->OnExtensionMessage(
234 gnubby_extension_session_->OnExtensionMessage(nullptr, nullptr, message)); 239 nullptr, nullptr, message));
235 240
236 // Now try an invalid message type. 241 // Now try an invalid message type.
237 message.set_type("gnubby-auth"); 242 message.set_type("gnubby-auth");
238 message.set_data("{\"type\":\"control\",\"option\":\"auth-v0\"}"); 243 message.set_data("{\"type\":\"control\",\"option\":\"auth-v0\"}");
239 // handled should still be true, even if the message payload is invalid. 244 // handled should still be true, even if the message payload is invalid.
240 ASSERT_TRUE( 245 ASSERT_TRUE(security_key_extension_session_->OnExtensionMessage(
241 gnubby_extension_session_->OnExtensionMessage(nullptr, nullptr, message)); 246 nullptr, nullptr, message));
242 247
243 // Now try a message that is missing the option and auth type. 248 // Now try a message that is missing the option and auth type.
244 message.set_type("gnubby-auth"); 249 message.set_type("gnubby-auth");
245 message.set_data("{\"type\":\"control\"}"); 250 message.set_data("{\"type\":\"control\"}");
246 // handled should still be true, even if the message payload is invalid. 251 // handled should still be true, even if the message payload is invalid.
247 ASSERT_TRUE( 252 ASSERT_TRUE(security_key_extension_session_->OnExtensionMessage(
248 gnubby_extension_session_->OnExtensionMessage(nullptr, nullptr, message)); 253 nullptr, nullptr, message));
249 } 254 }
250 255
251 TEST_F(GnubbyExtensionSessionTest, DataMessageProcessing_MissingConnectionId) { 256 TEST_F(SecurityKeyExtensionSessionTest,
252 CreateGnubbyConnection(); 257 DataMessageProcessing_MissingConnectionId) {
258 CreateSecurityKeyConnection();
253 259
254 EXPECT_CALL(*mock_gnubby_auth_handler_, 260 EXPECT_CALL(*mock_security_key_auth_handler_,
255 SendClientResponse(testing::_, testing::_)) 261 SendClientResponse(testing::_, testing::_))
256 .Times(0); 262 .Times(0);
257 EXPECT_CALL(*mock_gnubby_auth_handler_, 263 EXPECT_CALL(*mock_security_key_auth_handler_,
258 SendErrorAndCloseConnection(testing::_)) 264 SendErrorAndCloseConnection(testing::_))
259 .Times(0); 265 .Times(0);
260 EXPECT_CALL(*mock_gnubby_auth_handler_, IsValidConnectionId(testing::_)) 266 EXPECT_CALL(*mock_security_key_auth_handler_, IsValidConnectionId(testing::_))
261 .Times(0); 267 .Times(0);
262 268
263 protocol::ExtensionMessage message; 269 protocol::ExtensionMessage message;
264 message.set_type("gnubby-auth"); 270 message.set_type("gnubby-auth");
265 message.set_data("{\"type\":\"data\"}"); 271 message.set_data("{\"type\":\"data\"}");
266 272
267 ASSERT_TRUE( 273 ASSERT_TRUE(security_key_extension_session_->OnExtensionMessage(
268 gnubby_extension_session_->OnExtensionMessage(nullptr, nullptr, message)); 274 nullptr, nullptr, message));
269 } 275 }
270 276
271 TEST_F(GnubbyExtensionSessionTest, DataMessageProcessing_InvalidConnectionId) { 277 TEST_F(SecurityKeyExtensionSessionTest,
272 CreateGnubbyConnection(); 278 DataMessageProcessing_InvalidConnectionId) {
279 CreateSecurityKeyConnection();
273 280
274 EXPECT_CALL(*mock_gnubby_auth_handler_, 281 EXPECT_CALL(*mock_security_key_auth_handler_,
275 SendClientResponse(testing::_, testing::_)) 282 SendClientResponse(testing::_, testing::_))
276 .Times(0); 283 .Times(0);
277 EXPECT_CALL(*mock_gnubby_auth_handler_, 284 EXPECT_CALL(*mock_security_key_auth_handler_,
278 SendErrorAndCloseConnection(testing::_)) 285 SendErrorAndCloseConnection(testing::_))
279 .Times(0); 286 .Times(0);
280 EXPECT_CALL(*mock_gnubby_auth_handler_, IsValidConnectionId(1)).Times(1); 287 EXPECT_CALL(*mock_security_key_auth_handler_, IsValidConnectionId(1))
288 .Times(1);
281 289
282 ON_CALL(*mock_gnubby_auth_handler_, IsValidConnectionId(testing::_)) 290 ON_CALL(*mock_security_key_auth_handler_, IsValidConnectionId(testing::_))
283 .WillByDefault(testing::Return(false)); 291 .WillByDefault(testing::Return(false));
284 292
285 protocol::ExtensionMessage message; 293 protocol::ExtensionMessage message;
286 message.set_type("gnubby-auth"); 294 message.set_type("gnubby-auth");
287 message.set_data("{\"type\":\"data\",\"connectionId\":1}"); 295 message.set_data("{\"type\":\"data\",\"connectionId\":1}");
288 296
289 ASSERT_TRUE( 297 ASSERT_TRUE(security_key_extension_session_->OnExtensionMessage(
290 gnubby_extension_session_->OnExtensionMessage(nullptr, nullptr, message)); 298 nullptr, nullptr, message));
291 } 299 }
292 300
293 TEST_F(GnubbyExtensionSessionTest, DataMessageProcessing_MissingPayload) { 301 TEST_F(SecurityKeyExtensionSessionTest, DataMessageProcessing_MissingPayload) {
294 CreateGnubbyConnection(); 302 CreateSecurityKeyConnection();
295 303
296 EXPECT_CALL(*mock_gnubby_auth_handler_, SendErrorAndCloseConnection(1)) 304 EXPECT_CALL(*mock_security_key_auth_handler_, SendErrorAndCloseConnection(1))
297 .Times(1); 305 .Times(1);
298 EXPECT_CALL(*mock_gnubby_auth_handler_, 306 EXPECT_CALL(*mock_security_key_auth_handler_,
299 SendClientResponse(testing::_, testing::_)) 307 SendClientResponse(testing::_, testing::_))
300 .Times(0); 308 .Times(0);
301 EXPECT_CALL(*mock_gnubby_auth_handler_, IsValidConnectionId(1)).Times(1); 309 EXPECT_CALL(*mock_security_key_auth_handler_, IsValidConnectionId(1))
310 .Times(1);
302 311
303 ON_CALL(*mock_gnubby_auth_handler_, IsValidConnectionId(testing::_)) 312 ON_CALL(*mock_security_key_auth_handler_, IsValidConnectionId(testing::_))
304 .WillByDefault(testing::Return(true)); 313 .WillByDefault(testing::Return(true));
305 314
306 protocol::ExtensionMessage message; 315 protocol::ExtensionMessage message;
307 message.set_type("gnubby-auth"); 316 message.set_type("gnubby-auth");
308 message.set_data("{\"type\":\"data\",\"connectionId\":1}"); 317 message.set_data("{\"type\":\"data\",\"connectionId\":1}");
309 318
310 ASSERT_TRUE( 319 ASSERT_TRUE(security_key_extension_session_->OnExtensionMessage(
311 gnubby_extension_session_->OnExtensionMessage(nullptr, nullptr, message)); 320 nullptr, nullptr, message));
312 } 321 }
313 322
314 TEST_F(GnubbyExtensionSessionTest, DataMessageProcessing_InvalidPayload) { 323 TEST_F(SecurityKeyExtensionSessionTest, DataMessageProcessing_InvalidPayload) {
315 CreateGnubbyConnection(); 324 CreateSecurityKeyConnection();
316 325
317 EXPECT_CALL(*mock_gnubby_auth_handler_, SendErrorAndCloseConnection(1)) 326 EXPECT_CALL(*mock_security_key_auth_handler_, SendErrorAndCloseConnection(1))
318 .Times(1); 327 .Times(1);
319 EXPECT_CALL(*mock_gnubby_auth_handler_, 328 EXPECT_CALL(*mock_security_key_auth_handler_,
320 SendClientResponse(testing::_, testing::_)) 329 SendClientResponse(testing::_, testing::_))
321 .Times(0); 330 .Times(0);
322 EXPECT_CALL(*mock_gnubby_auth_handler_, IsValidConnectionId(1)).Times(1); 331 EXPECT_CALL(*mock_security_key_auth_handler_, IsValidConnectionId(1))
332 .Times(1);
323 333
324 ON_CALL(*mock_gnubby_auth_handler_, IsValidConnectionId(testing::_)) 334 ON_CALL(*mock_security_key_auth_handler_, IsValidConnectionId(testing::_))
325 .WillByDefault(testing::Return(true)); 335 .WillByDefault(testing::Return(true));
326 336
327 protocol::ExtensionMessage message; 337 protocol::ExtensionMessage message;
328 message.set_type("gnubby-auth"); 338 message.set_type("gnubby-auth");
329 message.set_data( 339 message.set_data(
330 "{\"type\":\"data\",\"connectionId\":1,\"data\":[\"a\",\"-\",\"z\"]}"); 340 "{\"type\":\"data\",\"connectionId\":1,\"data\":[\"a\",\"-\",\"z\"]}");
331 341
332 ASSERT_TRUE( 342 ASSERT_TRUE(security_key_extension_session_->OnExtensionMessage(
333 gnubby_extension_session_->OnExtensionMessage(nullptr, nullptr, message)); 343 nullptr, nullptr, message));
334 } 344 }
335 345
336 TEST_F(GnubbyExtensionSessionTest, DataMessageProcessing_ValidData) { 346 TEST_F(SecurityKeyExtensionSessionTest, DataMessageProcessing_ValidData) {
337 CreateGnubbyConnection(); 347 CreateSecurityKeyConnection();
338 348
339 EXPECT_CALL(*mock_gnubby_auth_handler_, 349 EXPECT_CALL(*mock_security_key_auth_handler_,
340 SendClientResponse(1, "\x1\x2\x3\x4\x5")) 350 SendClientResponse(1, "\x1\x2\x3\x4\x5"))
341 .Times(1); 351 .Times(1);
342 EXPECT_CALL(*mock_gnubby_auth_handler_, 352 EXPECT_CALL(*mock_security_key_auth_handler_,
343 SendErrorAndCloseConnection(testing::_)) 353 SendErrorAndCloseConnection(testing::_))
344 .Times(0); 354 .Times(0);
345 EXPECT_CALL(*mock_gnubby_auth_handler_, IsValidConnectionId(1)).Times(1); 355 EXPECT_CALL(*mock_security_key_auth_handler_, IsValidConnectionId(1))
356 .Times(1);
346 357
347 ON_CALL(*mock_gnubby_auth_handler_, IsValidConnectionId(testing::_)) 358 ON_CALL(*mock_security_key_auth_handler_, IsValidConnectionId(testing::_))
348 .WillByDefault(testing::Return(true)); 359 .WillByDefault(testing::Return(true));
349 360
350 protocol::ExtensionMessage message; 361 protocol::ExtensionMessage message;
351 message.set_type("gnubby-auth"); 362 message.set_type("gnubby-auth");
352 message.set_data( 363 message.set_data(
353 "{\"type\":\"data\",\"connectionId\":1,\"data\":[1,2,3,4,5]}"); 364 "{\"type\":\"data\",\"connectionId\":1,\"data\":[1,2,3,4,5]}");
354 365
355 ASSERT_TRUE( 366 ASSERT_TRUE(security_key_extension_session_->OnExtensionMessage(
356 gnubby_extension_session_->OnExtensionMessage(nullptr, nullptr, message)); 367 nullptr, nullptr, message));
357 } 368 }
358 369
359 TEST_F(GnubbyExtensionSessionTest, ErrorMessageProcessing_MissingConnectionId) { 370 TEST_F(SecurityKeyExtensionSessionTest,
360 CreateGnubbyConnection(); 371 ErrorMessageProcessing_MissingConnectionId) {
372 CreateSecurityKeyConnection();
361 373
362 EXPECT_CALL(*mock_gnubby_auth_handler_, 374 EXPECT_CALL(*mock_security_key_auth_handler_,
363 SendErrorAndCloseConnection(testing::_)) 375 SendErrorAndCloseConnection(testing::_))
364 .Times(0); 376 .Times(0);
365 EXPECT_CALL(*mock_gnubby_auth_handler_, 377 EXPECT_CALL(*mock_security_key_auth_handler_,
366 SendClientResponse(testing::_, testing::_)) 378 SendClientResponse(testing::_, testing::_))
367 .Times(0); 379 .Times(0);
368 EXPECT_CALL(*mock_gnubby_auth_handler_, IsValidConnectionId(testing::_)) 380 EXPECT_CALL(*mock_security_key_auth_handler_, IsValidConnectionId(testing::_))
369 .Times(0); 381 .Times(0);
370 382
371 protocol::ExtensionMessage message; 383 protocol::ExtensionMessage message;
372 message.set_type("gnubby-auth"); 384 message.set_type("gnubby-auth");
373 message.set_data("{\"type\":\"error\"}"); 385 message.set_data("{\"type\":\"error\"}");
374 386
375 ASSERT_TRUE( 387 ASSERT_TRUE(security_key_extension_session_->OnExtensionMessage(
376 gnubby_extension_session_->OnExtensionMessage(nullptr, nullptr, message)); 388 nullptr, nullptr, message));
377 } 389 }
378 390
379 TEST_F(GnubbyExtensionSessionTest, ErrorMessageProcessing_InvalidConnectionId) { 391 TEST_F(SecurityKeyExtensionSessionTest,
380 CreateGnubbyConnection(); 392 ErrorMessageProcessing_InvalidConnectionId) {
393 CreateSecurityKeyConnection();
381 394
382 EXPECT_CALL(*mock_gnubby_auth_handler_, 395 EXPECT_CALL(*mock_security_key_auth_handler_,
383 SendErrorAndCloseConnection(testing::_)) 396 SendErrorAndCloseConnection(testing::_))
384 .Times(0); 397 .Times(0);
385 EXPECT_CALL(*mock_gnubby_auth_handler_, 398 EXPECT_CALL(*mock_security_key_auth_handler_,
386 SendClientResponse(testing::_, testing::_)) 399 SendClientResponse(testing::_, testing::_))
387 .Times(0); 400 .Times(0);
388 EXPECT_CALL(*mock_gnubby_auth_handler_, IsValidConnectionId(1)).Times(1); 401 EXPECT_CALL(*mock_security_key_auth_handler_, IsValidConnectionId(1))
402 .Times(1);
389 403
390 ON_CALL(*mock_gnubby_auth_handler_, IsValidConnectionId(testing::_)) 404 ON_CALL(*mock_security_key_auth_handler_, IsValidConnectionId(testing::_))
391 .WillByDefault(testing::Return(false)); 405 .WillByDefault(testing::Return(false));
392 406
393 protocol::ExtensionMessage message; 407 protocol::ExtensionMessage message;
394 message.set_type("gnubby-auth"); 408 message.set_type("gnubby-auth");
395 message.set_data("{\"type\":\"error\",\"connectionId\":1}"); 409 message.set_data("{\"type\":\"error\",\"connectionId\":1}");
396 410
397 ASSERT_TRUE( 411 ASSERT_TRUE(security_key_extension_session_->OnExtensionMessage(
398 gnubby_extension_session_->OnExtensionMessage(nullptr, nullptr, message)); 412 nullptr, nullptr, message));
399 } 413 }
400 414
401 TEST_F(GnubbyExtensionSessionTest, ErrorMessageProcessing_ValidData) { 415 TEST_F(SecurityKeyExtensionSessionTest, ErrorMessageProcessing_ValidData) {
402 CreateGnubbyConnection(); 416 CreateSecurityKeyConnection();
403 417
404 EXPECT_CALL(*mock_gnubby_auth_handler_, SendErrorAndCloseConnection(1)) 418 EXPECT_CALL(*mock_security_key_auth_handler_, SendErrorAndCloseConnection(1))
405 .Times(1); 419 .Times(1);
406 EXPECT_CALL(*mock_gnubby_auth_handler_, 420 EXPECT_CALL(*mock_security_key_auth_handler_,
407 SendClientResponse(testing::_, testing::_)) 421 SendClientResponse(testing::_, testing::_))
408 .Times(0); 422 .Times(0);
409 EXPECT_CALL(*mock_gnubby_auth_handler_, IsValidConnectionId(1)).Times(1); 423 EXPECT_CALL(*mock_security_key_auth_handler_, IsValidConnectionId(1))
424 .Times(1);
410 425
411 ON_CALL(*mock_gnubby_auth_handler_, IsValidConnectionId(testing::_)) 426 ON_CALL(*mock_security_key_auth_handler_, IsValidConnectionId(testing::_))
412 .WillByDefault(testing::Return(true)); 427 .WillByDefault(testing::Return(true));
413 428
414 protocol::ExtensionMessage message; 429 protocol::ExtensionMessage message;
415 message.set_type("gnubby-auth"); 430 message.set_type("gnubby-auth");
416 message.set_data("{\"type\":\"error\",\"connectionId\":1}"); 431 message.set_data("{\"type\":\"error\",\"connectionId\":1}");
417 432
418 ASSERT_TRUE( 433 ASSERT_TRUE(security_key_extension_session_->OnExtensionMessage(
419 gnubby_extension_session_->OnExtensionMessage(nullptr, nullptr, message)); 434 nullptr, nullptr, message));
420 } 435 }
421 436
422 TEST_F(GnubbyExtensionSessionTest, SendMessageToClient_ValidData) { 437 TEST_F(SecurityKeyExtensionSessionTest, SendMessageToClient_ValidData) {
423 CreateGnubbyConnection(); 438 CreateSecurityKeyConnection();
424 439
425 // Inject data into the SendMessageCallback to simulate a gnubby request. 440 // Inject data into SendMessageCallback to simulate a security key request.
426 mock_gnubby_auth_handler_->GetSendMessageCallback().Run(42, "test_msg"); 441 mock_security_key_auth_handler_->GetSendMessageCallback().Run(42, "test_msg");
427 442
428 client_stub_.WaitForDeliverHostMessage( 443 client_stub_.WaitForDeliverHostMessage(
429 base::TimeDelta::FromMilliseconds(500)); 444 base::TimeDelta::FromMilliseconds(500));
430 445
431 // Expects a JSON array of the ASCII character codes for "test_msg". 446 // Expects a JSON array of the ASCII character codes for "test_msg".
432 client_stub_.CheckHostDataMessage(42, "[116,101,115,116,95,109,115,103]"); 447 client_stub_.CheckHostDataMessage(42, "[116,101,115,116,95,109,115,103]");
433 } 448 }
434 449
435 } // namespace remoting 450 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/host/security_key/security_key_extension_session.cc ('k') | remoting/host/security_key/security_key_ipc_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698