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

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

Issue 1565303002: Change IPEndpoint::address() to return a net::IPAddress (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Feedback eroman Created 4 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/websocket_transport_client_socket_pool.h" 5 #include "net/socket/websocket_transport_client_socket_pool.h"
6 6
7 #include <queue> 7 #include <queue>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 552 matching lines...) Expand 10 before | Expand all | Expand 10 after
563 handle.Init("a", params_, LOW, callback.callback(), &pool, BoundNetLog()); 563 handle.Init("a", params_, LOW, callback.callback(), &pool, BoundNetLog());
564 EXPECT_EQ(ERR_IO_PENDING, rv); 564 EXPECT_EQ(ERR_IO_PENDING, rv);
565 EXPECT_FALSE(handle.is_initialized()); 565 EXPECT_FALSE(handle.is_initialized());
566 EXPECT_FALSE(handle.socket()); 566 EXPECT_FALSE(handle.socket());
567 567
568 EXPECT_EQ(OK, callback.WaitForResult()); 568 EXPECT_EQ(OK, callback.WaitForResult());
569 EXPECT_TRUE(handle.is_initialized()); 569 EXPECT_TRUE(handle.is_initialized());
570 EXPECT_TRUE(handle.socket()); 570 EXPECT_TRUE(handle.socket());
571 IPEndPoint endpoint; 571 IPEndPoint endpoint;
572 handle.socket()->GetLocalAddress(&endpoint); 572 handle.socket()->GetLocalAddress(&endpoint);
573 EXPECT_EQ(kIPv4AddressSize, endpoint.address().size()); 573 EXPECT_EQ(kIPv4AddressSize, endpoint.address().bytes().size());
574 EXPECT_EQ(2, client_socket_factory_.allocation_count()); 574 EXPECT_EQ(2, client_socket_factory_.allocation_count());
575 } 575 }
576 576
577 // Test the case of the IPv6 address being slow, thus falling back to trying to 577 // Test the case of the IPv6 address being slow, thus falling back to trying to
578 // connect to the IPv4 address, but having the connect to the IPv6 address 578 // connect to the IPv4 address, but having the connect to the IPv6 address
579 // finish first. 579 // finish first.
580 TEST_F(WebSocketTransportClientSocketPoolTest, 580 TEST_F(WebSocketTransportClientSocketPoolTest,
581 IPv6FallbackSocketIPv6FinishesFirst) { 581 IPv6FallbackSocketIPv6FinishesFirst) {
582 WebSocketTransportClientSocketPool pool(kMaxSockets, 582 WebSocketTransportClientSocketPool pool(kMaxSockets,
583 kMaxSocketsPerGroup, 583 kMaxSocketsPerGroup,
(...skipping 21 matching lines...) Expand all
605 handle.Init("a", params_, LOW, callback.callback(), &pool, BoundNetLog()); 605 handle.Init("a", params_, LOW, callback.callback(), &pool, BoundNetLog());
606 EXPECT_EQ(ERR_IO_PENDING, rv); 606 EXPECT_EQ(ERR_IO_PENDING, rv);
607 EXPECT_FALSE(handle.is_initialized()); 607 EXPECT_FALSE(handle.is_initialized());
608 EXPECT_FALSE(handle.socket()); 608 EXPECT_FALSE(handle.socket());
609 609
610 EXPECT_EQ(OK, callback.WaitForResult()); 610 EXPECT_EQ(OK, callback.WaitForResult());
611 EXPECT_TRUE(handle.is_initialized()); 611 EXPECT_TRUE(handle.is_initialized());
612 EXPECT_TRUE(handle.socket()); 612 EXPECT_TRUE(handle.socket());
613 IPEndPoint endpoint; 613 IPEndPoint endpoint;
614 handle.socket()->GetLocalAddress(&endpoint); 614 handle.socket()->GetLocalAddress(&endpoint);
615 EXPECT_EQ(kIPv6AddressSize, endpoint.address().size()); 615 EXPECT_EQ(kIPv6AddressSize, endpoint.address().bytes().size());
616 EXPECT_EQ(2, client_socket_factory_.allocation_count()); 616 EXPECT_EQ(2, client_socket_factory_.allocation_count());
617 } 617 }
618 618
619 TEST_F(WebSocketTransportClientSocketPoolTest, 619 TEST_F(WebSocketTransportClientSocketPoolTest,
620 IPv6NoIPv4AddressesToFallbackTo) { 620 IPv6NoIPv4AddressesToFallbackTo) {
621 WebSocketTransportClientSocketPool pool(kMaxSockets, 621 WebSocketTransportClientSocketPool pool(kMaxSockets,
622 kMaxSocketsPerGroup, 622 kMaxSocketsPerGroup,
623 host_resolver_.get(), 623 host_resolver_.get(),
624 &client_socket_factory_, 624 &client_socket_factory_,
625 NULL); 625 NULL);
(...skipping 11 matching lines...) Expand all
637 handle.Init("a", params_, LOW, callback.callback(), &pool, BoundNetLog()); 637 handle.Init("a", params_, LOW, callback.callback(), &pool, BoundNetLog());
638 EXPECT_EQ(ERR_IO_PENDING, rv); 638 EXPECT_EQ(ERR_IO_PENDING, rv);
639 EXPECT_FALSE(handle.is_initialized()); 639 EXPECT_FALSE(handle.is_initialized());
640 EXPECT_FALSE(handle.socket()); 640 EXPECT_FALSE(handle.socket());
641 641
642 EXPECT_EQ(OK, callback.WaitForResult()); 642 EXPECT_EQ(OK, callback.WaitForResult());
643 EXPECT_TRUE(handle.is_initialized()); 643 EXPECT_TRUE(handle.is_initialized());
644 EXPECT_TRUE(handle.socket()); 644 EXPECT_TRUE(handle.socket());
645 IPEndPoint endpoint; 645 IPEndPoint endpoint;
646 handle.socket()->GetLocalAddress(&endpoint); 646 handle.socket()->GetLocalAddress(&endpoint);
647 EXPECT_EQ(kIPv6AddressSize, endpoint.address().size()); 647 EXPECT_EQ(kIPv6AddressSize, endpoint.address().bytes().size());
648 EXPECT_EQ(1, client_socket_factory_.allocation_count()); 648 EXPECT_EQ(1, client_socket_factory_.allocation_count());
649 } 649 }
650 650
651 TEST_F(WebSocketTransportClientSocketPoolTest, IPv4HasNoFallback) { 651 TEST_F(WebSocketTransportClientSocketPoolTest, IPv4HasNoFallback) {
652 WebSocketTransportClientSocketPool pool(kMaxSockets, 652 WebSocketTransportClientSocketPool pool(kMaxSockets,
653 kMaxSocketsPerGroup, 653 kMaxSocketsPerGroup,
654 host_resolver_.get(), 654 host_resolver_.get(),
655 &client_socket_factory_, 655 &client_socket_factory_,
656 NULL); 656 NULL);
657 657
658 client_socket_factory_.set_default_client_socket_type( 658 client_socket_factory_.set_default_client_socket_type(
659 MockTransportClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET); 659 MockTransportClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET);
660 660
661 // Resolve an AddressList with only IPv4 addresses. 661 // Resolve an AddressList with only IPv4 addresses.
662 host_resolver_->rules()->AddIPLiteralRule("*", "1.1.1.1", std::string()); 662 host_resolver_->rules()->AddIPLiteralRule("*", "1.1.1.1", std::string());
663 663
664 TestCompletionCallback callback; 664 TestCompletionCallback callback;
665 ClientSocketHandle handle; 665 ClientSocketHandle handle;
666 int rv = 666 int rv =
667 handle.Init("a", params_, LOW, callback.callback(), &pool, BoundNetLog()); 667 handle.Init("a", params_, LOW, callback.callback(), &pool, BoundNetLog());
668 EXPECT_EQ(ERR_IO_PENDING, rv); 668 EXPECT_EQ(ERR_IO_PENDING, rv);
669 EXPECT_FALSE(handle.is_initialized()); 669 EXPECT_FALSE(handle.is_initialized());
670 EXPECT_FALSE(handle.socket()); 670 EXPECT_FALSE(handle.socket());
671 671
672 EXPECT_EQ(OK, callback.WaitForResult()); 672 EXPECT_EQ(OK, callback.WaitForResult());
673 EXPECT_TRUE(handle.is_initialized()); 673 EXPECT_TRUE(handle.is_initialized());
674 EXPECT_TRUE(handle.socket()); 674 EXPECT_TRUE(handle.socket());
675 IPEndPoint endpoint; 675 IPEndPoint endpoint;
676 handle.socket()->GetLocalAddress(&endpoint); 676 handle.socket()->GetLocalAddress(&endpoint);
677 EXPECT_EQ(kIPv4AddressSize, endpoint.address().size()); 677 EXPECT_EQ(kIPv4AddressSize, endpoint.address().bytes().size());
678 EXPECT_EQ(1, client_socket_factory_.allocation_count()); 678 EXPECT_EQ(1, client_socket_factory_.allocation_count());
679 } 679 }
680 680
681 // If all IPv6 addresses fail to connect synchronously, then IPv4 connections 681 // If all IPv6 addresses fail to connect synchronously, then IPv4 connections
682 // proceeed immediately. 682 // proceeed immediately.
683 TEST_F(WebSocketTransportClientSocketPoolTest, IPv6InstantFail) { 683 TEST_F(WebSocketTransportClientSocketPoolTest, IPv6InstantFail) {
684 WebSocketTransportClientSocketPool pool(kMaxSockets, 684 WebSocketTransportClientSocketPool pool(kMaxSockets,
685 kMaxSocketsPerGroup, 685 kMaxSocketsPerGroup,
686 host_resolver_.get(), 686 host_resolver_.get(),
687 &client_socket_factory_, 687 &client_socket_factory_,
(...skipping 424 matching lines...) Expand 10 before | Expand all | Expand 10 after
1112 EXPECT_EQ(OK, request(1)->WaitForResult()); 1112 EXPECT_EQ(OK, request(1)->WaitForResult());
1113 // Third socket should still be waiting for endpoint. 1113 // Third socket should still be waiting for endpoint.
1114 ASSERT_FALSE(request(2)->handle()->is_initialized()); 1114 ASSERT_FALSE(request(2)->handle()->is_initialized());
1115 EXPECT_EQ(LOAD_STATE_WAITING_FOR_AVAILABLE_SOCKET, 1115 EXPECT_EQ(LOAD_STATE_WAITING_FOR_AVAILABLE_SOCKET,
1116 request(2)->handle()->GetLoadState()); 1116 request(2)->handle()->GetLoadState());
1117 } 1117 }
1118 1118
1119 } // namespace 1119 } // namespace
1120 1120
1121 } // namespace net 1121 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698