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

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

Issue 10005041: Remove SPDY 2.1 support. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove references to deleted flags from chrome/browser Created 8 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 | Annotate | Revision Log
« no previous file with comments | « net/socket/ssl_client_socket_pool.cc ('k') | net/spdy/spdy_http_stream.h » ('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/http/http_proxy_client_socket_pool.h" 5 #include "net/http/http_proxy_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 342 matching lines...) Expand 10 before | Expand all | Expand 10 after
353 EXPECT_EQ(ERR_NPN_NEGOTIATION_FAILED, callback.WaitForResult()); 353 EXPECT_EQ(ERR_NPN_NEGOTIATION_FAILED, callback.WaitForResult());
354 EXPECT_FALSE(handle.is_initialized()); 354 EXPECT_FALSE(handle.is_initialized());
355 EXPECT_FALSE(handle.socket()); 355 EXPECT_FALSE(handle.socket());
356 EXPECT_TRUE(handle.is_ssl_error()); 356 EXPECT_TRUE(handle.is_ssl_error());
357 } 357 }
358 358
359 TEST_F(SSLClientSocketPoolTest, DirectGotSPDY) { 359 TEST_F(SSLClientSocketPoolTest, DirectGotSPDY) {
360 StaticSocketDataProvider data; 360 StaticSocketDataProvider data;
361 socket_factory_.AddSocketDataProvider(&data); 361 socket_factory_.AddSocketDataProvider(&data);
362 SSLSocketDataProvider ssl(ASYNC, OK); 362 SSLSocketDataProvider ssl(ASYNC, OK);
363 ssl.SetNextProto(kProtoSPDY21); 363 ssl.SetNextProto(kProtoSPDY2);
364 socket_factory_.AddSSLSocketDataProvider(&ssl); 364 socket_factory_.AddSSLSocketDataProvider(&ssl);
365 365
366 CreatePool(true /* tcp pool */, false, false); 366 CreatePool(true /* tcp pool */, false, false);
367 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT, 367 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT,
368 true); 368 true);
369 369
370 ClientSocketHandle handle; 370 ClientSocketHandle handle;
371 TestCompletionCallback callback; 371 TestCompletionCallback callback;
372 int rv = handle.Init( 372 int rv = handle.Init(
373 "a", params, MEDIUM, callback.callback(), pool_.get(), BoundNetLog()); 373 "a", params, MEDIUM, callback.callback(), pool_.get(), BoundNetLog());
374 EXPECT_EQ(ERR_IO_PENDING, rv); 374 EXPECT_EQ(ERR_IO_PENDING, rv);
375 EXPECT_FALSE(handle.is_initialized()); 375 EXPECT_FALSE(handle.is_initialized());
376 EXPECT_FALSE(handle.socket()); 376 EXPECT_FALSE(handle.socket());
377 377
378 EXPECT_EQ(OK, callback.WaitForResult()); 378 EXPECT_EQ(OK, callback.WaitForResult());
379 EXPECT_TRUE(handle.is_initialized()); 379 EXPECT_TRUE(handle.is_initialized());
380 EXPECT_TRUE(handle.socket()); 380 EXPECT_TRUE(handle.socket());
381 381
382 SSLClientSocket* ssl_socket = static_cast<SSLClientSocket*>(handle.socket()); 382 SSLClientSocket* ssl_socket = static_cast<SSLClientSocket*>(handle.socket());
383 EXPECT_TRUE(ssl_socket->was_npn_negotiated()); 383 EXPECT_TRUE(ssl_socket->was_npn_negotiated());
384 std::string proto; 384 std::string proto;
385 std::string server_protos; 385 std::string server_protos;
386 ssl_socket->GetNextProto(&proto, &server_protos); 386 ssl_socket->GetNextProto(&proto, &server_protos);
387 EXPECT_EQ(SSLClientSocket::NextProtoFromString(proto), 387 EXPECT_EQ(SSLClientSocket::NextProtoFromString(proto),
388 kProtoSPDY21); 388 kProtoSPDY2);
389 } 389 }
390 390
391 TEST_F(SSLClientSocketPoolTest, DirectGotBonusSPDY) { 391 TEST_F(SSLClientSocketPoolTest, DirectGotBonusSPDY) {
392 StaticSocketDataProvider data; 392 StaticSocketDataProvider data;
393 socket_factory_.AddSocketDataProvider(&data); 393 socket_factory_.AddSocketDataProvider(&data);
394 SSLSocketDataProvider ssl(ASYNC, OK); 394 SSLSocketDataProvider ssl(ASYNC, OK);
395 ssl.SetNextProto(kProtoSPDY21); 395 ssl.SetNextProto(kProtoSPDY2);
396 socket_factory_.AddSSLSocketDataProvider(&ssl); 396 socket_factory_.AddSSLSocketDataProvider(&ssl);
397 397
398 CreatePool(true /* tcp pool */, false, false); 398 CreatePool(true /* tcp pool */, false, false);
399 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT, 399 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT,
400 true); 400 true);
401 401
402 ClientSocketHandle handle; 402 ClientSocketHandle handle;
403 TestCompletionCallback callback; 403 TestCompletionCallback callback;
404 int rv = handle.Init( 404 int rv = handle.Init(
405 "a", params, MEDIUM, callback.callback(), pool_.get(), BoundNetLog()); 405 "a", params, MEDIUM, callback.callback(), pool_.get(), BoundNetLog());
406 EXPECT_EQ(ERR_IO_PENDING, rv); 406 EXPECT_EQ(ERR_IO_PENDING, rv);
407 EXPECT_FALSE(handle.is_initialized()); 407 EXPECT_FALSE(handle.is_initialized());
408 EXPECT_FALSE(handle.socket()); 408 EXPECT_FALSE(handle.socket());
409 409
410 EXPECT_EQ(OK, callback.WaitForResult()); 410 EXPECT_EQ(OK, callback.WaitForResult());
411 EXPECT_TRUE(handle.is_initialized()); 411 EXPECT_TRUE(handle.is_initialized());
412 EXPECT_TRUE(handle.socket()); 412 EXPECT_TRUE(handle.socket());
413 413
414 SSLClientSocket* ssl_socket = static_cast<SSLClientSocket*>(handle.socket()); 414 SSLClientSocket* ssl_socket = static_cast<SSLClientSocket*>(handle.socket());
415 EXPECT_TRUE(ssl_socket->was_npn_negotiated()); 415 EXPECT_TRUE(ssl_socket->was_npn_negotiated());
416 std::string proto; 416 std::string proto;
417 std::string server_protos; 417 std::string server_protos;
418 ssl_socket->GetNextProto(&proto, &server_protos); 418 ssl_socket->GetNextProto(&proto, &server_protos);
419 EXPECT_EQ(SSLClientSocket::NextProtoFromString(proto), 419 EXPECT_EQ(SSLClientSocket::NextProtoFromString(proto),
420 kProtoSPDY21); 420 kProtoSPDY2);
421 } 421 }
422 422
423 TEST_F(SSLClientSocketPoolTest, SOCKSFail) { 423 TEST_F(SSLClientSocketPoolTest, SOCKSFail) {
424 StaticSocketDataProvider data; 424 StaticSocketDataProvider data;
425 data.set_connect_data(MockConnect(SYNCHRONOUS, ERR_CONNECTION_FAILED)); 425 data.set_connect_data(MockConnect(SYNCHRONOUS, ERR_CONNECTION_FAILED));
426 socket_factory_.AddSocketDataProvider(&data); 426 socket_factory_.AddSocketDataProvider(&data);
427 427
428 CreatePool(false, true /* http proxy pool */, true /* socks pool */); 428 CreatePool(false, true /* http proxy pool */, true /* socks pool */);
429 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_SOCKS5, 429 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_SOCKS5,
430 false); 430 false);
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
685 } 685 }
686 686
687 MockRead reads[] = { 687 MockRead reads[] = {
688 MockRead(ASYNC, ERR_IO_PENDING), 688 MockRead(ASYNC, ERR_IO_PENDING),
689 }; 689 };
690 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0); 690 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0);
691 socket_factory_.AddSocketDataProvider(&data); 691 socket_factory_.AddSocketDataProvider(&data);
692 SSLSocketDataProvider ssl(ASYNC, OK); 692 SSLSocketDataProvider ssl(ASYNC, OK);
693 ssl.cert = X509Certificate::CreateFromBytes( 693 ssl.cert = X509Certificate::CreateFromBytes(
694 reinterpret_cast<const char*>(webkit_der), sizeof(webkit_der)); 694 reinterpret_cast<const char*>(webkit_der), sizeof(webkit_der));
695 ssl.SetNextProto(kProtoSPDY21); 695 ssl.SetNextProto(kProtoSPDY2);
696 socket_factory_.AddSSLSocketDataProvider(&ssl); 696 socket_factory_.AddSSLSocketDataProvider(&ssl);
697 697
698 CreatePool(true /* tcp pool */, false, false); 698 CreatePool(true /* tcp pool */, false, false);
699 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT, 699 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT,
700 true); 700 true);
701 701
702 scoped_ptr<ClientSocketHandle> handle(new ClientSocketHandle()); 702 scoped_ptr<ClientSocketHandle> handle(new ClientSocketHandle());
703 TestCompletionCallback callback; 703 TestCompletionCallback callback;
704 int rv = handle->Init( 704 int rv = handle->Init(
705 "a", params, MEDIUM, callback.callback(), pool_.get(), BoundNetLog()); 705 "a", params, MEDIUM, callback.callback(), pool_.get(), BoundNetLog());
706 EXPECT_EQ(ERR_IO_PENDING, rv); 706 EXPECT_EQ(ERR_IO_PENDING, rv);
707 EXPECT_FALSE(handle->is_initialized()); 707 EXPECT_FALSE(handle->is_initialized());
708 EXPECT_FALSE(handle->socket()); 708 EXPECT_FALSE(handle->socket());
709 709
710 EXPECT_EQ(OK, callback.WaitForResult()); 710 EXPECT_EQ(OK, callback.WaitForResult());
711 EXPECT_TRUE(handle->is_initialized()); 711 EXPECT_TRUE(handle->is_initialized());
712 EXPECT_TRUE(handle->socket()); 712 EXPECT_TRUE(handle->socket());
713 713
714 SSLClientSocket* ssl_socket = static_cast<SSLClientSocket*>(handle->socket()); 714 SSLClientSocket* ssl_socket = static_cast<SSLClientSocket*>(handle->socket());
715 EXPECT_TRUE(ssl_socket->was_npn_negotiated()); 715 EXPECT_TRUE(ssl_socket->was_npn_negotiated());
716 std::string proto; 716 std::string proto;
717 std::string server_protos; 717 std::string server_protos;
718 ssl_socket->GetNextProto(&proto, &server_protos); 718 ssl_socket->GetNextProto(&proto, &server_protos);
719 EXPECT_EQ(SSLClientSocket::NextProtoFromString(proto), 719 EXPECT_EQ(SSLClientSocket::NextProtoFromString(proto),
720 kProtoSPDY21); 720 kProtoSPDY2);
721 721
722 // TODO(rtenneti): MockClientSocket::GetPeerAddress returns 0 as the port 722 // TODO(rtenneti): MockClientSocket::GetPeerAddress returns 0 as the port
723 // number. Fix it to return port 80 and then use GetPeerAddress to AddAlias. 723 // number. Fix it to return port 80 and then use GetPeerAddress to AddAlias.
724 const addrinfo* address = test_hosts[0].addresses.head(); 724 const addrinfo* address = test_hosts[0].addresses.head();
725 SpdySessionPoolPeer pool_peer(session_->spdy_session_pool()); 725 SpdySessionPoolPeer pool_peer(session_->spdy_session_pool());
726 pool_peer.AddAlias(address, test_hosts[0].pair); 726 pool_peer.AddAlias(address, test_hosts[0].pair);
727 727
728 scoped_refptr<SpdySession> spdy_session; 728 scoped_refptr<SpdySession> spdy_session;
729 rv = session_->spdy_session_pool()->GetSpdySessionFromSocket( 729 rv = session_->spdy_session_pool()->GetSpdySessionFromSocket(
730 test_hosts[0].pair, handle.release(), BoundNetLog(), 0, 730 test_hosts[0].pair, handle.release(), BoundNetLog(), 0,
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
772 772
773 MockRead reads[] = { 773 MockRead reads[] = {
774 MockRead(ASYNC, ERR_IO_PENDING), 774 MockRead(ASYNC, ERR_IO_PENDING),
775 }; 775 };
776 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0); 776 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0);
777 socket_factory_.AddSocketDataProvider(&data); 777 socket_factory_.AddSocketDataProvider(&data);
778 SSLSocketDataProvider ssl(ASYNC, OK); 778 SSLSocketDataProvider ssl(ASYNC, OK);
779 ssl.cert = X509Certificate::CreateFromBytes( 779 ssl.cert = X509Certificate::CreateFromBytes(
780 reinterpret_cast<const char*>(webkit_der), sizeof(webkit_der)); 780 reinterpret_cast<const char*>(webkit_der), sizeof(webkit_der));
781 ssl.client_cert_sent = true; 781 ssl.client_cert_sent = true;
782 ssl.SetNextProto(kProtoSPDY21); 782 ssl.SetNextProto(kProtoSPDY2);
783 socket_factory_.AddSSLSocketDataProvider(&ssl); 783 socket_factory_.AddSSLSocketDataProvider(&ssl);
784 784
785 CreatePool(true /* tcp pool */, false, false); 785 CreatePool(true /* tcp pool */, false, false);
786 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT, 786 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT,
787 true); 787 true);
788 788
789 scoped_ptr<ClientSocketHandle> handle(new ClientSocketHandle()); 789 scoped_ptr<ClientSocketHandle> handle(new ClientSocketHandle());
790 rv = handle->Init( 790 rv = handle->Init(
791 "a", params, MEDIUM, callback.callback(), pool_.get(), BoundNetLog()); 791 "a", params, MEDIUM, callback.callback(), pool_.get(), BoundNetLog());
792 EXPECT_EQ(ERR_IO_PENDING, rv); 792 EXPECT_EQ(ERR_IO_PENDING, rv);
793 EXPECT_FALSE(handle->is_initialized()); 793 EXPECT_FALSE(handle->is_initialized());
794 EXPECT_FALSE(handle->socket()); 794 EXPECT_FALSE(handle->socket());
795 795
796 EXPECT_EQ(OK, callback.WaitForResult()); 796 EXPECT_EQ(OK, callback.WaitForResult());
797 EXPECT_TRUE(handle->is_initialized()); 797 EXPECT_TRUE(handle->is_initialized());
798 EXPECT_TRUE(handle->socket()); 798 EXPECT_TRUE(handle->socket());
799 799
800 SSLClientSocket* ssl_socket = static_cast<SSLClientSocket*>(handle->socket()); 800 SSLClientSocket* ssl_socket = static_cast<SSLClientSocket*>(handle->socket());
801 EXPECT_TRUE(ssl_socket->was_npn_negotiated()); 801 EXPECT_TRUE(ssl_socket->was_npn_negotiated());
802 std::string proto; 802 std::string proto;
803 std::string server_protos; 803 std::string server_protos;
804 ssl_socket->GetNextProto(&proto, &server_protos); 804 ssl_socket->GetNextProto(&proto, &server_protos);
805 EXPECT_EQ(SSLClientSocket::NextProtoFromString(proto), 805 EXPECT_EQ(SSLClientSocket::NextProtoFromString(proto),
806 kProtoSPDY21); 806 kProtoSPDY2);
807 807
808 // TODO(rtenneti): MockClientSocket::GetPeerAddress returns 0 as the port 808 // TODO(rtenneti): MockClientSocket::GetPeerAddress returns 0 as the port
809 // number. Fix it to return port 80 and then use GetPeerAddress to AddAlias. 809 // number. Fix it to return port 80 and then use GetPeerAddress to AddAlias.
810 const addrinfo* address = test_hosts[0].addresses.head(); 810 const addrinfo* address = test_hosts[0].addresses.head();
811 SpdySessionPoolPeer pool_peer(session_->spdy_session_pool()); 811 SpdySessionPoolPeer pool_peer(session_->spdy_session_pool());
812 pool_peer.AddAlias(address, test_hosts[0].pair); 812 pool_peer.AddAlias(address, test_hosts[0].pair);
813 813
814 scoped_refptr<SpdySession> spdy_session; 814 scoped_refptr<SpdySession> spdy_session;
815 rv = session_->spdy_session_pool()->GetSpdySessionFromSocket( 815 rv = session_->spdy_session_pool()->GetSpdySessionFromSocket(
816 test_hosts[0].pair, handle.release(), BoundNetLog(), 0, 816 test_hosts[0].pair, handle.release(), BoundNetLog(), 0,
817 &spdy_session, true); 817 &spdy_session, true);
818 EXPECT_EQ(0, rv); 818 EXPECT_EQ(0, rv);
819 819
820 EXPECT_TRUE(session_->spdy_session_pool()->HasSession(test_hosts[0].pair)); 820 EXPECT_TRUE(session_->spdy_session_pool()->HasSession(test_hosts[0].pair));
821 EXPECT_FALSE(session_->spdy_session_pool()->HasSession(test_hosts[1].pair)); 821 EXPECT_FALSE(session_->spdy_session_pool()->HasSession(test_hosts[1].pair));
822 822
823 session_->spdy_session_pool()->CloseAllSessions(); 823 session_->spdy_session_pool()->CloseAllSessions();
824 } 824 }
825 825
826 // It would be nice to also test the timeouts in SSLClientSocketPool. 826 // It would be nice to also test the timeouts in SSLClientSocketPool.
827 827
828 } // namespace 828 } // namespace
829 829
830 } // namespace net 830 } // namespace net
OLDNEW
« no previous file with comments | « net/socket/ssl_client_socket_pool.cc ('k') | net/spdy/spdy_http_stream.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698