| Index: net/socket/tcp_client_socket_pool_unittest.cc
 | 
| diff --git a/net/socket/tcp_client_socket_pool_unittest.cc b/net/socket/tcp_client_socket_pool_unittest.cc
 | 
| index a41fb88df4b1f0e913fc1f17d9e4d0bdc77b5949..e7c8a9fc4fcfc11bff271d30a801fa46a7fdd704 100644
 | 
| --- a/net/socket/tcp_client_socket_pool_unittest.cc
 | 
| +++ b/net/socket/tcp_client_socket_pool_unittest.cc
 | 
| @@ -8,6 +8,7 @@
 | 
|  #include "base/compiler_specific.h"
 | 
|  #include "base/message_loop.h"
 | 
|  #include "net/base/mock_host_resolver.h"
 | 
| +#include "net/base/mock_network_change_notifier.h"
 | 
|  #include "net/base/net_errors.h"
 | 
|  #include "net/base/test_completion_callback.h"
 | 
|  #include "net/socket/client_socket.h"
 | 
| @@ -246,7 +247,8 @@ class TCPClientSocketPoolTest : public ClientSocketPoolTest {
 | 
|                                        kMaxSocketsPerGroup,
 | 
|                                        "TCPUnitTest",
 | 
|                                        host_resolver_,
 | 
| -                                      &client_socket_factory_)) {
 | 
| +                                      &client_socket_factory_,
 | 
| +                                      ¬ifier_)) {
 | 
|    }
 | 
|  
 | 
|    int StartRequest(const std::string& group_name, RequestPriority priority) {
 | 
| @@ -257,6 +259,7 @@ class TCPClientSocketPoolTest : public ClientSocketPoolTest {
 | 
|    TCPSocketParams ignored_socket_params_;
 | 
|    scoped_refptr<MockHostResolver> host_resolver_;
 | 
|    MockClientSocketFactory client_socket_factory_;
 | 
| +  MockNetworkChangeNotifier notifier_;
 | 
|    scoped_refptr<TCPClientSocketPool> pool_;
 | 
|  };
 | 
|  
 | 
| @@ -625,6 +628,32 @@ TEST_F(TCPClientSocketPoolTest, FailingActiveRequestWithPendingRequests) {
 | 
|      EXPECT_EQ(ERR_CONNECTION_FAILED, requests_[i]->WaitForResult());
 | 
|  }
 | 
|  
 | 
| +TEST_F(TCPClientSocketPoolTest, ResetIdleSocketsOnIPAddressChange) {
 | 
| +  TestCompletionCallback callback;
 | 
| +  ClientSocketHandle handle;
 | 
| +  TCPSocketParams dest("www.google.com", 80, LOW, GURL(), false);
 | 
| +  int rv = handle.Init("a", dest, LOW, &callback, pool_, NULL);
 | 
| +  EXPECT_EQ(ERR_IO_PENDING, rv);
 | 
| +  EXPECT_FALSE(handle.is_initialized());
 | 
| +  EXPECT_FALSE(handle.socket());
 | 
| +
 | 
| +  EXPECT_EQ(OK, callback.WaitForResult());
 | 
| +  EXPECT_TRUE(handle.is_initialized());
 | 
| +  EXPECT_TRUE(handle.socket());
 | 
| +
 | 
| +  handle.Reset();
 | 
| +
 | 
| +  // Need to run all pending to release the socket back to the pool.
 | 
| +  MessageLoop::current()->RunAllPending();
 | 
| +
 | 
| +  // Now we should have 1 idle socket.
 | 
| +  EXPECT_EQ(1, pool_->IdleSocketCount());
 | 
| +
 | 
| +  // After an IP address change, we should have 0 idle sockets.
 | 
| +  notifier_.NotifyIPAddressChange();
 | 
| +  EXPECT_EQ(0, pool_->IdleSocketCount());
 | 
| +}
 | 
| +
 | 
|  TEST_F(TCPClientSocketPoolTest, BackupSocketConnect) {
 | 
|    // Case 1 tests the first socket stalling, and the backup connecting.
 | 
|    MockClientSocketFactory::ClientSocketType case1_types[] = {
 | 
| 
 |