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

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

Issue 9252029: SPDY - default to SPDY/2.1 protocol in unittests (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: sync with trunk Created 8 years, 11 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/http/http_stream_factory_impl.cc ('k') | net/spdy/spdy_network_transaction_unittest.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_pool.h" 5 #include "net/socket/ssl_client_socket_pool.h"
6 6
7 #include "base/callback.h" 7 #include "base/callback.h"
8 #include "base/compiler_specific.h" 8 #include "base/compiler_specific.h"
9 #include "base/string_util.h" 9 #include "base/string_util.h"
10 #include "base/time.h" 10 #include "base/time.h"
(...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after
366 EXPECT_FALSE(handle.is_initialized()); 366 EXPECT_FALSE(handle.is_initialized());
367 EXPECT_FALSE(handle.socket()); 367 EXPECT_FALSE(handle.socket());
368 EXPECT_TRUE(handle.is_ssl_error()); 368 EXPECT_TRUE(handle.is_ssl_error());
369 } 369 }
370 370
371 TEST_F(SSLClientSocketPoolTest, DirectGotSPDY) { 371 TEST_F(SSLClientSocketPoolTest, DirectGotSPDY) {
372 StaticSocketDataProvider data; 372 StaticSocketDataProvider data;
373 socket_factory_.AddSocketDataProvider(&data); 373 socket_factory_.AddSocketDataProvider(&data);
374 SSLSocketDataProvider ssl(true, OK); 374 SSLSocketDataProvider ssl(true, OK);
375 ssl.next_proto_status = SSLClientSocket::kNextProtoNegotiated; 375 ssl.next_proto_status = SSLClientSocket::kNextProtoNegotiated;
376 ssl.next_proto = "spdy/2"; 376 ssl.next_proto = "spdy/2.1";
377 ssl.protocol_negotiated = SSLClientSocket::kProtoSPDY2; 377 ssl.protocol_negotiated = SSLClientSocket::kProtoSPDY21;
378 socket_factory_.AddSSLSocketDataProvider(&ssl); 378 socket_factory_.AddSSLSocketDataProvider(&ssl);
379 379
380 CreatePool(true /* tcp pool */, false, false); 380 CreatePool(true /* tcp pool */, false, false);
381 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT, 381 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT,
382 true); 382 true);
383 383
384 ClientSocketHandle handle; 384 ClientSocketHandle handle;
385 TestCompletionCallback callback; 385 TestCompletionCallback callback;
386 int rv = handle.Init( 386 int rv = handle.Init(
387 "a", params, MEDIUM, callback.callback(), pool_.get(), BoundNetLog()); 387 "a", params, MEDIUM, callback.callback(), pool_.get(), BoundNetLog());
388 EXPECT_EQ(ERR_IO_PENDING, rv); 388 EXPECT_EQ(ERR_IO_PENDING, rv);
389 EXPECT_FALSE(handle.is_initialized()); 389 EXPECT_FALSE(handle.is_initialized());
390 EXPECT_FALSE(handle.socket()); 390 EXPECT_FALSE(handle.socket());
391 391
392 EXPECT_EQ(OK, callback.WaitForResult()); 392 EXPECT_EQ(OK, callback.WaitForResult());
393 EXPECT_TRUE(handle.is_initialized()); 393 EXPECT_TRUE(handle.is_initialized());
394 EXPECT_TRUE(handle.socket()); 394 EXPECT_TRUE(handle.socket());
395 395
396 SSLClientSocket* ssl_socket = static_cast<SSLClientSocket*>(handle.socket()); 396 SSLClientSocket* ssl_socket = static_cast<SSLClientSocket*>(handle.socket());
397 EXPECT_TRUE(ssl_socket->was_npn_negotiated()); 397 EXPECT_TRUE(ssl_socket->was_npn_negotiated());
398 std::string proto; 398 std::string proto;
399 std::string server_protos; 399 std::string server_protos;
400 ssl_socket->GetNextProto(&proto, &server_protos); 400 ssl_socket->GetNextProto(&proto, &server_protos);
401 EXPECT_EQ(SSLClientSocket::NextProtoFromString(proto), 401 EXPECT_EQ(SSLClientSocket::NextProtoFromString(proto),
402 SSLClientSocket::kProtoSPDY2); 402 SSLClientSocket::kProtoSPDY21);
403 } 403 }
404 404
405 TEST_F(SSLClientSocketPoolTest, DirectGotBonusSPDY) { 405 TEST_F(SSLClientSocketPoolTest, DirectGotBonusSPDY) {
406 StaticSocketDataProvider data; 406 StaticSocketDataProvider data;
407 socket_factory_.AddSocketDataProvider(&data); 407 socket_factory_.AddSocketDataProvider(&data);
408 SSLSocketDataProvider ssl(true, OK); 408 SSLSocketDataProvider ssl(true, OK);
409 ssl.next_proto_status = SSLClientSocket::kNextProtoNegotiated; 409 ssl.next_proto_status = SSLClientSocket::kNextProtoNegotiated;
410 ssl.next_proto = "spdy/2"; 410 ssl.next_proto = "spdy/2.1";
411 ssl.protocol_negotiated = SSLClientSocket::kProtoSPDY2; 411 ssl.protocol_negotiated = SSLClientSocket::kProtoSPDY21;
412 socket_factory_.AddSSLSocketDataProvider(&ssl); 412 socket_factory_.AddSSLSocketDataProvider(&ssl);
413 413
414 CreatePool(true /* tcp pool */, false, false); 414 CreatePool(true /* tcp pool */, false, false);
415 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT, 415 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT,
416 true); 416 true);
417 417
418 ClientSocketHandle handle; 418 ClientSocketHandle handle;
419 TestCompletionCallback callback; 419 TestCompletionCallback callback;
420 int rv = handle.Init( 420 int rv = handle.Init(
421 "a", params, MEDIUM, callback.callback(), pool_.get(), BoundNetLog()); 421 "a", params, MEDIUM, callback.callback(), pool_.get(), BoundNetLog());
422 EXPECT_EQ(ERR_IO_PENDING, rv); 422 EXPECT_EQ(ERR_IO_PENDING, rv);
423 EXPECT_FALSE(handle.is_initialized()); 423 EXPECT_FALSE(handle.is_initialized());
424 EXPECT_FALSE(handle.socket()); 424 EXPECT_FALSE(handle.socket());
425 425
426 EXPECT_EQ(OK, callback.WaitForResult()); 426 EXPECT_EQ(OK, callback.WaitForResult());
427 EXPECT_TRUE(handle.is_initialized()); 427 EXPECT_TRUE(handle.is_initialized());
428 EXPECT_TRUE(handle.socket()); 428 EXPECT_TRUE(handle.socket());
429 429
430 SSLClientSocket* ssl_socket = static_cast<SSLClientSocket*>(handle.socket()); 430 SSLClientSocket* ssl_socket = static_cast<SSLClientSocket*>(handle.socket());
431 EXPECT_TRUE(ssl_socket->was_npn_negotiated()); 431 EXPECT_TRUE(ssl_socket->was_npn_negotiated());
432 std::string proto; 432 std::string proto;
433 std::string server_protos; 433 std::string server_protos;
434 ssl_socket->GetNextProto(&proto, &server_protos); 434 ssl_socket->GetNextProto(&proto, &server_protos);
435 EXPECT_EQ(SSLClientSocket::NextProtoFromString(proto), 435 EXPECT_EQ(SSLClientSocket::NextProtoFromString(proto),
436 SSLClientSocket::kProtoSPDY2); 436 SSLClientSocket::kProtoSPDY21);
437 } 437 }
438 438
439 TEST_F(SSLClientSocketPoolTest, SOCKSFail) { 439 TEST_F(SSLClientSocketPoolTest, SOCKSFail) {
440 StaticSocketDataProvider data; 440 StaticSocketDataProvider data;
441 data.set_connect_data(MockConnect(false, ERR_CONNECTION_FAILED)); 441 data.set_connect_data(MockConnect(false, ERR_CONNECTION_FAILED));
442 socket_factory_.AddSocketDataProvider(&data); 442 socket_factory_.AddSocketDataProvider(&data);
443 443
444 CreatePool(false, true /* http proxy pool */, true /* socks pool */); 444 CreatePool(false, true /* http proxy pool */, true /* socks pool */);
445 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_SOCKS5, 445 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_SOCKS5,
446 false); 446 false);
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after
702 702
703 MockRead reads[] = { 703 MockRead reads[] = {
704 MockRead(true, ERR_IO_PENDING), 704 MockRead(true, ERR_IO_PENDING),
705 }; 705 };
706 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0); 706 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0);
707 socket_factory_.AddSocketDataProvider(&data); 707 socket_factory_.AddSocketDataProvider(&data);
708 SSLSocketDataProvider ssl(true, OK); 708 SSLSocketDataProvider ssl(true, OK);
709 ssl.cert = X509Certificate::CreateFromBytes( 709 ssl.cert = X509Certificate::CreateFromBytes(
710 reinterpret_cast<const char*>(webkit_der), sizeof(webkit_der)); 710 reinterpret_cast<const char*>(webkit_der), sizeof(webkit_der));
711 ssl.next_proto_status = SSLClientSocket::kNextProtoNegotiated; 711 ssl.next_proto_status = SSLClientSocket::kNextProtoNegotiated;
712 ssl.next_proto = "spdy/2"; 712 ssl.next_proto = "spdy/2.1";
713 ssl.protocol_negotiated = SSLClientSocket::kProtoSPDY2; 713 ssl.protocol_negotiated = SSLClientSocket::kProtoSPDY21;
714 socket_factory_.AddSSLSocketDataProvider(&ssl); 714 socket_factory_.AddSSLSocketDataProvider(&ssl);
715 715
716 CreatePool(true /* tcp pool */, false, false); 716 CreatePool(true /* tcp pool */, false, false);
717 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT, 717 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT,
718 true); 718 true);
719 719
720 scoped_ptr<ClientSocketHandle> handle(new ClientSocketHandle()); 720 scoped_ptr<ClientSocketHandle> handle(new ClientSocketHandle());
721 TestCompletionCallback callback; 721 TestCompletionCallback callback;
722 int rv = handle->Init( 722 int rv = handle->Init(
723 "a", params, MEDIUM, callback.callback(), pool_.get(), BoundNetLog()); 723 "a", params, MEDIUM, callback.callback(), pool_.get(), BoundNetLog());
724 EXPECT_EQ(ERR_IO_PENDING, rv); 724 EXPECT_EQ(ERR_IO_PENDING, rv);
725 EXPECT_FALSE(handle->is_initialized()); 725 EXPECT_FALSE(handle->is_initialized());
726 EXPECT_FALSE(handle->socket()); 726 EXPECT_FALSE(handle->socket());
727 727
728 EXPECT_EQ(OK, callback.WaitForResult()); 728 EXPECT_EQ(OK, callback.WaitForResult());
729 EXPECT_TRUE(handle->is_initialized()); 729 EXPECT_TRUE(handle->is_initialized());
730 EXPECT_TRUE(handle->socket()); 730 EXPECT_TRUE(handle->socket());
731 731
732 SSLClientSocket* ssl_socket = static_cast<SSLClientSocket*>(handle->socket()); 732 SSLClientSocket* ssl_socket = static_cast<SSLClientSocket*>(handle->socket());
733 EXPECT_TRUE(ssl_socket->was_npn_negotiated()); 733 EXPECT_TRUE(ssl_socket->was_npn_negotiated());
734 std::string proto; 734 std::string proto;
735 std::string server_protos; 735 std::string server_protos;
736 ssl_socket->GetNextProto(&proto, &server_protos); 736 ssl_socket->GetNextProto(&proto, &server_protos);
737 EXPECT_EQ(SSLClientSocket::NextProtoFromString(proto), 737 EXPECT_EQ(SSLClientSocket::NextProtoFromString(proto),
738 SSLClientSocket::kProtoSPDY2); 738 SSLClientSocket::kProtoSPDY21);
739 739
740 // TODO(rtenneti): MockClientSocket::GetPeerAddress returns 0 as the port 740 // TODO(rtenneti): MockClientSocket::GetPeerAddress returns 0 as the port
741 // number. Fix it to return port 80 and then use GetPeerAddress to AddAlias. 741 // number. Fix it to return port 80 and then use GetPeerAddress to AddAlias.
742 const addrinfo* address = test_hosts[0].addresses.head(); 742 const addrinfo* address = test_hosts[0].addresses.head();
743 SpdySessionPoolPeer pool_peer(session_->spdy_session_pool()); 743 SpdySessionPoolPeer pool_peer(session_->spdy_session_pool());
744 pool_peer.AddAlias(address, test_hosts[0].pair); 744 pool_peer.AddAlias(address, test_hosts[0].pair);
745 745
746 scoped_refptr<SpdySession> spdy_session; 746 scoped_refptr<SpdySession> spdy_session;
747 rv = session_->spdy_session_pool()->GetSpdySessionFromSocket( 747 rv = session_->spdy_session_pool()->GetSpdySessionFromSocket(
748 test_hosts[0].pair, handle.release(), BoundNetLog(), 0, 748 test_hosts[0].pair, handle.release(), BoundNetLog(), 0,
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
790 790
791 MockRead reads[] = { 791 MockRead reads[] = {
792 MockRead(true, ERR_IO_PENDING), 792 MockRead(true, ERR_IO_PENDING),
793 }; 793 };
794 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0); 794 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0);
795 socket_factory_.AddSocketDataProvider(&data); 795 socket_factory_.AddSocketDataProvider(&data);
796 SSLSocketDataProvider ssl(true, OK); 796 SSLSocketDataProvider ssl(true, OK);
797 ssl.cert = X509Certificate::CreateFromBytes( 797 ssl.cert = X509Certificate::CreateFromBytes(
798 reinterpret_cast<const char*>(webkit_der), sizeof(webkit_der)); 798 reinterpret_cast<const char*>(webkit_der), sizeof(webkit_der));
799 ssl.next_proto_status = SSLClientSocket::kNextProtoNegotiated; 799 ssl.next_proto_status = SSLClientSocket::kNextProtoNegotiated;
800 ssl.next_proto = "spdy/2"; 800 ssl.next_proto = "spdy/2.1";
801 ssl.client_cert_sent = true; 801 ssl.client_cert_sent = true;
802 ssl.protocol_negotiated = SSLClientSocket::kProtoSPDY2; 802 ssl.protocol_negotiated = SSLClientSocket::kProtoSPDY21;
803 socket_factory_.AddSSLSocketDataProvider(&ssl); 803 socket_factory_.AddSSLSocketDataProvider(&ssl);
804 804
805 CreatePool(true /* tcp pool */, false, false); 805 CreatePool(true /* tcp pool */, false, false);
806 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT, 806 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT,
807 true); 807 true);
808 808
809 scoped_ptr<ClientSocketHandle> handle(new ClientSocketHandle()); 809 scoped_ptr<ClientSocketHandle> handle(new ClientSocketHandle());
810 rv = handle->Init( 810 rv = handle->Init(
811 "a", params, MEDIUM, callback.callback(), pool_.get(), BoundNetLog()); 811 "a", params, MEDIUM, callback.callback(), pool_.get(), BoundNetLog());
812 EXPECT_EQ(ERR_IO_PENDING, rv); 812 EXPECT_EQ(ERR_IO_PENDING, rv);
813 EXPECT_FALSE(handle->is_initialized()); 813 EXPECT_FALSE(handle->is_initialized());
814 EXPECT_FALSE(handle->socket()); 814 EXPECT_FALSE(handle->socket());
815 815
816 EXPECT_EQ(OK, callback.WaitForResult()); 816 EXPECT_EQ(OK, callback.WaitForResult());
817 EXPECT_TRUE(handle->is_initialized()); 817 EXPECT_TRUE(handle->is_initialized());
818 EXPECT_TRUE(handle->socket()); 818 EXPECT_TRUE(handle->socket());
819 819
820 SSLClientSocket* ssl_socket = static_cast<SSLClientSocket*>(handle->socket()); 820 SSLClientSocket* ssl_socket = static_cast<SSLClientSocket*>(handle->socket());
821 EXPECT_TRUE(ssl_socket->was_npn_negotiated()); 821 EXPECT_TRUE(ssl_socket->was_npn_negotiated());
822 std::string proto; 822 std::string proto;
823 std::string server_protos; 823 std::string server_protos;
824 ssl_socket->GetNextProto(&proto, &server_protos); 824 ssl_socket->GetNextProto(&proto, &server_protos);
825 EXPECT_EQ(SSLClientSocket::NextProtoFromString(proto), 825 EXPECT_EQ(SSLClientSocket::NextProtoFromString(proto),
826 SSLClientSocket::kProtoSPDY2); 826 SSLClientSocket::kProtoSPDY21);
827 827
828 // TODO(rtenneti): MockClientSocket::GetPeerAddress returns 0 as the port 828 // TODO(rtenneti): MockClientSocket::GetPeerAddress returns 0 as the port
829 // number. Fix it to return port 80 and then use GetPeerAddress to AddAlias. 829 // number. Fix it to return port 80 and then use GetPeerAddress to AddAlias.
830 const addrinfo* address = test_hosts[0].addresses.head(); 830 const addrinfo* address = test_hosts[0].addresses.head();
831 SpdySessionPoolPeer pool_peer(session_->spdy_session_pool()); 831 SpdySessionPoolPeer pool_peer(session_->spdy_session_pool());
832 pool_peer.AddAlias(address, test_hosts[0].pair); 832 pool_peer.AddAlias(address, test_hosts[0].pair);
833 833
834 scoped_refptr<SpdySession> spdy_session; 834 scoped_refptr<SpdySession> spdy_session;
835 rv = session_->spdy_session_pool()->GetSpdySessionFromSocket( 835 rv = session_->spdy_session_pool()->GetSpdySessionFromSocket(
836 test_hosts[0].pair, handle.release(), BoundNetLog(), 0, 836 test_hosts[0].pair, handle.release(), BoundNetLog(), 0,
837 &spdy_session, true); 837 &spdy_session, true);
838 EXPECT_EQ(0, rv); 838 EXPECT_EQ(0, rv);
839 839
840 EXPECT_TRUE(session_->spdy_session_pool()->HasSession(test_hosts[0].pair)); 840 EXPECT_TRUE(session_->spdy_session_pool()->HasSession(test_hosts[0].pair));
841 EXPECT_FALSE(session_->spdy_session_pool()->HasSession(test_hosts[1].pair)); 841 EXPECT_FALSE(session_->spdy_session_pool()->HasSession(test_hosts[1].pair));
842 842
843 session_->spdy_session_pool()->CloseAllSessions(); 843 session_->spdy_session_pool()->CloseAllSessions();
844 } 844 }
845 845
846 // It would be nice to also test the timeouts in SSLClientSocketPool. 846 // It would be nice to also test the timeouts in SSLClientSocketPool.
847 847
848 } // namespace 848 } // namespace
849 849
850 } // namespace net 850 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_stream_factory_impl.cc ('k') | net/spdy/spdy_network_transaction_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698