1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef NET_SOCKET_MOCK_CLIENT_SOCKET_POOL_MANAGER_H_ 6 #define NET_SOCKET_MOCK_CLIENT_SOCKET_POOL_MANAGER_H_ 7 8 #include "base/basictypes.h" 9 #include "net/socket/client_socket_pool_manager.h" 10 #include "net/socket/client_socket_pool_manager_impl.h" 11 12 namespace net { 13 14 class MockClientSocketPoolManager : public ClientSocketPoolManager { 15 public: 16 MockClientSocketPoolManager(); 17 virtual ~MockClientSocketPoolManager(); 18 19 // Sets "override" socket pools that get used instead. 20 void SetTransportSocketPool(TransportClientSocketPool* pool); 21 void SetSSLSocketPool(SSLClientSocketPool* pool); 22 void SetSocketPoolForSOCKSProxy(const HostPortPair& socks_proxy, 23 SOCKSClientSocketPool* pool); 24 void SetSocketPoolForHTTPProxy(const HostPortPair& http_proxy, 25 HttpProxyClientSocketPool* pool); 26 void SetSocketPoolForSSLWithProxy(const HostPortPair& proxy_server, 27 SSLClientSocketPool* pool); 28 29 // ClientSocketPoolManager methods: 30 virtual void FlushSocketPoolsWithError(int error) OVERRIDE; 31 virtual void CloseIdleSockets() OVERRIDE; 32 virtual TransportClientSocketPool* GetTransportSocketPool() OVERRIDE; 33 virtual SSLClientSocketPool* GetSSLSocketPool() OVERRIDE; 34 virtual SOCKSClientSocketPool* GetSocketPoolForSOCKSProxy( 35 const HostPortPair& socks_proxy) OVERRIDE; 36 virtual HttpProxyClientSocketPool* GetSocketPoolForHTTPProxy( 37 const HostPortPair& http_proxy) OVERRIDE; 38 virtual SSLClientSocketPool* GetSocketPoolForSSLWithProxy( 39 const HostPortPair& proxy_server) OVERRIDE; 40 virtual base::Value* SocketPoolInfoToValue() const OVERRIDE; 41 42 private: 43 typedef internal::OwnedPoolMap<HostPortPair, TransportClientSocketPool*> 44 TransportSocketPoolMap; 45 typedef internal::OwnedPoolMap<HostPortPair, SOCKSClientSocketPool*> 46 SOCKSSocketPoolMap; 47 typedef internal::OwnedPoolMap<HostPortPair, HttpProxyClientSocketPool*> 48 HTTPProxySocketPoolMap; 49 typedef internal::OwnedPoolMap<HostPortPair, SSLClientSocketPool*> 50 SSLSocketPoolMap; 51 52 scoped_ptr<TransportClientSocketPool> transport_socket_pool_; 53 scoped_ptr<SSLClientSocketPool> ssl_socket_pool_; 54 SOCKSSocketPoolMap socks_socket_pools_; 55 HTTPProxySocketPoolMap http_proxy_socket_pools_; 56 SSLSocketPoolMap ssl_socket_pools_for_proxies_; 57 58 DISALLOW_COPY_AND_ASSIGN(MockClientSocketPoolManager); 59 }; 60 61 } // namespace net 62 63 #endif // NET_SOCKET_MOCK_CLIENT_SOCKET_POOL_MANAGER_H_ 64