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

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

Issue 11275088: Remove implicit scoped_refptr operator T* Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 8 years, 1 month 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
« no previous file with comments | « net/socket/ssl_client_socket_nss.cc ('k') | net/socket/ssl_server_socket_nss.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 #include "net/socket/ssl_client_socket.h" 5 #include "net/socket/ssl_client_socket.h"
6 6
7 #include "net/base/address_list.h" 7 #include "net/base/address_list.h"
8 #include "net/base/cert_test_util.h" 8 #include "net/base/cert_test_util.h"
9 #include "net/base/host_resolver.h" 9 #include "net/base/host_resolver.h"
10 #include "net/base/io_buffer.h" 10 #include "net/base/io_buffer.h"
(...skipping 343 matching lines...) Expand 10 before | Expand all | Expand 10 after
354 if (rv == net::ERR_IO_PENDING) 354 if (rv == net::ERR_IO_PENDING)
355 rv = callback.WaitForResult(); 355 rv = callback.WaitForResult();
356 EXPECT_EQ(net::OK, rv); 356 EXPECT_EQ(net::OK, rv);
357 EXPECT_TRUE(sock->IsConnected()); 357 EXPECT_TRUE(sock->IsConnected());
358 358
359 const char request_text[] = "GET / HTTP/1.0\r\n\r\n"; 359 const char request_text[] = "GET / HTTP/1.0\r\n\r\n";
360 scoped_refptr<net::IOBuffer> request_buffer( 360 scoped_refptr<net::IOBuffer> request_buffer(
361 new net::IOBuffer(arraysize(request_text) - 1)); 361 new net::IOBuffer(arraysize(request_text) - 1));
362 memcpy(request_buffer->data(), request_text, arraysize(request_text) - 1); 362 memcpy(request_buffer->data(), request_text, arraysize(request_text) - 1);
363 363
364 rv = sock->Write(request_buffer, arraysize(request_text) - 1, 364 rv = sock->Write(request_buffer.get(), arraysize(request_text) - 1,
365 callback.callback()); 365 callback.callback());
366 EXPECT_TRUE(rv >= 0 || rv == net::ERR_IO_PENDING); 366 EXPECT_TRUE(rv >= 0 || rv == net::ERR_IO_PENDING);
367 367
368 if (rv == net::ERR_IO_PENDING) 368 if (rv == net::ERR_IO_PENDING)
369 rv = callback.WaitForResult(); 369 rv = callback.WaitForResult();
370 EXPECT_EQ(static_cast<int>(arraysize(request_text) - 1), rv); 370 EXPECT_EQ(static_cast<int>(arraysize(request_text) - 1), rv);
371 371
372 scoped_refptr<net::IOBuffer> buf(new net::IOBuffer(4096)); 372 scoped_refptr<net::IOBuffer> buf(new net::IOBuffer(4096));
373 for (;;) { 373 for (;;) {
374 rv = sock->Read(buf, 4096, callback.callback()); 374 rv = sock->Read(buf.get(), 4096, callback.callback());
375 EXPECT_TRUE(rv >= 0 || rv == net::ERR_IO_PENDING); 375 EXPECT_TRUE(rv >= 0 || rv == net::ERR_IO_PENDING);
376 376
377 if (rv == net::ERR_IO_PENDING) 377 if (rv == net::ERR_IO_PENDING)
378 rv = callback.WaitForResult(); 378 rv = callback.WaitForResult();
379 379
380 EXPECT_GE(rv, 0); 380 EXPECT_GE(rv, 0);
381 if (rv <= 0) 381 if (rv <= 0)
382 break; 382 break;
383 } 383 }
384 } 384 }
(...skipping 23 matching lines...) Expand all
408 kDefaultSSLConfig)); 408 kDefaultSSLConfig));
409 409
410 rv = sock->Connect(callback.callback()); 410 rv = sock->Connect(callback.callback());
411 if (rv == net::ERR_IO_PENDING) 411 if (rv == net::ERR_IO_PENDING)
412 rv = callback.WaitForResult(); 412 rv = callback.WaitForResult();
413 EXPECT_EQ(net::OK, rv); 413 EXPECT_EQ(net::OK, rv);
414 EXPECT_TRUE(sock->IsConnected()); 414 EXPECT_TRUE(sock->IsConnected());
415 415
416 // Issue a "hanging" Read first. 416 // Issue a "hanging" Read first.
417 scoped_refptr<net::IOBuffer> buf(new net::IOBuffer(4096)); 417 scoped_refptr<net::IOBuffer> buf(new net::IOBuffer(4096));
418 rv = sock->Read(buf, 4096, callback.callback()); 418 rv = sock->Read(buf.get(), 4096, callback.callback());
419 // We haven't written the request, so there should be no response yet. 419 // We haven't written the request, so there should be no response yet.
420 ASSERT_EQ(net::ERR_IO_PENDING, rv); 420 ASSERT_EQ(net::ERR_IO_PENDING, rv);
421 421
422 // Write the request. 422 // Write the request.
423 // The request is padded with a User-Agent header to a size that causes the 423 // The request is padded with a User-Agent header to a size that causes the
424 // memio circular buffer (4k bytes) in SSLClientSocketNSS to wrap around. 424 // memio circular buffer (4k bytes) in SSLClientSocketNSS to wrap around.
425 // This tests the fix for http://crbug.com/29815. 425 // This tests the fix for http://crbug.com/29815.
426 std::string request_text = "GET / HTTP/1.1\r\nUser-Agent: long browser name "; 426 std::string request_text = "GET / HTTP/1.1\r\nUser-Agent: long browser name ";
427 for (int i = 0; i < 3770; ++i) 427 for (int i = 0; i < 3770; ++i)
428 request_text.push_back('*'); 428 request_text.push_back('*');
429 request_text.append("\r\n\r\n"); 429 request_text.append("\r\n\r\n");
430 scoped_refptr<net::IOBuffer> request_buffer( 430 scoped_refptr<net::IOBuffer> request_buffer(
431 new net::StringIOBuffer(request_text)); 431 new net::StringIOBuffer(request_text));
432 432
433 net::TestCompletionCallback callback2; // Used for Write only. 433 net::TestCompletionCallback callback2; // Used for Write only.
434 rv = sock->Write(request_buffer, request_text.size(), callback2.callback()); 434 rv = sock->
435 Write(request_buffer.get(), request_text.size(), callback2.callback());
435 EXPECT_TRUE(rv >= 0 || rv == net::ERR_IO_PENDING); 436 EXPECT_TRUE(rv >= 0 || rv == net::ERR_IO_PENDING);
436 437
437 if (rv == net::ERR_IO_PENDING) 438 if (rv == net::ERR_IO_PENDING)
438 rv = callback2.WaitForResult(); 439 rv = callback2.WaitForResult();
439 EXPECT_EQ(static_cast<int>(request_text.size()), rv); 440 EXPECT_EQ(static_cast<int>(request_text.size()), rv);
440 441
441 // Now get the Read result. 442 // Now get the Read result.
442 rv = callback.WaitForResult(); 443 rv = callback.WaitForResult();
443 EXPECT_GT(rv, 0); 444 EXPECT_GT(rv, 0);
444 } 445 }
(...skipping 22 matching lines...) Expand all
467 rv = sock->Connect(callback.callback()); 468 rv = sock->Connect(callback.callback());
468 if (rv == net::ERR_IO_PENDING) 469 if (rv == net::ERR_IO_PENDING)
469 rv = callback.WaitForResult(); 470 rv = callback.WaitForResult();
470 EXPECT_EQ(net::OK, rv); 471 EXPECT_EQ(net::OK, rv);
471 472
472 const char request_text[] = "GET / HTTP/1.0\r\n\r\n"; 473 const char request_text[] = "GET / HTTP/1.0\r\n\r\n";
473 scoped_refptr<net::IOBuffer> request_buffer( 474 scoped_refptr<net::IOBuffer> request_buffer(
474 new net::IOBuffer(arraysize(request_text) - 1)); 475 new net::IOBuffer(arraysize(request_text) - 1));
475 memcpy(request_buffer->data(), request_text, arraysize(request_text) - 1); 476 memcpy(request_buffer->data(), request_text, arraysize(request_text) - 1);
476 477
477 rv = sock->Write(request_buffer, arraysize(request_text) - 1, 478 rv = sock->Write(request_buffer.get(), arraysize(request_text) - 1,
478 callback.callback()); 479 callback.callback());
479 EXPECT_TRUE(rv >= 0 || rv == net::ERR_IO_PENDING); 480 EXPECT_TRUE(rv >= 0 || rv == net::ERR_IO_PENDING);
480 481
481 if (rv == net::ERR_IO_PENDING) 482 if (rv == net::ERR_IO_PENDING)
482 rv = callback.WaitForResult(); 483 rv = callback.WaitForResult();
483 EXPECT_EQ(static_cast<int>(arraysize(request_text) - 1), rv); 484 EXPECT_EQ(static_cast<int>(arraysize(request_text) - 1), rv);
484 485
485 scoped_refptr<net::IOBuffer> buf(new net::IOBuffer(1)); 486 scoped_refptr<net::IOBuffer> buf(new net::IOBuffer(1));
486 for (;;) { 487 for (;;) {
487 rv = sock->Read(buf, 1, callback.callback()); 488 rv = sock->Read(buf.get(), 1, callback.callback());
488 EXPECT_TRUE(rv >= 0 || rv == net::ERR_IO_PENDING); 489 EXPECT_TRUE(rv >= 0 || rv == net::ERR_IO_PENDING);
489 490
490 if (rv == net::ERR_IO_PENDING) 491 if (rv == net::ERR_IO_PENDING)
491 rv = callback.WaitForResult(); 492 rv = callback.WaitForResult();
492 493
493 EXPECT_GE(rv, 0); 494 EXPECT_GE(rv, 0);
494 if (rv <= 0) 495 if (rv <= 0)
495 break; 496 break;
496 } 497 }
497 } 498 }
(...skipping 22 matching lines...) Expand all
520 rv = sock->Connect(callback.callback()); 521 rv = sock->Connect(callback.callback());
521 if (rv == net::ERR_IO_PENDING) 522 if (rv == net::ERR_IO_PENDING)
522 rv = callback.WaitForResult(); 523 rv = callback.WaitForResult();
523 EXPECT_EQ(net::OK, rv); 524 EXPECT_EQ(net::OK, rv);
524 525
525 const char request_text[] = "GET / HTTP/1.0\r\n\r\n"; 526 const char request_text[] = "GET / HTTP/1.0\r\n\r\n";
526 scoped_refptr<net::IOBuffer> request_buffer( 527 scoped_refptr<net::IOBuffer> request_buffer(
527 new net::IOBuffer(arraysize(request_text) - 1)); 528 new net::IOBuffer(arraysize(request_text) - 1));
528 memcpy(request_buffer->data(), request_text, arraysize(request_text) - 1); 529 memcpy(request_buffer->data(), request_text, arraysize(request_text) - 1);
529 530
530 rv = sock->Write(request_buffer, arraysize(request_text) - 1, 531 rv = sock->Write(request_buffer.get(), arraysize(request_text) - 1,
531 callback.callback()); 532 callback.callback());
532 EXPECT_TRUE(rv >= 0 || rv == net::ERR_IO_PENDING); 533 EXPECT_TRUE(rv >= 0 || rv == net::ERR_IO_PENDING);
533 534
534 if (rv == net::ERR_IO_PENDING) 535 if (rv == net::ERR_IO_PENDING)
535 rv = callback.WaitForResult(); 536 rv = callback.WaitForResult();
536 EXPECT_EQ(static_cast<int>(arraysize(request_text) - 1), rv); 537 EXPECT_EQ(static_cast<int>(arraysize(request_text) - 1), rv);
537 538
538 // Do a partial read and then exit. This test should not crash! 539 // Do a partial read and then exit. This test should not crash!
539 scoped_refptr<net::IOBuffer> buf(new net::IOBuffer(512)); 540 scoped_refptr<net::IOBuffer> buf(new net::IOBuffer(512));
540 rv = sock->Read(buf, 512, callback.callback()); 541 rv = sock->Read(buf.get(), 512, callback.callback());
541 EXPECT_TRUE(rv > 0 || rv == net::ERR_IO_PENDING); 542 EXPECT_TRUE(rv > 0 || rv == net::ERR_IO_PENDING);
542 543
543 if (rv == net::ERR_IO_PENDING) 544 if (rv == net::ERR_IO_PENDING)
544 rv = callback.WaitForResult(); 545 rv = callback.WaitForResult();
545 546
546 EXPECT_GT(rv, 0); 547 EXPECT_GT(rv, 0);
547 } 548 }
548 549
549 TEST_F(SSLClientSocketTest, Read_FullLogging) { 550 TEST_F(SSLClientSocketTest, Read_FullLogging) {
550 net::TestServer test_server(net::TestServer::TYPE_HTTPS, 551 net::TestServer test_server(net::TestServer::TYPE_HTTPS,
(...skipping 22 matching lines...) Expand all
573 if (rv == net::ERR_IO_PENDING) 574 if (rv == net::ERR_IO_PENDING)
574 rv = callback.WaitForResult(); 575 rv = callback.WaitForResult();
575 EXPECT_EQ(net::OK, rv); 576 EXPECT_EQ(net::OK, rv);
576 EXPECT_TRUE(sock->IsConnected()); 577 EXPECT_TRUE(sock->IsConnected());
577 578
578 const char request_text[] = "GET / HTTP/1.0\r\n\r\n"; 579 const char request_text[] = "GET / HTTP/1.0\r\n\r\n";
579 scoped_refptr<net::IOBuffer> request_buffer( 580 scoped_refptr<net::IOBuffer> request_buffer(
580 new net::IOBuffer(arraysize(request_text) - 1)); 581 new net::IOBuffer(arraysize(request_text) - 1));
581 memcpy(request_buffer->data(), request_text, arraysize(request_text) - 1); 582 memcpy(request_buffer->data(), request_text, arraysize(request_text) - 1);
582 583
583 rv = sock->Write(request_buffer, arraysize(request_text) - 1, 584 rv = sock->Write(request_buffer.get(), arraysize(request_text) - 1,
584 callback.callback()); 585 callback.callback());
585 EXPECT_TRUE(rv >= 0 || rv == net::ERR_IO_PENDING); 586 EXPECT_TRUE(rv >= 0 || rv == net::ERR_IO_PENDING);
586 587
587 if (rv == net::ERR_IO_PENDING) 588 if (rv == net::ERR_IO_PENDING)
588 rv = callback.WaitForResult(); 589 rv = callback.WaitForResult();
589 EXPECT_EQ(static_cast<int>(arraysize(request_text) - 1), rv); 590 EXPECT_EQ(static_cast<int>(arraysize(request_text) - 1), rv);
590 591
591 net::CapturingNetLog::CapturedEntryList entries; 592 net::CapturingNetLog::CapturedEntryList entries;
592 log.GetEntries(&entries); 593 log.GetEntries(&entries);
593 size_t last_index = net::ExpectLogContainsSomewhereAfter( 594 size_t last_index = net::ExpectLogContainsSomewhereAfter(
594 entries, 5, net::NetLog::TYPE_SSL_SOCKET_BYTES_SENT, 595 entries, 5, net::NetLog::TYPE_SSL_SOCKET_BYTES_SENT,
595 net::NetLog::PHASE_NONE); 596 net::NetLog::PHASE_NONE);
596 597
597 scoped_refptr<net::IOBuffer> buf(new net::IOBuffer(4096)); 598 scoped_refptr<net::IOBuffer> buf(new net::IOBuffer(4096));
598 for (;;) { 599 for (;;) {
599 rv = sock->Read(buf, 4096, callback.callback()); 600 rv = sock->Read(buf.get(), 4096, callback.callback());
600 EXPECT_TRUE(rv >= 0 || rv == net::ERR_IO_PENDING); 601 EXPECT_TRUE(rv >= 0 || rv == net::ERR_IO_PENDING);
601 602
602 if (rv == net::ERR_IO_PENDING) 603 if (rv == net::ERR_IO_PENDING)
603 rv = callback.WaitForResult(); 604 rv = callback.WaitForResult();
604 605
605 EXPECT_GE(rv, 0); 606 EXPECT_GE(rv, 0);
606 if (rv <= 0) 607 if (rv <= 0)
607 break; 608 break;
608 609
609 log.GetEntries(&entries); 610 log.GetEntries(&entries);
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
862 temp_intermediates.push_back(certs[1]->os_cert_handle()); 863 temp_intermediates.push_back(certs[1]->os_cert_handle());
863 temp_intermediates.push_back(certs[2]->os_cert_handle()); 864 temp_intermediates.push_back(certs[2]->os_cert_handle());
864 865
865 net::CertVerifyResult verify_result; 866 net::CertVerifyResult verify_result;
866 verify_result.verified_cert = 867 verify_result.verified_cert =
867 net::X509Certificate::CreateFromHandle(certs[0]->os_cert_handle(), 868 net::X509Certificate::CreateFromHandle(certs[0]->os_cert_handle(),
868 temp_intermediates); 869 temp_intermediates);
869 870
870 // Add a rule that maps the server cert (A) to the chain of A->B->C2 871 // Add a rule that maps the server cert (A) to the chain of A->B->C2
871 // rather than A->B->C. 872 // rather than A->B->C.
872 cert_verifier_->AddResultForCert(certs[0], verify_result, net::OK); 873 cert_verifier_->AddResultForCert(certs[0].get(), verify_result, net::OK);
873 874
874 // Load and install the root for the validated chain. 875 // Load and install the root for the validated chain.
875 scoped_refptr<net::X509Certificate> root_cert = 876 scoped_refptr<net::X509Certificate> root_cert =
876 net::ImportCertFromFile(net::GetTestCertsDirectory(), 877 net::ImportCertFromFile(net::GetTestCertsDirectory(),
877 "redundant-validated-chain-root.pem"); 878 "redundant-validated-chain-root.pem");
878 ASSERT_NE(static_cast<net::X509Certificate*>(NULL), root_cert); 879 ASSERT_NE(static_cast<net::X509Certificate*>(NULL), root_cert);
879 net::ScopedTestRoot scoped_root(root_cert); 880 net::ScopedTestRoot scoped_root(root_cert.get());
880 881
881 // Set up a test server with CERT_CHAIN_WRONG_ROOT. 882 // Set up a test server with CERT_CHAIN_WRONG_ROOT.
882 net::TestServer::SSLOptions ssl_options( 883 net::TestServer::SSLOptions ssl_options(
883 net::TestServer::SSLOptions::CERT_CHAIN_WRONG_ROOT); 884 net::TestServer::SSLOptions::CERT_CHAIN_WRONG_ROOT);
884 net::TestServer test_server(net::TestServer::TYPE_HTTPS, 885 net::TestServer test_server(net::TestServer::TYPE_HTTPS,
885 ssl_options, 886 ssl_options,
886 FilePath(FILE_PATH_LITERAL("net/data/ssl"))); 887 FilePath(FILE_PATH_LITERAL("net/data/ssl")));
887 ASSERT_TRUE(test_server.Start()); 888 ASSERT_TRUE(test_server.Start());
888 889
889 net::AddressList addr; 890 net::AddressList addr;
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
928 ssl_info.cert->os_cert_handle(), certs[0]->os_cert_handle())); 929 ssl_info.cert->os_cert_handle(), certs[0]->os_cert_handle()));
929 EXPECT_TRUE(net::X509Certificate::IsSameOSCert( 930 EXPECT_TRUE(net::X509Certificate::IsSameOSCert(
930 intermediates[0], certs[1]->os_cert_handle())); 931 intermediates[0], certs[1]->os_cert_handle()));
931 EXPECT_TRUE(net::X509Certificate::IsSameOSCert( 932 EXPECT_TRUE(net::X509Certificate::IsSameOSCert(
932 intermediates[1], certs[2]->os_cert_handle())); 933 intermediates[1], certs[2]->os_cert_handle()));
933 934
934 sock->Disconnect(); 935 sock->Disconnect();
935 EXPECT_FALSE(sock->IsConnected()); 936 EXPECT_FALSE(sock->IsConnected());
936 } 937 }
937 938
OLDNEW
« no previous file with comments | « net/socket/ssl_client_socket_nss.cc ('k') | net/socket/ssl_server_socket_nss.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698