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

Side by Side Diff: net/socket/ssl_server_socket_unittest.cc

Issue 15829004: Update net/ to use scoped_refptr<T>::get() rather than implicit "operator T*" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: license twerk Created 7 years, 6 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 | Annotate | Revision Log
« no previous file with comments | « net/socket/ssl_server_socket_nss.cc ('k') | net/socket/tcp_listen_socket.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 // This test suite uses SSLClientSocket to test the implementation of 5 // This test suite uses SSLClientSocket to test the implementation of
6 // SSLServerSocket. In order to establish connections between the sockets 6 // SSLServerSocket. In order to establish connections between the sockets
7 // we need two additional classes: 7 // we need two additional classes:
8 // 1. FakeSocket 8 // 1. FakeSocket
9 // Connects SSL socket to FakeDataChannel. This class is just a stub. 9 // Connects SSL socket to FakeDataChannel. This class is just a stub.
10 // 10 //
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after
260 FakeSocket client(&channel_1, &channel_2); 260 FakeSocket client(&channel_1, &channel_2);
261 FakeSocket server(&channel_2, &channel_1); 261 FakeSocket server(&channel_2, &channel_1);
262 262
263 const char kTestData[] = "testing123"; 263 const char kTestData[] = "testing123";
264 const int kTestDataSize = strlen(kTestData); 264 const int kTestDataSize = strlen(kTestData);
265 const int kReadBufSize = 1024; 265 const int kReadBufSize = 1024;
266 scoped_refptr<net::IOBuffer> write_buf = new net::StringIOBuffer(kTestData); 266 scoped_refptr<net::IOBuffer> write_buf = new net::StringIOBuffer(kTestData);
267 scoped_refptr<net::IOBuffer> read_buf = new net::IOBuffer(kReadBufSize); 267 scoped_refptr<net::IOBuffer> read_buf = new net::IOBuffer(kReadBufSize);
268 268
269 // Write then read. 269 // Write then read.
270 int written = server.Write(write_buf, kTestDataSize, CompletionCallback()); 270 int written =
271 server.Write(write_buf.get(), kTestDataSize, CompletionCallback());
271 EXPECT_GT(written, 0); 272 EXPECT_GT(written, 0);
272 EXPECT_LE(written, kTestDataSize); 273 EXPECT_LE(written, kTestDataSize);
273 274
274 int read = client.Read(read_buf, kReadBufSize, CompletionCallback()); 275 int read = client.Read(read_buf.get(), kReadBufSize, CompletionCallback());
275 EXPECT_GT(read, 0); 276 EXPECT_GT(read, 0);
276 EXPECT_LE(read, written); 277 EXPECT_LE(read, written);
277 EXPECT_EQ(0, memcmp(kTestData, read_buf->data(), read)); 278 EXPECT_EQ(0, memcmp(kTestData, read_buf->data(), read));
278 279
279 // Read then write. 280 // Read then write.
280 TestCompletionCallback callback; 281 TestCompletionCallback callback;
281 EXPECT_EQ(net::ERR_IO_PENDING, 282 EXPECT_EQ(net::ERR_IO_PENDING,
282 server.Read(read_buf, kReadBufSize, callback.callback())); 283 server.Read(read_buf.get(), kReadBufSize, callback.callback()));
283 284
284 written = client.Write(write_buf, kTestDataSize, CompletionCallback()); 285 written = client.Write(write_buf.get(), kTestDataSize, CompletionCallback());
285 EXPECT_GT(written, 0); 286 EXPECT_GT(written, 0);
286 EXPECT_LE(written, kTestDataSize); 287 EXPECT_LE(written, kTestDataSize);
287 288
288 read = callback.WaitForResult(); 289 read = callback.WaitForResult();
289 EXPECT_GT(read, 0); 290 EXPECT_GT(read, 0);
290 EXPECT_LE(read, written); 291 EXPECT_LE(read, written);
291 EXPECT_EQ(0, memcmp(kTestData, read_buf->data(), read)); 292 EXPECT_EQ(0, memcmp(kTestData, read_buf->data(), read));
292 } 293 }
293 294
294 class SSLServerSocketTest : public PlatformTest { 295 class SSLServerSocketTest : public PlatformTest {
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 cert_and_status.cert_status = CERT_STATUS_AUTHORITY_INVALID; 337 cert_and_status.cert_status = CERT_STATUS_AUTHORITY_INVALID;
337 cert_and_status.der_cert = cert_der; 338 cert_and_status.der_cert = cert_der;
338 ssl_config.allowed_bad_certs.push_back(cert_and_status); 339 ssl_config.allowed_bad_certs.push_back(cert_and_status);
339 340
340 net::HostPortPair host_and_pair("unittest", 0); 341 net::HostPortPair host_and_pair("unittest", 0);
341 net::SSLClientSocketContext context; 342 net::SSLClientSocketContext context;
342 context.cert_verifier = cert_verifier_.get(); 343 context.cert_verifier = cert_verifier_.get();
343 client_socket_.reset( 344 client_socket_.reset(
344 socket_factory_->CreateSSLClientSocket( 345 socket_factory_->CreateSSLClientSocket(
345 fake_client_socket, host_and_pair, ssl_config, context)); 346 fake_client_socket, host_and_pair, ssl_config, context));
346 server_socket_.reset(net::CreateSSLServerSocket(fake_server_socket, 347 server_socket_.reset(net::CreateSSLServerSocket(
347 cert, private_key.get(), 348 fake_server_socket, cert.get(), private_key.get(), net::SSLConfig()));
348 net::SSLConfig()));
349 } 349 }
350 350
351 FakeDataChannel channel_1_; 351 FakeDataChannel channel_1_;
352 FakeDataChannel channel_2_; 352 FakeDataChannel channel_2_;
353 scoped_ptr<net::SSLClientSocket> client_socket_; 353 scoped_ptr<net::SSLClientSocket> client_socket_;
354 scoped_ptr<net::SSLServerSocket> server_socket_; 354 scoped_ptr<net::SSLServerSocket> server_socket_;
355 net::ClientSocketFactory* socket_factory_; 355 net::ClientSocketFactory* socket_factory_;
356 scoped_ptr<net::MockCertVerifier> cert_verifier_; 356 scoped_ptr<net::MockCertVerifier> cert_verifier_;
357 }; 357 };
358 358
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
415 const int kReadBufSize = 1024; 415 const int kReadBufSize = 1024;
416 scoped_refptr<net::StringIOBuffer> write_buf = 416 scoped_refptr<net::StringIOBuffer> write_buf =
417 new net::StringIOBuffer("testing123"); 417 new net::StringIOBuffer("testing123");
418 scoped_refptr<net::DrainableIOBuffer> read_buf = 418 scoped_refptr<net::DrainableIOBuffer> read_buf =
419 new net::DrainableIOBuffer(new net::IOBuffer(kReadBufSize), 419 new net::DrainableIOBuffer(new net::IOBuffer(kReadBufSize),
420 kReadBufSize); 420 kReadBufSize);
421 421
422 // Write then read. 422 // Write then read.
423 TestCompletionCallback write_callback; 423 TestCompletionCallback write_callback;
424 TestCompletionCallback read_callback; 424 TestCompletionCallback read_callback;
425 server_ret = server_socket_->Write(write_buf, write_buf->size(), 425 server_ret = server_socket_->Write(
426 write_callback.callback()); 426 write_buf.get(), write_buf->size(), write_callback.callback());
427 EXPECT_TRUE(server_ret > 0 || server_ret == net::ERR_IO_PENDING); 427 EXPECT_TRUE(server_ret > 0 || server_ret == net::ERR_IO_PENDING);
428 client_ret = client_socket_->Read(read_buf, read_buf->BytesRemaining(), 428 client_ret = client_socket_->Read(
429 read_callback.callback()); 429 read_buf.get(), read_buf->BytesRemaining(), read_callback.callback());
430 EXPECT_TRUE(client_ret > 0 || client_ret == net::ERR_IO_PENDING); 430 EXPECT_TRUE(client_ret > 0 || client_ret == net::ERR_IO_PENDING);
431 431
432 server_ret = write_callback.GetResult(server_ret); 432 server_ret = write_callback.GetResult(server_ret);
433 EXPECT_GT(server_ret, 0); 433 EXPECT_GT(server_ret, 0);
434 client_ret = read_callback.GetResult(client_ret); 434 client_ret = read_callback.GetResult(client_ret);
435 ASSERT_GT(client_ret, 0); 435 ASSERT_GT(client_ret, 0);
436 436
437 read_buf->DidConsume(client_ret); 437 read_buf->DidConsume(client_ret);
438 while (read_buf->BytesConsumed() < write_buf->size()) { 438 while (read_buf->BytesConsumed() < write_buf->size()) {
439 client_ret = client_socket_->Read(read_buf, read_buf->BytesRemaining(), 439 client_ret = client_socket_->Read(
440 read_callback.callback()); 440 read_buf.get(), read_buf->BytesRemaining(), read_callback.callback());
441 EXPECT_TRUE(client_ret > 0 || client_ret == net::ERR_IO_PENDING); 441 EXPECT_TRUE(client_ret > 0 || client_ret == net::ERR_IO_PENDING);
442 client_ret = read_callback.GetResult(client_ret); 442 client_ret = read_callback.GetResult(client_ret);
443 ASSERT_GT(client_ret, 0); 443 ASSERT_GT(client_ret, 0);
444 read_buf->DidConsume(client_ret); 444 read_buf->DidConsume(client_ret);
445 } 445 }
446 EXPECT_EQ(write_buf->size(), read_buf->BytesConsumed()); 446 EXPECT_EQ(write_buf->size(), read_buf->BytesConsumed());
447 read_buf->SetOffset(0); 447 read_buf->SetOffset(0);
448 EXPECT_EQ(0, memcmp(write_buf->data(), read_buf->data(), write_buf->size())); 448 EXPECT_EQ(0, memcmp(write_buf->data(), read_buf->data(), write_buf->size()));
449 449
450 // Read then write. 450 // Read then write.
451 write_buf = new net::StringIOBuffer("hello123"); 451 write_buf = new net::StringIOBuffer("hello123");
452 server_ret = server_socket_->Read(read_buf, read_buf->BytesRemaining(), 452 server_ret = server_socket_->Read(
453 read_callback.callback()); 453 read_buf.get(), read_buf->BytesRemaining(), read_callback.callback());
454 EXPECT_TRUE(server_ret > 0 || server_ret == net::ERR_IO_PENDING); 454 EXPECT_TRUE(server_ret > 0 || server_ret == net::ERR_IO_PENDING);
455 client_ret = client_socket_->Write(write_buf, write_buf->size(), 455 client_ret = client_socket_->Write(
456 write_callback.callback()); 456 write_buf.get(), write_buf->size(), write_callback.callback());
457 EXPECT_TRUE(client_ret > 0 || client_ret == net::ERR_IO_PENDING); 457 EXPECT_TRUE(client_ret > 0 || client_ret == net::ERR_IO_PENDING);
458 458
459 server_ret = read_callback.GetResult(server_ret); 459 server_ret = read_callback.GetResult(server_ret);
460 ASSERT_GT(server_ret, 0); 460 ASSERT_GT(server_ret, 0);
461 client_ret = write_callback.GetResult(client_ret); 461 client_ret = write_callback.GetResult(client_ret);
462 EXPECT_GT(client_ret, 0); 462 EXPECT_GT(client_ret, 0);
463 463
464 read_buf->DidConsume(server_ret); 464 read_buf->DidConsume(server_ret);
465 while (read_buf->BytesConsumed() < write_buf->size()) { 465 while (read_buf->BytesConsumed() < write_buf->size()) {
466 server_ret = server_socket_->Read(read_buf, read_buf->BytesRemaining(), 466 server_ret = server_socket_->Read(
467 read_callback.callback()); 467 read_buf.get(), read_buf->BytesRemaining(), read_callback.callback());
468 EXPECT_TRUE(server_ret > 0 || server_ret == net::ERR_IO_PENDING); 468 EXPECT_TRUE(server_ret > 0 || server_ret == net::ERR_IO_PENDING);
469 server_ret = read_callback.GetResult(server_ret); 469 server_ret = read_callback.GetResult(server_ret);
470 ASSERT_GT(server_ret, 0); 470 ASSERT_GT(server_ret, 0);
471 read_buf->DidConsume(server_ret); 471 read_buf->DidConsume(server_ret);
472 } 472 }
473 EXPECT_EQ(write_buf->size(), read_buf->BytesConsumed()); 473 EXPECT_EQ(write_buf->size(), read_buf->BytesConsumed());
474 read_buf->SetOffset(0); 474 read_buf->SetOffset(0);
475 EXPECT_EQ(0, memcmp(write_buf->data(), read_buf->data(), write_buf->size())); 475 EXPECT_EQ(0, memcmp(write_buf->data(), read_buf->data(), write_buf->size()));
476 } 476 }
477 477
(...skipping 21 matching lines...) Expand all
499 499
500 scoped_refptr<net::StringIOBuffer> write_buf = 500 scoped_refptr<net::StringIOBuffer> write_buf =
501 new net::StringIOBuffer("testing123"); 501 new net::StringIOBuffer("testing123");
502 502
503 // The server closes the connection. The server needs to write some 503 // The server closes the connection. The server needs to write some
504 // data first so that the client's Read() calls from the transport 504 // data first so that the client's Read() calls from the transport
505 // socket won't return ERR_IO_PENDING. This ensures that the client 505 // socket won't return ERR_IO_PENDING. This ensures that the client
506 // will call Read() on the transport socket again. 506 // will call Read() on the transport socket again.
507 TestCompletionCallback write_callback; 507 TestCompletionCallback write_callback;
508 508
509 server_ret = server_socket_->Write(write_buf, write_buf->size(), 509 server_ret = server_socket_->Write(
510 write_callback.callback()); 510 write_buf.get(), write_buf->size(), write_callback.callback());
511 EXPECT_TRUE(server_ret > 0 || server_ret == net::ERR_IO_PENDING); 511 EXPECT_TRUE(server_ret > 0 || server_ret == net::ERR_IO_PENDING);
512 512
513 server_ret = write_callback.GetResult(server_ret); 513 server_ret = write_callback.GetResult(server_ret);
514 EXPECT_GT(server_ret, 0); 514 EXPECT_GT(server_ret, 0);
515 515
516 server_socket_->Disconnect(); 516 server_socket_->Disconnect();
517 517
518 // The client writes some data. This should not cause an infinite loop. 518 // The client writes some data. This should not cause an infinite loop.
519 client_ret = client_socket_->Write(write_buf, write_buf->size(), 519 client_ret = client_socket_->Write(
520 write_callback.callback()); 520 write_buf.get(), write_buf->size(), write_callback.callback());
521 EXPECT_TRUE(client_ret > 0 || client_ret == net::ERR_IO_PENDING); 521 EXPECT_TRUE(client_ret > 0 || client_ret == net::ERR_IO_PENDING);
522 522
523 client_ret = write_callback.GetResult(client_ret); 523 client_ret = write_callback.GetResult(client_ret);
524 EXPECT_GT(client_ret, 0); 524 EXPECT_GT(client_ret, 0);
525 525
526 base::MessageLoop::current()->PostDelayedTask( 526 base::MessageLoop::current()->PostDelayedTask(
527 FROM_HERE, base::MessageLoop::QuitClosure(), 527 FROM_HERE, base::MessageLoop::QuitClosure(),
528 base::TimeDelta::FromMilliseconds(10)); 528 base::TimeDelta::FromMilliseconds(10));
529 base::MessageLoop::current()->Run(); 529 base::MessageLoop::current()->Run();
530 } 530 }
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
571 unsigned char client_bad[kKeyingMaterialSize]; 571 unsigned char client_bad[kKeyingMaterialSize];
572 rv = client_socket_->ExportKeyingMaterial(kKeyingLabelBad, 572 rv = client_socket_->ExportKeyingMaterial(kKeyingLabelBad,
573 false, kKeyingContext, 573 false, kKeyingContext,
574 client_bad, sizeof(client_bad)); 574 client_bad, sizeof(client_bad));
575 ASSERT_EQ(rv, net::OK); 575 ASSERT_EQ(rv, net::OK);
576 EXPECT_NE(0, memcmp(server_out, client_bad, sizeof(server_out))); 576 EXPECT_NE(0, memcmp(server_out, client_bad, sizeof(server_out)));
577 } 577 }
578 #endif 578 #endif
579 579
580 } // namespace net 580 } // namespace net
OLDNEW
« no previous file with comments | « net/socket/ssl_server_socket_nss.cc ('k') | net/socket/tcp_listen_socket.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698