OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "net/http/http_network_transaction.h" | 5 #include "net/http/http_network_transaction.h" |
6 | 6 |
7 #include <math.h> // ceil | 7 #include <math.h> // ceil |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
76 | 76 |
77 // Helper to manage the lifetimes of the dependencies for a | 77 // Helper to manage the lifetimes of the dependencies for a |
78 // HttpNetworkTransaction. | 78 // HttpNetworkTransaction. |
79 struct SessionDependencies { | 79 struct SessionDependencies { |
80 // Default set of dependencies -- "null" proxy service. | 80 // Default set of dependencies -- "null" proxy service. |
81 SessionDependencies() | 81 SessionDependencies() |
82 : host_resolver(new MockHostResolver), | 82 : host_resolver(new MockHostResolver), |
83 proxy_service(ProxyService::CreateNull()), | 83 proxy_service(ProxyService::CreateNull()), |
84 ssl_config_service(new SSLConfigServiceDefaults), | 84 ssl_config_service(new SSLConfigServiceDefaults), |
85 http_auth_handler_factory(HttpAuthHandlerFactory::CreateDefault()), | 85 http_auth_handler_factory(HttpAuthHandlerFactory::CreateDefault()), |
86 spdy_session_pool(new SpdySessionPool(NULL)) {} | 86 spdy_session_pool(new SpdySessionPool()) {} |
87 | 87 |
88 // Custom proxy service dependency. | 88 // Custom proxy service dependency. |
89 explicit SessionDependencies(ProxyService* proxy_service) | 89 explicit SessionDependencies(ProxyService* proxy_service) |
90 : host_resolver(new MockHostResolver), | 90 : host_resolver(new MockHostResolver), |
91 proxy_service(proxy_service), | 91 proxy_service(proxy_service), |
92 ssl_config_service(new SSLConfigServiceDefaults), | 92 ssl_config_service(new SSLConfigServiceDefaults), |
93 http_auth_handler_factory(HttpAuthHandlerFactory::CreateDefault()), | 93 http_auth_handler_factory(HttpAuthHandlerFactory::CreateDefault()), |
94 spdy_session_pool(new SpdySessionPool(NULL)) {} | 94 spdy_session_pool(new SpdySessionPool()) {} |
95 | 95 |
96 scoped_refptr<MockHostResolverBase> host_resolver; | 96 scoped_refptr<MockHostResolverBase> host_resolver; |
97 scoped_refptr<ProxyService> proxy_service; | 97 scoped_refptr<ProxyService> proxy_service; |
98 scoped_refptr<SSLConfigService> ssl_config_service; | 98 scoped_refptr<SSLConfigService> ssl_config_service; |
99 MockClientSocketFactory socket_factory; | 99 MockClientSocketFactory socket_factory; |
100 scoped_ptr<HttpAuthHandlerFactory> http_auth_handler_factory; | 100 scoped_ptr<HttpAuthHandlerFactory> http_auth_handler_factory; |
101 scoped_refptr<SpdySessionPool> spdy_session_pool; | 101 scoped_refptr<SpdySessionPool> spdy_session_pool; |
102 }; | 102 }; |
103 | 103 |
104 ProxyService* CreateFixedProxyService(const std::string& proxy) { | 104 ProxyService* CreateFixedProxyService(const std::string& proxy) { |
105 net::ProxyConfig proxy_config; | 105 net::ProxyConfig proxy_config; |
106 proxy_config.proxy_rules().ParseFromString(proxy); | 106 proxy_config.proxy_rules().ParseFromString(proxy); |
107 return ProxyService::CreateFixed(proxy_config); | 107 return ProxyService::CreateFixed(proxy_config); |
108 } | 108 } |
109 | 109 |
110 HttpNetworkSession* CreateSession(SessionDependencies* session_deps) { | 110 HttpNetworkSession* CreateSession(SessionDependencies* session_deps) { |
111 return new HttpNetworkSession(NULL, | 111 return new HttpNetworkSession(session_deps->host_resolver, |
112 session_deps->host_resolver, | |
113 session_deps->proxy_service, | 112 session_deps->proxy_service, |
114 &session_deps->socket_factory, | 113 &session_deps->socket_factory, |
115 session_deps->ssl_config_service, | 114 session_deps->ssl_config_service, |
116 session_deps->spdy_session_pool, | 115 session_deps->spdy_session_pool, |
117 session_deps->http_auth_handler_factory.get(), | 116 session_deps->http_auth_handler_factory.get(), |
118 NULL, | 117 NULL, |
119 NULL); | 118 NULL); |
120 } | 119 } |
121 | 120 |
122 class HttpNetworkTransactionTest : public PlatformTest { | 121 class HttpNetworkTransactionTest : public PlatformTest { |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
234 | 233 |
235 std::string MockGetHostName() { | 234 std::string MockGetHostName() { |
236 return "WTC-WIN7"; | 235 return "WTC-WIN7"; |
237 } | 236 } |
238 | 237 |
239 template<typename EmulatedClientSocketPool> | 238 template<typename EmulatedClientSocketPool> |
240 class CaptureGroupNameSocketPool : public EmulatedClientSocketPool { | 239 class CaptureGroupNameSocketPool : public EmulatedClientSocketPool { |
241 public: | 240 public: |
242 explicit CaptureGroupNameSocketPool(HttpNetworkSession* session) | 241 explicit CaptureGroupNameSocketPool(HttpNetworkSession* session) |
243 : EmulatedClientSocketPool(0, 0, NULL, session->host_resolver(), NULL, | 242 : EmulatedClientSocketPool(0, 0, NULL, session->host_resolver(), NULL, |
244 NULL, NULL) {} | 243 NULL) { |
| 244 } |
245 const std::string last_group_name_received() const { | 245 const std::string last_group_name_received() const { |
246 return last_group_name_; | 246 return last_group_name_; |
247 } | 247 } |
248 | 248 |
249 virtual int RequestSocket(const std::string& group_name, | 249 virtual int RequestSocket(const std::string& group_name, |
250 const void* socket_params, | 250 const void* socket_params, |
251 RequestPriority priority, | 251 RequestPriority priority, |
252 ClientSocketHandle* handle, | 252 ClientSocketHandle* handle, |
253 CompletionCallback* callback, | 253 CompletionCallback* callback, |
254 const BoundNetLog& net_log) { | 254 const BoundNetLog& net_log) { |
(...skipping 4987 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5242 HttpNetworkTransaction::SetUseAlternateProtocols(true); | 5242 HttpNetworkTransaction::SetUseAlternateProtocols(true); |
5243 HttpNetworkTransaction::SetNextProtos( | 5243 HttpNetworkTransaction::SetNextProtos( |
5244 "\x08http/1.1\x07http1.1\x06spdy/1\x04spdy"); | 5244 "\x08http/1.1\x07http1.1\x06spdy/1\x04spdy"); |
5245 | 5245 |
5246 ProxyConfig proxy_config; | 5246 ProxyConfig proxy_config; |
5247 proxy_config.set_auto_detect(true); | 5247 proxy_config.set_auto_detect(true); |
5248 proxy_config.set_pac_url(GURL("http://fooproxyurl")); | 5248 proxy_config.set_pac_url(GURL("http://fooproxyurl")); |
5249 | 5249 |
5250 CapturingProxyResolver* capturing_proxy_resolver = | 5250 CapturingProxyResolver* capturing_proxy_resolver = |
5251 new CapturingProxyResolver(); | 5251 new CapturingProxyResolver(); |
5252 SessionDependencies session_deps( | 5252 SessionDependencies session_deps(new ProxyService( |
5253 new ProxyService(new ProxyConfigServiceFixed(proxy_config), | 5253 new ProxyConfigServiceFixed(proxy_config), capturing_proxy_resolver, |
5254 capturing_proxy_resolver, | 5254 NULL)); |
5255 NULL, | |
5256 NULL)); | |
5257 | 5255 |
5258 HttpRequestInfo request; | 5256 HttpRequestInfo request; |
5259 request.method = "GET"; | 5257 request.method = "GET"; |
5260 request.url = GURL("http://www.google.com/"); | 5258 request.url = GURL("http://www.google.com/"); |
5261 request.load_flags = 0; | 5259 request.load_flags = 0; |
5262 | 5260 |
5263 MockRead data_reads[] = { | 5261 MockRead data_reads[] = { |
5264 MockRead("HTTP/1.1 200 OK\r\n"), | 5262 MockRead("HTTP/1.1 200 OK\r\n"), |
5265 MockRead("Alternate-Protocol: 443:npn-spdy/1\r\n\r\n"), | 5263 MockRead("Alternate-Protocol: 443:npn-spdy/1\r\n\r\n"), |
5266 MockRead("hello world"), | 5264 MockRead("hello world"), |
(...skipping 872 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6139 scoped_ptr<HttpNetworkTransaction> trans(new HttpNetworkTransaction(session)); | 6137 scoped_ptr<HttpNetworkTransaction> trans(new HttpNetworkTransaction(session)); |
6140 | 6138 |
6141 int rv = trans->Start(&request, &callback, BoundNetLog()); | 6139 int rv = trans->Start(&request, &callback, BoundNetLog()); |
6142 EXPECT_EQ(ERR_IO_PENDING, rv); | 6140 EXPECT_EQ(ERR_IO_PENDING, rv); |
6143 EXPECT_EQ(ERR_CONNECTION_CLOSED, callback.WaitForResult()); | 6141 EXPECT_EQ(ERR_CONNECTION_CLOSED, callback.WaitForResult()); |
6144 | 6142 |
6145 HttpNetworkTransaction::SetNextProtos(""); | 6143 HttpNetworkTransaction::SetNextProtos(""); |
6146 HttpNetworkTransaction::SetUseAlternateProtocols(false); | 6144 HttpNetworkTransaction::SetUseAlternateProtocols(false); |
6147 } | 6145 } |
6148 } // namespace net | 6146 } // namespace net |
OLD | NEW |