Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(254)

Side by Side Diff: net/http/http_proxy_client_socket_pool_unittest.cc

Issue 1411383005: Initial implementation of RequestPriority-based HTTP/2 dependencies. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Tweaked comments and destruction notification vs. extra test util class. Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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_proxy_client_socket_pool.h" 5 #include "net/http/http_proxy_client_socket_pool.h"
6 6
7 #include "base/callback.h" 7 #include "base/callback.h"
8 #include "base/compiler_specific.h" 8 #include "base/compiler_specific.h"
9 #include "base/strings/string_util.h" 9 #include "base/strings/string_util.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
(...skipping 23 matching lines...) Expand all
34 34
35 enum HttpProxyType { 35 enum HttpProxyType {
36 HTTP, 36 HTTP,
37 HTTPS, 37 HTTPS,
38 SPDY 38 SPDY
39 }; 39 };
40 40
41 struct HttpProxyClientSocketPoolTestParams { 41 struct HttpProxyClientSocketPoolTestParams {
42 HttpProxyClientSocketPoolTestParams() 42 HttpProxyClientSocketPoolTestParams()
43 : proxy_type(HTTP), 43 : proxy_type(HTTP),
44 protocol(kProtoSPDY31) {} 44 protocol(kProtoSPDY31),
45 priority_to_dependency(false) {}
45 46
46 HttpProxyClientSocketPoolTestParams( 47 HttpProxyClientSocketPoolTestParams(HttpProxyType proxy_type,
47 HttpProxyType proxy_type, 48 NextProto protocol,
48 NextProto protocol) 49 bool priority_to_dependency)
49 : proxy_type(proxy_type), 50 : proxy_type(proxy_type),
50 protocol(protocol) {} 51 protocol(protocol),
52 priority_to_dependency(priority_to_dependency) {}
51 53
52 HttpProxyType proxy_type; 54 HttpProxyType proxy_type;
53 NextProto protocol; 55 NextProto protocol;
56 bool priority_to_dependency;
54 }; 57 };
55 58
56 typedef ::testing::TestWithParam<HttpProxyType> TestWithHttpParam; 59 typedef ::testing::TestWithParam<HttpProxyType> TestWithHttpParam;
57 60
58 const char kHttpProxyHost[] = "httpproxy.example.com"; 61 const char kHttpProxyHost[] = "httpproxy.example.com";
59 const char kHttpsProxyHost[] = "httpsproxy.example.com"; 62 const char kHttpsProxyHost[] = "httpsproxy.example.com";
60 63
61 class TestProxyDelegate : public ProxyDelegate { 64 class TestProxyDelegate : public ProxyDelegate {
62 public: 65 public:
63 TestProxyDelegate() 66 TestProxyDelegate()
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 bool on_before_tunnel_request_called_; 145 bool on_before_tunnel_request_called_;
143 bool on_tunnel_request_completed_called_; 146 bool on_tunnel_request_completed_called_;
144 bool on_tunnel_headers_received_called_; 147 bool on_tunnel_headers_received_called_;
145 HostPortPair on_tunnel_request_completed_endpoint_; 148 HostPortPair on_tunnel_request_completed_endpoint_;
146 HostPortPair on_tunnel_request_completed_proxy_server_; 149 HostPortPair on_tunnel_request_completed_proxy_server_;
147 HostPortPair on_tunnel_headers_received_origin_; 150 HostPortPair on_tunnel_headers_received_origin_;
148 HostPortPair on_tunnel_headers_received_proxy_server_; 151 HostPortPair on_tunnel_headers_received_proxy_server_;
149 std::string on_tunnel_headers_received_status_line_; 152 std::string on_tunnel_headers_received_status_line_;
150 }; 153 };
151 154
155 } // namespace
152 156
153 class HttpProxyClientSocketPoolTest 157 class HttpProxyClientSocketPoolTest
154 : public ::testing::TestWithParam<HttpProxyClientSocketPoolTestParams> { 158 : public ::testing::TestWithParam<HttpProxyClientSocketPoolTestParams> {
155 protected: 159 protected:
156 HttpProxyClientSocketPoolTest() 160 HttpProxyClientSocketPoolTest()
157 : session_deps_(GetParam().protocol), 161 : session_deps_(GetParam().protocol),
158 transport_socket_pool_(kMaxSockets, 162 transport_socket_pool_(kMaxSockets,
159 kMaxSocketsPerGroup, 163 kMaxSocketsPerGroup,
160 session_deps_.socket_factory.get()), 164 session_deps_.socket_factory.get()),
161 ssl_socket_pool_(kMaxSockets, 165 ssl_socket_pool_(kMaxSockets,
162 kMaxSocketsPerGroup, 166 kMaxSocketsPerGroup,
163 session_deps_.cert_verifier.get(), 167 session_deps_.cert_verifier.get(),
164 NULL /* channel_id_store */, 168 NULL /* channel_id_store */,
165 NULL /* transport_security_state */, 169 NULL /* transport_security_state */,
166 NULL /* cert_transparency_verifier */, 170 NULL /* cert_transparency_verifier */,
167 NULL /* cert_policy_enforcer */, 171 NULL /* cert_policy_enforcer */,
168 std::string() /* ssl_session_cache_shard */, 172 std::string() /* ssl_session_cache_shard */,
169 session_deps_.socket_factory.get(), 173 session_deps_.socket_factory.get(),
170 &transport_socket_pool_, 174 &transport_socket_pool_,
171 NULL, 175 NULL,
172 NULL, 176 NULL,
173 session_deps_.ssl_config_service.get(), 177 session_deps_.ssl_config_service.get(),
174 BoundNetLog().net_log()), 178 BoundNetLog().net_log()),
175 session_(CreateNetworkSession()), 179 session_(CreateNetworkSession()),
176 spdy_util_(GetParam().protocol), 180 spdy_util_(GetParam().protocol, GetParam().priority_to_dependency),
177 pool_(kMaxSockets, 181 pool_(kMaxSockets,
178 kMaxSocketsPerGroup, 182 kMaxSocketsPerGroup,
179 &transport_socket_pool_, 183 &transport_socket_pool_,
180 &ssl_socket_pool_, 184 &ssl_socket_pool_,
181 NULL) {} 185 NULL) {
186 SpdySession::SetPriorityDependencyDefaultForTesting(
187 GetParam().priority_to_dependency);
188 }
182 189
183 virtual ~HttpProxyClientSocketPoolTest() { 190 virtual ~HttpProxyClientSocketPoolTest() {
191 SpdySession::SetPriorityDependencyDefaultForTesting(false);
184 } 192 }
185 193
186 void AddAuthToCache() { 194 void AddAuthToCache() {
187 const base::string16 kFoo(base::ASCIIToUTF16("foo")); 195 const base::string16 kFoo(base::ASCIIToUTF16("foo"));
188 const base::string16 kBar(base::ASCIIToUTF16("bar")); 196 const base::string16 kBar(base::ASCIIToUTF16("bar"));
189 GURL proxy_url(GetParam().proxy_type == HTTP ? 197 GURL proxy_url(GetParam().proxy_type == HTTP ?
190 (std::string("http://") + kHttpProxyHost) : 198 (std::string("http://") + kHttpProxyHost) :
191 (std::string("https://") + kHttpsProxyHost)); 199 (std::string("https://") + kHttpsProxyHost));
192 session_->http_auth_cache()->Add(proxy_url, 200 session_->http_auth_cache()->Add(proxy_url,
193 "MyRealm1", 201 "MyRealm1",
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
316 324
317 //----------------------------------------------------------------------------- 325 //-----------------------------------------------------------------------------
318 // All tests are run with three different proxy types: HTTP, HTTPS (non-SPDY) 326 // All tests are run with three different proxy types: HTTP, HTTPS (non-SPDY)
319 // and SPDY. 327 // and SPDY.
320 // 328 //
321 // TODO(akalin): Use ::testing::Combine() when we are able to use 329 // TODO(akalin): Use ::testing::Combine() when we are able to use
322 // <tr1/tuple>. 330 // <tr1/tuple>.
323 INSTANTIATE_TEST_CASE_P( 331 INSTANTIATE_TEST_CASE_P(
324 HttpProxyClientSocketPoolTests, 332 HttpProxyClientSocketPoolTests,
325 HttpProxyClientSocketPoolTest, 333 HttpProxyClientSocketPoolTest,
326 ::testing::Values(HttpProxyClientSocketPoolTestParams(HTTP, kProtoSPDY31), 334 ::testing::Values(
327 HttpProxyClientSocketPoolTestParams(HTTPS, kProtoSPDY31), 335 HttpProxyClientSocketPoolTestParams(HTTP, kProtoSPDY31, false),
328 HttpProxyClientSocketPoolTestParams(SPDY, kProtoSPDY31), 336 HttpProxyClientSocketPoolTestParams(HTTPS, kProtoSPDY31, false),
329 HttpProxyClientSocketPoolTestParams(HTTP, kProtoHTTP2), 337 HttpProxyClientSocketPoolTestParams(SPDY, kProtoSPDY31, false),
330 HttpProxyClientSocketPoolTestParams(HTTPS, kProtoHTTP2), 338 HttpProxyClientSocketPoolTestParams(HTTP, kProtoHTTP2, false),
331 HttpProxyClientSocketPoolTestParams(SPDY, kProtoHTTP2))); 339 HttpProxyClientSocketPoolTestParams(HTTP, kProtoHTTP2, true),
340 HttpProxyClientSocketPoolTestParams(HTTPS, kProtoHTTP2, false),
341 HttpProxyClientSocketPoolTestParams(HTTPS, kProtoHTTP2, true),
342 HttpProxyClientSocketPoolTestParams(SPDY, kProtoHTTP2, false),
343 HttpProxyClientSocketPoolTestParams(SPDY, kProtoHTTP2, true)));
332 344
333 TEST_P(HttpProxyClientSocketPoolTest, NoTunnel) { 345 TEST_P(HttpProxyClientSocketPoolTest, NoTunnel) {
334 Initialize(NULL, 0, NULL, 0, NULL, 0, NULL, 0); 346 Initialize(NULL, 0, NULL, 0, NULL, 0, NULL, 0);
335 347
336 scoped_ptr<TestProxyDelegate> proxy_delegate(new TestProxyDelegate()); 348 scoped_ptr<TestProxyDelegate> proxy_delegate(new TestProxyDelegate());
337 int rv = handle_.Init("a", CreateNoTunnelParams(proxy_delegate.get()), LOW, 349 int rv = handle_.Init("a", CreateNoTunnelParams(proxy_delegate.get()), LOW,
338 CompletionCallback(), &pool_, BoundNetLog()); 350 CompletionCallback(), &pool_, BoundNetLog());
339 EXPECT_EQ(OK, rv); 351 EXPECT_EQ(OK, rv);
340 EXPECT_TRUE(handle_.is_initialized()); 352 EXPECT_TRUE(handle_.is_initialized());
341 ASSERT_TRUE(handle_.socket()); 353 ASSERT_TRUE(handle_.socket());
(...skipping 463 matching lines...) Expand 10 before | Expand all | Expand 10 after
805 817
806 // Make sure Location header was included and correct. 818 // Make sure Location header was included and correct.
807 std::string location; 819 std::string location;
808 EXPECT_TRUE(headers->IsRedirect(&location)); 820 EXPECT_TRUE(headers->IsRedirect(&location));
809 EXPECT_EQ(location, redirectTarget); 821 EXPECT_EQ(location, redirectTarget);
810 } 822 }
811 } 823 }
812 824
813 // It would be nice to also test the timeouts in HttpProxyClientSocketPool. 825 // It would be nice to also test the timeouts in HttpProxyClientSocketPool.
814 826
815 } // namespace
816
817 } // namespace net 827 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698