OLD | NEW |
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 229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
240 "Host: www.google.com\r\n" | 240 "Host: www.google.com\r\n" |
241 "Proxy-Connection: keep-alive\r\n\r\n"), | 241 "Proxy-Connection: keep-alive\r\n\r\n"), |
242 }; | 242 }; |
243 MockRead reads[] = { | 243 MockRead reads[] = { |
244 // No credentials. | 244 // No credentials. |
245 MockRead(ASYNC, 1, "HTTP/1.1 407 Proxy Authentication Required\r\n"), | 245 MockRead(ASYNC, 1, "HTTP/1.1 407 Proxy Authentication Required\r\n"), |
246 MockRead(ASYNC, 2, "Proxy-Authenticate: Basic realm=\"MyRealm1\"\r\n"), | 246 MockRead(ASYNC, 2, "Proxy-Authenticate: Basic realm=\"MyRealm1\"\r\n"), |
247 MockRead(ASYNC, 3, "Content-Length: 10\r\n\r\n"), | 247 MockRead(ASYNC, 3, "Content-Length: 10\r\n\r\n"), |
248 MockRead(ASYNC, 4, "0123456789"), | 248 MockRead(ASYNC, 4, "0123456789"), |
249 }; | 249 }; |
250 scoped_ptr<SpdyFrame> req(ConstructSpdyConnect(NULL, 0, 1)); | 250 scoped_ptr<SpdyFrame> req( |
| 251 spdy_util_.ConstructSpdyConnect(NULL, 0, 1)); |
251 scoped_ptr<SpdyFrame> rst( | 252 scoped_ptr<SpdyFrame> rst( |
252 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); | 253 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); |
253 MockWrite spdy_writes[] = { | 254 MockWrite spdy_writes[] = { |
254 CreateMockWrite(*req, 0, ASYNC), | 255 CreateMockWrite(*req, 0, ASYNC), |
255 CreateMockWrite(*rst, 2, ASYNC), | 256 CreateMockWrite(*rst, 2, ASYNC), |
256 }; | 257 }; |
257 static const char* const kAuthChallenge[] = { | 258 static const char* const kAuthChallenge[] = { |
258 "status", "407 Proxy Authentication Required", | 259 "status", "407 Proxy Authentication Required", |
259 "version", "HTTP/1.1", | 260 "version", "HTTP/1.1", |
260 "proxy-authenticate", "Basic realm=\"MyRealm1\"", | 261 "proxy-authenticate", "Basic realm=\"MyRealm1\"", |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
337 MockWrite writes[] = { | 338 MockWrite writes[] = { |
338 MockWrite(ASYNC, 0, "CONNECT www.google.com:443 HTTP/1.1\r\n" | 339 MockWrite(ASYNC, 0, "CONNECT www.google.com:443 HTTP/1.1\r\n" |
339 "Host: www.google.com\r\n" | 340 "Host: www.google.com\r\n" |
340 "Proxy-Connection: keep-alive\r\n" | 341 "Proxy-Connection: keep-alive\r\n" |
341 "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n\r\n"), | 342 "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n\r\n"), |
342 }; | 343 }; |
343 MockRead reads[] = { | 344 MockRead reads[] = { |
344 MockRead(ASYNC, 1, "HTTP/1.1 200 Connection Established\r\n\r\n"), | 345 MockRead(ASYNC, 1, "HTTP/1.1 200 Connection Established\r\n\r\n"), |
345 }; | 346 }; |
346 | 347 |
347 scoped_ptr<SpdyFrame> req(ConstructSpdyConnect(kAuthHeaders, | 348 scoped_ptr<SpdyFrame> req( |
348 kAuthHeadersSize, 1)); | 349 spdy_util_.ConstructSpdyConnect(kAuthHeaders, kAuthHeadersSize, 1)); |
349 MockWrite spdy_writes[] = { | 350 MockWrite spdy_writes[] = { |
350 CreateMockWrite(*req, 0, ASYNC) | 351 CreateMockWrite(*req, 0, ASYNC) |
351 }; | 352 }; |
352 scoped_ptr<SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); | 353 scoped_ptr<SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); |
353 MockRead spdy_reads[] = { | 354 MockRead spdy_reads[] = { |
354 CreateMockRead(*resp, 1, ASYNC), | 355 CreateMockRead(*resp, 1, ASYNC), |
355 MockRead(ASYNC, 0, 2) | 356 MockRead(ASYNC, 0, 2) |
356 }; | 357 }; |
357 | 358 |
358 Initialize(reads, arraysize(reads), writes, arraysize(writes), | 359 Initialize(reads, arraysize(reads), writes, arraysize(writes), |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
449 MockWrite(ASYNC, 0, | 450 MockWrite(ASYNC, 0, |
450 "CONNECT www.google.com:443 HTTP/1.1\r\n" | 451 "CONNECT www.google.com:443 HTTP/1.1\r\n" |
451 "Host: www.google.com\r\n" | 452 "Host: www.google.com\r\n" |
452 "Proxy-Connection: keep-alive\r\n" | 453 "Proxy-Connection: keep-alive\r\n" |
453 "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n\r\n"), | 454 "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n\r\n"), |
454 }; | 455 }; |
455 MockRead reads[] = { | 456 MockRead reads[] = { |
456 MockRead(ASYNC, 1, "HTTP/1.1 200 Conn"), | 457 MockRead(ASYNC, 1, "HTTP/1.1 200 Conn"), |
457 MockRead(ASYNC, ERR_CONNECTION_CLOSED, 2), | 458 MockRead(ASYNC, ERR_CONNECTION_CLOSED, 2), |
458 }; | 459 }; |
459 scoped_ptr<SpdyFrame> req(ConstructSpdyConnect(kAuthHeaders, | 460 scoped_ptr<SpdyFrame> req( |
460 kAuthHeadersSize, 1)); | 461 spdy_util_.ConstructSpdyConnect(kAuthHeaders, kAuthHeadersSize, 1)); |
461 MockWrite spdy_writes[] = { | 462 MockWrite spdy_writes[] = { |
462 CreateMockWrite(*req, 0, ASYNC) | 463 CreateMockWrite(*req, 0, ASYNC) |
463 }; | 464 }; |
464 MockRead spdy_reads[] = { | 465 MockRead spdy_reads[] = { |
465 MockRead(ASYNC, ERR_CONNECTION_CLOSED, 1), | 466 MockRead(ASYNC, ERR_CONNECTION_CLOSED, 1), |
466 }; | 467 }; |
467 | 468 |
468 Initialize(reads, arraysize(reads), writes, arraysize(writes), | 469 Initialize(reads, arraysize(reads), writes, arraysize(writes), |
469 spdy_reads, arraysize(spdy_reads), spdy_writes, | 470 spdy_reads, arraysize(spdy_reads), spdy_writes, |
470 arraysize(spdy_writes)); | 471 arraysize(spdy_writes)); |
(...skipping 15 matching lines...) Expand all Loading... |
486 MockWrite writes[] = { | 487 MockWrite writes[] = { |
487 MockWrite(ASYNC, 0, | 488 MockWrite(ASYNC, 0, |
488 "CONNECT www.google.com:443 HTTP/1.1\r\n" | 489 "CONNECT www.google.com:443 HTTP/1.1\r\n" |
489 "Host: www.google.com\r\n" | 490 "Host: www.google.com\r\n" |
490 "Proxy-Connection: keep-alive\r\n" | 491 "Proxy-Connection: keep-alive\r\n" |
491 "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n\r\n"), | 492 "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n\r\n"), |
492 }; | 493 }; |
493 MockRead reads[] = { | 494 MockRead reads[] = { |
494 MockRead(ASYNC, 1, "HTTP/1.1 304 Not Modified\r\n\r\n"), | 495 MockRead(ASYNC, 1, "HTTP/1.1 304 Not Modified\r\n\r\n"), |
495 }; | 496 }; |
496 scoped_ptr<SpdyFrame> req(ConstructSpdyConnect(kAuthHeaders, | 497 scoped_ptr<SpdyFrame> req( |
497 kAuthHeadersSize, 1)); | 498 spdy_util_.ConstructSpdyConnect(kAuthHeaders, kAuthHeadersSize, 1)); |
498 scoped_ptr<SpdyFrame> rst( | 499 scoped_ptr<SpdyFrame> rst( |
499 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); | 500 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); |
500 MockWrite spdy_writes[] = { | 501 MockWrite spdy_writes[] = { |
501 CreateMockWrite(*req, 0, ASYNC), | 502 CreateMockWrite(*req, 0, ASYNC), |
502 CreateMockWrite(*rst, 2, ASYNC), | 503 CreateMockWrite(*rst, 2, ASYNC), |
503 }; | 504 }; |
504 scoped_ptr<SpdyFrame> resp(ConstructSpdySynReplyError(1)); | 505 scoped_ptr<SpdyFrame> resp(ConstructSpdySynReplyError(1)); |
505 MockRead spdy_reads[] = { | 506 MockRead spdy_reads[] = { |
506 CreateMockRead(*resp, 1, ASYNC), | 507 CreateMockRead(*resp, 1, ASYNC), |
507 MockRead(ASYNC, 0, 3), | 508 MockRead(ASYNC, 0, 3), |
(...skipping 30 matching lines...) Expand all Loading... |
538 MockWrite(ASYNC, 0, | 539 MockWrite(ASYNC, 0, |
539 "CONNECT www.google.com:443 HTTP/1.1\r\n" | 540 "CONNECT www.google.com:443 HTTP/1.1\r\n" |
540 "Host: www.google.com\r\n" | 541 "Host: www.google.com\r\n" |
541 "Proxy-Connection: keep-alive\r\n" | 542 "Proxy-Connection: keep-alive\r\n" |
542 "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n\r\n"), | 543 "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n\r\n"), |
543 }; | 544 }; |
544 MockRead reads[] = { | 545 MockRead reads[] = { |
545 MockRead(ASYNC, 1, responseText.c_str()), | 546 MockRead(ASYNC, 1, responseText.c_str()), |
546 }; | 547 }; |
547 scoped_ptr<SpdyFrame> req( | 548 scoped_ptr<SpdyFrame> req( |
548 ConstructSpdyConnect(kAuthHeaders, kAuthHeadersSize, 1)); | 549 spdy_util_.ConstructSpdyConnect(kAuthHeaders, kAuthHeadersSize, 1)); |
549 scoped_ptr<SpdyFrame> rst( | 550 scoped_ptr<SpdyFrame> rst( |
550 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); | 551 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); |
551 | 552 |
552 MockWrite spdy_writes[] = { | 553 MockWrite spdy_writes[] = { |
553 CreateMockWrite(*req, 0, ASYNC), | 554 CreateMockWrite(*req, 0, ASYNC), |
554 }; | 555 }; |
555 | 556 |
556 const char* const responseHeaders[] = { | 557 const char* const responseHeaders[] = { |
557 "location", redirectTarget.c_str(), | 558 "location", redirectTarget.c_str(), |
558 "set-cookie", "foo=bar", | 559 "set-cookie", "foo=bar", |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
607 // Make sure Location header was included and correct. | 608 // Make sure Location header was included and correct. |
608 std::string location; | 609 std::string location; |
609 EXPECT_TRUE(headers->IsRedirect(&location)); | 610 EXPECT_TRUE(headers->IsRedirect(&location)); |
610 EXPECT_EQ(location, redirectTarget); | 611 EXPECT_EQ(location, redirectTarget); |
611 } | 612 } |
612 } | 613 } |
613 | 614 |
614 // It would be nice to also test the timeouts in HttpProxyClientSocketPool. | 615 // It would be nice to also test the timeouts in HttpProxyClientSocketPool. |
615 | 616 |
616 } // namespace net | 617 } // namespace net |
OLD | NEW |