| 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 |