|  | // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #ifndef NET_SOCKET_MOCK_CLIENT_SOCKET_POOL_MANAGER_H_ | 
|  | #define NET_SOCKET_MOCK_CLIENT_SOCKET_POOL_MANAGER_H_ | 
|  |  | 
|  | #include <string> | 
|  |  | 
|  | #include "base/macros.h" | 
|  | #include "net/socket/client_socket_pool_manager.h" | 
|  | #include "net/socket/client_socket_pool_manager_impl.h" | 
|  |  | 
|  | namespace net { | 
|  |  | 
|  | class MockClientSocketPoolManager : public ClientSocketPoolManager { | 
|  | public: | 
|  | MockClientSocketPoolManager(); | 
|  | ~MockClientSocketPoolManager() override; | 
|  |  | 
|  | // Sets "override" socket pools that get used instead. | 
|  | void SetTransportSocketPool(TransportClientSocketPool* pool); | 
|  | void SetSSLSocketPool(SSLClientSocketPool* pool); | 
|  | void SetSocketPoolForSOCKSProxy(const HostPortPair& socks_proxy, | 
|  | std::unique_ptr<SOCKSClientSocketPool> pool); | 
|  | void SetSocketPoolForHTTPProxy( | 
|  | const HostPortPair& http_proxy, | 
|  | std::unique_ptr<HttpProxyClientSocketPool> pool); | 
|  | void SetSocketPoolForSSLWithProxy(const HostPortPair& proxy_server, | 
|  | std::unique_ptr<SSLClientSocketPool> pool); | 
|  |  | 
|  | // ClientSocketPoolManager methods: | 
|  | void FlushSocketPoolsWithError(int error) override; | 
|  | void CloseIdleSockets() override; | 
|  | TransportClientSocketPool* GetTransportSocketPool() override; | 
|  | SSLClientSocketPool* GetSSLSocketPool() override; | 
|  | SOCKSClientSocketPool* GetSocketPoolForSOCKSProxy( | 
|  | const HostPortPair& socks_proxy) override; | 
|  | HttpProxyClientSocketPool* GetSocketPoolForHTTPProxy( | 
|  | const HostPortPair& http_proxy) override; | 
|  | SSLClientSocketPool* GetSocketPoolForSSLWithProxy( | 
|  | const HostPortPair& proxy_server) override; | 
|  | std::unique_ptr<base::Value> SocketPoolInfoToValue() const override; | 
|  | void DumpMemoryStats( | 
|  | base::trace_event::ProcessMemoryDump* pmd, | 
|  | const std::string& parent_dump_absolute_name) const override; | 
|  |  | 
|  | private: | 
|  | using TransportSocketPoolMap = | 
|  | std::map<HostPortPair, std::unique_ptr<TransportClientSocketPool>>; | 
|  | using SOCKSSocketPoolMap = | 
|  | std::map<HostPortPair, std::unique_ptr<SOCKSClientSocketPool>>; | 
|  | using HTTPProxySocketPoolMap = | 
|  | std::map<HostPortPair, std::unique_ptr<HttpProxyClientSocketPool>>; | 
|  | using SSLSocketPoolMap = | 
|  | std::map<HostPortPair, std::unique_ptr<SSLClientSocketPool>>; | 
|  |  | 
|  | std::unique_ptr<TransportClientSocketPool> transport_socket_pool_; | 
|  | std::unique_ptr<SSLClientSocketPool> ssl_socket_pool_; | 
|  | SOCKSSocketPoolMap socks_socket_pools_; | 
|  | HTTPProxySocketPoolMap http_proxy_socket_pools_; | 
|  | SSLSocketPoolMap ssl_socket_pools_for_proxies_; | 
|  |  | 
|  | DISALLOW_COPY_AND_ASSIGN(MockClientSocketPoolManager); | 
|  | }; | 
|  |  | 
|  | }  // namespace net | 
|  |  | 
|  | #endif  // NET_SOCKET_MOCK_CLIENT_SOCKET_POOL_MANAGER_H_ |