// 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 #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 pool); void SetSocketPoolForHTTPProxy( const HostPortPair& http_proxy, std::unique_ptr pool); void SetSocketPoolForSSLWithProxy(const HostPortPair& proxy_server, std::unique_ptr 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 SocketPoolInfoToValue() const override; void DumpMemoryStats( base::trace_event::ProcessMemoryDump* pmd, const std::string& parent_dump_absolute_name) const override; private: using TransportSocketPoolMap = std::map>; using SOCKSSocketPoolMap = std::map>; using HTTPProxySocketPoolMap = std::map>; using SSLSocketPoolMap = std::map>; std::unique_ptr transport_socket_pool_; std::unique_ptr 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_