• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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