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

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

Issue 9425016: Change MockRead and MockWrite (et. al.) to take an IoMode enum, instead (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: sync Created 8 years, 10 months 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 | Annotate | Revision Log
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/string_util.h" 9 #include "base/string_util.h"
10 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 else 156 else
157 data_ = new DeterministicSocketData(reads, reads_count, writes, 157 data_ = new DeterministicSocketData(reads, reads_count, writes,
158 writes_count); 158 writes_count);
159 159
160 data_->set_connect_data(MockConnect(SYNCHRONOUS, OK)); 160 data_->set_connect_data(MockConnect(SYNCHRONOUS, OK));
161 data_->StopAfter(2); // Request / Response 161 data_->StopAfter(2); // Request / Response
162 162
163 socket_factory_.AddSocketDataProvider(data_.get()); 163 socket_factory_.AddSocketDataProvider(data_.get());
164 164
165 if (GetParam() != HTTP) { 165 if (GetParam() != HTTP) {
166 ssl_data_.reset(new SSLSocketDataProvider(false, OK)); 166 ssl_data_.reset(new SSLSocketDataProvider(SYNCHRONOUS, OK));
167 if (GetParam() == SPDY) { 167 if (GetParam() == SPDY) {
168 InitializeSpdySsl(); 168 InitializeSpdySsl();
169 } 169 }
170 socket_factory_.AddSSLSocketDataProvider(ssl_data_.get()); 170 socket_factory_.AddSSLSocketDataProvider(ssl_data_.get());
171 } 171 }
172 } 172 }
173 173
174 void InitializeSpdySsl() { 174 void InitializeSpdySsl() {
175 spdy::SpdyFramer::set_enable_compression_default(false); 175 spdy::SpdyFramer::set_enable_compression_default(false);
176 ssl_data_->next_proto_status = SSLClientSocket::kNextProtoNegotiated; 176 ssl_data_->next_proto_status = SSLClientSocket::kNextProtoNegotiated;
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
234 EXPECT_EQ(OK, rv); 234 EXPECT_EQ(OK, rv);
235 EXPECT_TRUE(handle_.is_initialized()); 235 EXPECT_TRUE(handle_.is_initialized());
236 ASSERT_TRUE(handle_.socket()); 236 ASSERT_TRUE(handle_.socket());
237 HttpProxyClientSocket* tunnel_socket = 237 HttpProxyClientSocket* tunnel_socket =
238 static_cast<HttpProxyClientSocket*>(handle_.socket()); 238 static_cast<HttpProxyClientSocket*>(handle_.socket());
239 EXPECT_TRUE(tunnel_socket->IsConnected()); 239 EXPECT_TRUE(tunnel_socket->IsConnected());
240 } 240 }
241 241
242 TEST_P(HttpProxyClientSocketPoolTest, NeedAuth) { 242 TEST_P(HttpProxyClientSocketPoolTest, NeedAuth) {
243 MockWrite writes[] = { 243 MockWrite writes[] = {
244 MockWrite(true, 0, "CONNECT www.google.com:443 HTTP/1.1\r\n" 244 MockWrite(ASYNC, 0, "CONNECT www.google.com:443 HTTP/1.1\r\n"
245 "Host: www.google.com\r\n" 245 "Host: www.google.com\r\n"
246 "Proxy-Connection: keep-alive\r\n\r\n"), 246 "Proxy-Connection: keep-alive\r\n\r\n"),
247 }; 247 };
248 MockRead reads[] = { 248 MockRead reads[] = {
249 // No credentials. 249 // No credentials.
250 MockRead(true, 1, "HTTP/1.1 407 Proxy Authentication Required\r\n"), 250 MockRead(ASYNC, 1, "HTTP/1.1 407 Proxy Authentication Required\r\n"),
251 MockRead(true, 2, "Proxy-Authenticate: Basic realm=\"MyRealm1\"\r\n"), 251 MockRead(ASYNC, 2, "Proxy-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
252 MockRead(true, 3, "Content-Length: 10\r\n\r\n"), 252 MockRead(ASYNC, 3, "Content-Length: 10\r\n\r\n"),
253 MockRead(true, 4, "0123456789"), 253 MockRead(ASYNC, 4, "0123456789"),
254 }; 254 };
255 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyConnect(NULL, 0, 1)); 255 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyConnect(NULL, 0, 1));
256 scoped_ptr<spdy::SpdyFrame> rst(ConstructSpdyRstStream(1, spdy::CANCEL)); 256 scoped_ptr<spdy::SpdyFrame> rst(ConstructSpdyRstStream(1, spdy::CANCEL));
257 MockWrite spdy_writes[] = { 257 MockWrite spdy_writes[] = {
258 CreateMockWrite(*req, 0, true), 258 CreateMockWrite(*req, 0, ASYNC),
259 CreateMockWrite(*rst, 2, true), 259 CreateMockWrite(*rst, 2, ASYNC),
260 }; 260 };
261 scoped_ptr<spdy::SpdyFrame> resp( 261 scoped_ptr<spdy::SpdyFrame> resp(
262 ConstructSpdySynReplyError( 262 ConstructSpdySynReplyError(
263 "407 Proxy Authentication Required", NULL, 0, 1)); 263 "407 Proxy Authentication Required", NULL, 0, 1));
264 MockRead spdy_reads[] = { 264 MockRead spdy_reads[] = {
265 CreateMockWrite(*resp, 1, true), 265 CreateMockWrite(*resp, 1, ASYNC),
266 MockRead(true, 0, 3) 266 MockRead(ASYNC, 0, 3)
267 }; 267 };
268 268
269 Initialize(reads, arraysize(reads), writes, arraysize(writes), 269 Initialize(reads, arraysize(reads), writes, arraysize(writes),
270 spdy_reads, arraysize(spdy_reads), spdy_writes, 270 spdy_reads, arraysize(spdy_reads), spdy_writes,
271 arraysize(spdy_writes)); 271 arraysize(spdy_writes));
272 272
273 data_->StopAfter(4); 273 data_->StopAfter(4);
274 int rv = handle_.Init("a", GetTunnelParams(), LOW, callback_.callback(), 274 int rv = handle_.Init("a", GetTunnelParams(), LOW, callback_.callback(),
275 &pool_, BoundNetLog()); 275 &pool_, BoundNetLog());
276 EXPECT_EQ(ERR_IO_PENDING, rv); 276 EXPECT_EQ(ERR_IO_PENDING, rv);
(...skipping 17 matching lines...) Expand all
294 EXPECT_FALSE(handle_.socket()); 294 EXPECT_FALSE(handle_.socket());
295 } 295 }
296 } 296 }
297 297
298 TEST_P(HttpProxyClientSocketPoolTest, HaveAuth) { 298 TEST_P(HttpProxyClientSocketPoolTest, HaveAuth) {
299 // It's pretty much impossible to make the SPDY case behave synchronously 299 // It's pretty much impossible to make the SPDY case behave synchronously
300 // so we skip this test for SPDY 300 // so we skip this test for SPDY
301 if (GetParam() == SPDY) 301 if (GetParam() == SPDY)
302 return; 302 return;
303 MockWrite writes[] = { 303 MockWrite writes[] = {
304 MockWrite(false, 0, 304 MockWrite(SYNCHRONOUS, 0,
305 "CONNECT www.google.com:443 HTTP/1.1\r\n" 305 "CONNECT www.google.com:443 HTTP/1.1\r\n"
306 "Host: www.google.com\r\n" 306 "Host: www.google.com\r\n"
307 "Proxy-Connection: keep-alive\r\n" 307 "Proxy-Connection: keep-alive\r\n"
308 "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n\r\n"), 308 "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
309 }; 309 };
310 MockRead reads[] = { 310 MockRead reads[] = {
311 MockRead(false, 1, "HTTP/1.1 200 Connection Established\r\n\r\n"), 311 MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 Connection Established\r\n\r\n"),
312 }; 312 };
313 313
314 Initialize(reads, arraysize(reads), writes, arraysize(writes), NULL, 0, 314 Initialize(reads, arraysize(reads), writes, arraysize(writes), NULL, 0,
315 NULL, 0); 315 NULL, 0);
316 AddAuthToCache(); 316 AddAuthToCache();
317 317
318 int rv = handle_.Init("a", GetTunnelParams(), LOW, callback_.callback(), 318 int rv = handle_.Init("a", GetTunnelParams(), LOW, callback_.callback(),
319 &pool_, BoundNetLog()); 319 &pool_, BoundNetLog());
320 EXPECT_EQ(OK, rv); 320 EXPECT_EQ(OK, rv);
321 EXPECT_TRUE(handle_.is_initialized()); 321 EXPECT_TRUE(handle_.is_initialized());
322 ASSERT_TRUE(handle_.socket()); 322 ASSERT_TRUE(handle_.socket());
323 HttpProxyClientSocket* tunnel_socket = 323 HttpProxyClientSocket* tunnel_socket =
324 static_cast<HttpProxyClientSocket*>(handle_.socket()); 324 static_cast<HttpProxyClientSocket*>(handle_.socket());
325 EXPECT_TRUE(tunnel_socket->IsConnected()); 325 EXPECT_TRUE(tunnel_socket->IsConnected());
326 } 326 }
327 327
328 TEST_P(HttpProxyClientSocketPoolTest, AsyncHaveAuth) { 328 TEST_P(HttpProxyClientSocketPoolTest, AsyncHaveAuth) {
329 MockWrite writes[] = { 329 MockWrite writes[] = {
330 MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n" 330 MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n"
331 "Host: www.google.com\r\n" 331 "Host: www.google.com\r\n"
332 "Proxy-Connection: keep-alive\r\n" 332 "Proxy-Connection: keep-alive\r\n"
333 "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n\r\n"), 333 "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
334 }; 334 };
335 MockRead reads[] = { 335 MockRead reads[] = {
336 MockRead(false, "HTTP/1.1 200 Connection Established\r\n\r\n"), 336 MockRead(SYNCHRONOUS, "HTTP/1.1 200 Connection Established\r\n\r\n"),
337 }; 337 };
338 338
339 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyConnect(kAuthHeaders, 339 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyConnect(kAuthHeaders,
340 kAuthHeadersSize, 1)); 340 kAuthHeadersSize, 1));
341 MockWrite spdy_writes[] = { 341 MockWrite spdy_writes[] = {
342 CreateMockWrite(*req, 0, true) 342 CreateMockWrite(*req, 0, ASYNC)
343 }; 343 };
344 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); 344 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
345 MockRead spdy_reads[] = { 345 MockRead spdy_reads[] = {
346 CreateMockRead(*resp, 1, true), 346 CreateMockRead(*resp, 1, ASYNC),
347 MockRead(true, 0, 2) 347 MockRead(ASYNC, 0, 2)
348 }; 348 };
349 349
350 Initialize(reads, arraysize(reads), writes, arraysize(writes), 350 Initialize(reads, arraysize(reads), writes, arraysize(writes),
351 spdy_reads, arraysize(spdy_reads), spdy_writes, 351 spdy_reads, arraysize(spdy_reads), spdy_writes,
352 arraysize(spdy_writes)); 352 arraysize(spdy_writes));
353 AddAuthToCache(); 353 AddAuthToCache();
354 354
355 int rv = handle_.Init("a", GetTunnelParams(), LOW, callback_.callback(), 355 int rv = handle_.Init("a", GetTunnelParams(), LOW, callback_.callback(),
356 &pool_, BoundNetLog()); 356 &pool_, BoundNetLog());
357 EXPECT_EQ(ERR_IO_PENDING, rv); 357 EXPECT_EQ(ERR_IO_PENDING, rv);
(...skipping 27 matching lines...) Expand all
385 EXPECT_FALSE(handle_.is_initialized()); 385 EXPECT_FALSE(handle_.is_initialized());
386 EXPECT_FALSE(handle_.socket()); 386 EXPECT_FALSE(handle_.socket());
387 } 387 }
388 388
389 TEST_P(HttpProxyClientSocketPoolTest, SSLError) { 389 TEST_P(HttpProxyClientSocketPoolTest, SSLError) {
390 if (GetParam() == HTTP) return; 390 if (GetParam() == HTTP) return;
391 data_ = new DeterministicSocketData(NULL, 0, NULL, 0); 391 data_ = new DeterministicSocketData(NULL, 0, NULL, 0);
392 data_->set_connect_data(MockConnect(ASYNC, OK)); 392 data_->set_connect_data(MockConnect(ASYNC, OK));
393 socket_factory().AddSocketDataProvider(data_.get()); 393 socket_factory().AddSocketDataProvider(data_.get());
394 394
395 ssl_data_.reset(new SSLSocketDataProvider(true, 395 ssl_data_.reset(new SSLSocketDataProvider(ASYNC,
396 ERR_CERT_AUTHORITY_INVALID)); 396 ERR_CERT_AUTHORITY_INVALID));
397 if (GetParam() == SPDY) { 397 if (GetParam() == SPDY) {
398 InitializeSpdySsl(); 398 InitializeSpdySsl();
399 } 399 }
400 socket_factory().AddSSLSocketDataProvider(ssl_data_.get()); 400 socket_factory().AddSSLSocketDataProvider(ssl_data_.get());
401 401
402 int rv = handle_.Init("a", GetTunnelParams(), LOW, callback_.callback(), 402 int rv = handle_.Init("a", GetTunnelParams(), LOW, callback_.callback(),
403 &pool_, BoundNetLog()); 403 &pool_, BoundNetLog());
404 EXPECT_EQ(ERR_IO_PENDING, rv); 404 EXPECT_EQ(ERR_IO_PENDING, rv);
405 EXPECT_FALSE(handle_.is_initialized()); 405 EXPECT_FALSE(handle_.is_initialized());
406 EXPECT_FALSE(handle_.socket()); 406 EXPECT_FALSE(handle_.socket());
407 407
408 EXPECT_EQ(ERR_PROXY_CERTIFICATE_INVALID, callback_.WaitForResult()); 408 EXPECT_EQ(ERR_PROXY_CERTIFICATE_INVALID, callback_.WaitForResult());
409 409
410 EXPECT_FALSE(handle_.is_initialized()); 410 EXPECT_FALSE(handle_.is_initialized());
411 EXPECT_FALSE(handle_.socket()); 411 EXPECT_FALSE(handle_.socket());
412 } 412 }
413 413
414 TEST_P(HttpProxyClientSocketPoolTest, SslClientAuth) { 414 TEST_P(HttpProxyClientSocketPoolTest, SslClientAuth) {
415 if (GetParam() == HTTP) return; 415 if (GetParam() == HTTP) return;
416 data_ = new DeterministicSocketData(NULL, 0, NULL, 0); 416 data_ = new DeterministicSocketData(NULL, 0, NULL, 0);
417 data_->set_connect_data(MockConnect(ASYNC, OK)); 417 data_->set_connect_data(MockConnect(ASYNC, OK));
418 socket_factory().AddSocketDataProvider(data_.get()); 418 socket_factory().AddSocketDataProvider(data_.get());
419 419
420 ssl_data_.reset(new SSLSocketDataProvider(true, 420 ssl_data_.reset(new SSLSocketDataProvider(ASYNC,
421 ERR_SSL_CLIENT_AUTH_CERT_NEEDED)); 421 ERR_SSL_CLIENT_AUTH_CERT_NEEDED));
422 if (GetParam() == SPDY) { 422 if (GetParam() == SPDY) {
423 InitializeSpdySsl(); 423 InitializeSpdySsl();
424 } 424 }
425 socket_factory().AddSSLSocketDataProvider(ssl_data_.get()); 425 socket_factory().AddSSLSocketDataProvider(ssl_data_.get());
426 426
427 int rv = handle_.Init("a", GetTunnelParams(), LOW, callback_.callback(), 427 int rv = handle_.Init("a", GetTunnelParams(), LOW, callback_.callback(),
428 &pool_, BoundNetLog()); 428 &pool_, BoundNetLog());
429 EXPECT_EQ(ERR_IO_PENDING, rv); 429 EXPECT_EQ(ERR_IO_PENDING, rv);
430 EXPECT_FALSE(handle_.is_initialized()); 430 EXPECT_FALSE(handle_.is_initialized());
431 EXPECT_FALSE(handle_.socket()); 431 EXPECT_FALSE(handle_.socket());
432 432
433 EXPECT_EQ(ERR_SSL_CLIENT_AUTH_CERT_NEEDED, callback_.WaitForResult()); 433 EXPECT_EQ(ERR_SSL_CLIENT_AUTH_CERT_NEEDED, callback_.WaitForResult());
434 434
435 EXPECT_FALSE(handle_.is_initialized()); 435 EXPECT_FALSE(handle_.is_initialized());
436 EXPECT_FALSE(handle_.socket()); 436 EXPECT_FALSE(handle_.socket());
437 } 437 }
438 438
439 TEST_P(HttpProxyClientSocketPoolTest, TunnelUnexpectedClose) { 439 TEST_P(HttpProxyClientSocketPoolTest, TunnelUnexpectedClose) {
440 MockWrite writes[] = { 440 MockWrite writes[] = {
441 MockWrite(true, 0, 441 MockWrite(ASYNC, 0,
442 "CONNECT www.google.com:443 HTTP/1.1\r\n" 442 "CONNECT www.google.com:443 HTTP/1.1\r\n"
443 "Host: www.google.com\r\n" 443 "Host: www.google.com\r\n"
444 "Proxy-Connection: keep-alive\r\n" 444 "Proxy-Connection: keep-alive\r\n"
445 "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n\r\n"), 445 "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
446 }; 446 };
447 MockRead reads[] = { 447 MockRead reads[] = {
448 MockRead(true, 1, "HTTP/1.1 200 Conn"), 448 MockRead(ASYNC, 1, "HTTP/1.1 200 Conn"),
449 MockRead(true, ERR_CONNECTION_CLOSED, 2), 449 MockRead(ASYNC, ERR_CONNECTION_CLOSED, 2),
450 }; 450 };
451 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyConnect(kAuthHeaders, 451 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyConnect(kAuthHeaders,
452 kAuthHeadersSize, 1)); 452 kAuthHeadersSize, 1));
453 MockWrite spdy_writes[] = { 453 MockWrite spdy_writes[] = {
454 CreateMockWrite(*req, 0, true) 454 CreateMockWrite(*req, 0, ASYNC)
455 }; 455 };
456 MockRead spdy_reads[] = { 456 MockRead spdy_reads[] = {
457 MockRead(true, ERR_CONNECTION_CLOSED, 1), 457 MockRead(ASYNC, ERR_CONNECTION_CLOSED, 1),
458 }; 458 };
459 459
460 Initialize(reads, arraysize(reads), writes, arraysize(writes), 460 Initialize(reads, arraysize(reads), writes, arraysize(writes),
461 spdy_reads, arraysize(spdy_reads), spdy_writes, 461 spdy_reads, arraysize(spdy_reads), spdy_writes,
462 arraysize(spdy_writes)); 462 arraysize(spdy_writes));
463 AddAuthToCache(); 463 AddAuthToCache();
464 464
465 int rv = handle_.Init("a", GetTunnelParams(), LOW, callback_.callback(), 465 int rv = handle_.Init("a", GetTunnelParams(), LOW, callback_.callback(),
466 &pool_, BoundNetLog()); 466 &pool_, BoundNetLog());
467 EXPECT_EQ(ERR_IO_PENDING, rv); 467 EXPECT_EQ(ERR_IO_PENDING, rv);
468 EXPECT_FALSE(handle_.is_initialized()); 468 EXPECT_FALSE(handle_.is_initialized());
469 EXPECT_FALSE(handle_.socket()); 469 EXPECT_FALSE(handle_.socket());
470 470
471 data_->RunFor(3); 471 data_->RunFor(3);
472 EXPECT_EQ(ERR_CONNECTION_CLOSED, callback_.WaitForResult()); 472 EXPECT_EQ(ERR_CONNECTION_CLOSED, callback_.WaitForResult());
473 EXPECT_FALSE(handle_.is_initialized()); 473 EXPECT_FALSE(handle_.is_initialized());
474 EXPECT_FALSE(handle_.socket()); 474 EXPECT_FALSE(handle_.socket());
475 } 475 }
476 476
477 TEST_P(HttpProxyClientSocketPoolTest, TunnelSetupError) { 477 TEST_P(HttpProxyClientSocketPoolTest, TunnelSetupError) {
478 MockWrite writes[] = { 478 MockWrite writes[] = {
479 MockWrite(true, 0, 479 MockWrite(ASYNC, 0,
480 "CONNECT www.google.com:443 HTTP/1.1\r\n" 480 "CONNECT www.google.com:443 HTTP/1.1\r\n"
481 "Host: www.google.com\r\n" 481 "Host: www.google.com\r\n"
482 "Proxy-Connection: keep-alive\r\n" 482 "Proxy-Connection: keep-alive\r\n"
483 "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n\r\n"), 483 "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
484 }; 484 };
485 MockRead reads[] = { 485 MockRead reads[] = {
486 MockRead(true, 1, "HTTP/1.1 304 Not Modified\r\n\r\n"), 486 MockRead(ASYNC, 1, "HTTP/1.1 304 Not Modified\r\n\r\n"),
487 }; 487 };
488 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyConnect(kAuthHeaders, 488 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyConnect(kAuthHeaders,
489 kAuthHeadersSize, 1)); 489 kAuthHeadersSize, 1));
490 scoped_ptr<spdy::SpdyFrame> rst(ConstructSpdyRstStream(1, spdy::CANCEL)); 490 scoped_ptr<spdy::SpdyFrame> rst(ConstructSpdyRstStream(1, spdy::CANCEL));
491 MockWrite spdy_writes[] = { 491 MockWrite spdy_writes[] = {
492 CreateMockWrite(*req, 0, true), 492 CreateMockWrite(*req, 0, ASYNC),
493 CreateMockWrite(*rst, 2, true), 493 CreateMockWrite(*rst, 2, ASYNC),
494 }; 494 };
495 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdySynReplyError(1)); 495 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdySynReplyError(1));
496 MockRead spdy_reads[] = { 496 MockRead spdy_reads[] = {
497 CreateMockRead(*resp, 1, true), 497 CreateMockRead(*resp, 1, ASYNC),
498 MockRead(true, 0, 3), 498 MockRead(ASYNC, 0, 3),
499 }; 499 };
500 500
501 Initialize(reads, arraysize(reads), writes, arraysize(writes), 501 Initialize(reads, arraysize(reads), writes, arraysize(writes),
502 spdy_reads, arraysize(spdy_reads), spdy_writes, 502 spdy_reads, arraysize(spdy_reads), spdy_writes,
503 arraysize(spdy_writes)); 503 arraysize(spdy_writes));
504 AddAuthToCache(); 504 AddAuthToCache();
505 505
506 int rv = handle_.Init("a", GetTunnelParams(), LOW, callback_.callback(), 506 int rv = handle_.Init("a", GetTunnelParams(), LOW, callback_.callback(),
507 &pool_, BoundNetLog()); 507 &pool_, BoundNetLog());
508 EXPECT_EQ(ERR_IO_PENDING, rv); 508 EXPECT_EQ(ERR_IO_PENDING, rv);
(...skipping 12 matching lines...) Expand all
521 // HTTPS or SPDY Proxy CONNECT responses are trustworthy 521 // HTTPS or SPDY Proxy CONNECT responses are trustworthy
522 EXPECT_EQ(ERR_HTTPS_PROXY_TUNNEL_RESPONSE, rv); 522 EXPECT_EQ(ERR_HTTPS_PROXY_TUNNEL_RESPONSE, rv);
523 EXPECT_TRUE(handle_.is_initialized()); 523 EXPECT_TRUE(handle_.is_initialized());
524 EXPECT_TRUE(handle_.socket()); 524 EXPECT_TRUE(handle_.socket());
525 } 525 }
526 } 526 }
527 527
528 // It would be nice to also test the timeouts in HttpProxyClientSocketPool. 528 // It would be nice to also test the timeouts in HttpProxyClientSocketPool.
529 529
530 } // namespace net 530 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_pipelined_network_transaction_unittest.cc ('k') | net/socket/deterministic_socket_data_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698