| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 <stdarg.h> | 8 #include <stdarg.h> |
| 9 #include <stdint.h> | 9 #include <stdint.h> |
| 10 | 10 |
| (...skipping 11258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11269 // need to test all permutations of the backend server). | 11269 // need to test all permutations of the backend server). |
| 11270 // | 11270 // |
| 11271 // The test proceeds by going over each of the configuration cases, and | 11271 // The test proceeds by going over each of the configuration cases, and |
| 11272 // potentially running up to three rounds in each of the tests. The TestConfig | 11272 // potentially running up to three rounds in each of the tests. The TestConfig |
| 11273 // specifies both the configuration for the test as well as the expectations | 11273 // specifies both the configuration for the test as well as the expectations |
| 11274 // for the results. | 11274 // for the results. |
| 11275 TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { | 11275 TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
| 11276 static const char kServer[] = "http://www.example.com"; | 11276 static const char kServer[] = "http://www.example.com"; |
| 11277 static const char kSecureServer[] = "https://www.example.com"; | 11277 static const char kSecureServer[] = "https://www.example.com"; |
| 11278 static const char kProxy[] = "myproxy:70"; | 11278 static const char kProxy[] = "myproxy:70"; |
| 11279 const int kAuthErr = ERR_INVALID_AUTH_CREDENTIALS; | |
| 11280 | 11279 |
| 11281 enum AuthTiming { | 11280 enum AuthTiming { |
| 11282 AUTH_NONE, | 11281 AUTH_NONE, |
| 11283 AUTH_SYNC, | 11282 AUTH_SYNC, |
| 11284 AUTH_ASYNC, | 11283 AUTH_ASYNC, |
| 11285 }; | 11284 }; |
| 11286 | 11285 |
| 11287 const MockWrite kGet( | 11286 const MockWrite kGet( |
| 11288 "GET / HTTP/1.1\r\n" | 11287 "GET / HTTP/1.1\r\n" |
| 11289 "Host: www.example.com\r\n" | 11288 "Host: www.example.com\r\n" |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11386 const char* const proxy_url; | 11385 const char* const proxy_url; |
| 11387 AuthTiming proxy_auth_timing; | 11386 AuthTiming proxy_auth_timing; |
| 11388 int proxy_auth_rv; | 11387 int proxy_auth_rv; |
| 11389 const char* const server_url; | 11388 const char* const server_url; |
| 11390 AuthTiming server_auth_timing; | 11389 AuthTiming server_auth_timing; |
| 11391 int server_auth_rv; | 11390 int server_auth_rv; |
| 11392 int num_auth_rounds; | 11391 int num_auth_rounds; |
| 11393 int first_ssl_round; | 11392 int first_ssl_round; |
| 11394 TestRound rounds[3]; | 11393 TestRound rounds[3]; |
| 11395 } test_configs[] = { | 11394 } test_configs[] = { |
| 11396 // Non-authenticating HTTP server with a direct connection. | 11395 // Non-authenticating HTTP server with a direct connection. |
| 11397 { NULL, AUTH_NONE, OK, kServer, AUTH_NONE, OK, 1, kNoSSL, | 11396 {NULL, |
| 11398 { TestRound(kGet, kSuccess, OK)}}, | 11397 AUTH_NONE, |
| 11399 // Authenticating HTTP server with a direct connection. | 11398 OK, |
| 11400 { NULL, AUTH_NONE, OK, kServer, AUTH_SYNC, OK, 2, kNoSSL, | 11399 kServer, |
| 11401 { TestRound(kGet, kServerChallenge, OK), | 11400 AUTH_NONE, |
| 11402 TestRound(kGetAuth, kSuccess, OK)}}, | 11401 OK, |
| 11403 { NULL, AUTH_NONE, OK, kServer, AUTH_SYNC, kAuthErr, 2, kNoSSL, | 11402 1, |
| 11404 { TestRound(kGet, kServerChallenge, OK), | 11403 kNoSSL, |
| 11405 TestRound(kGetAuth, kFailure, kAuthErr)}}, | 11404 {TestRound(kGet, kSuccess, OK)}}, |
| 11406 { NULL, AUTH_NONE, OK, kServer, AUTH_ASYNC, OK, 2, kNoSSL, | 11405 // Authenticating HTTP server with a direct connection. |
| 11407 { TestRound(kGet, kServerChallenge, OK), | 11406 {NULL, |
| 11408 TestRound(kGetAuth, kSuccess, OK)}}, | 11407 AUTH_NONE, |
| 11409 { NULL, AUTH_NONE, OK, kServer, AUTH_ASYNC, kAuthErr, 2, kNoSSL, | 11408 OK, |
| 11410 { TestRound(kGet, kServerChallenge, OK), | 11409 kServer, |
| 11411 TestRound(kGetAuth, kFailure, kAuthErr)}}, | 11410 AUTH_SYNC, |
| 11412 // Non-authenticating HTTP server through a non-authenticating proxy. | 11411 OK, |
| 11413 { kProxy, AUTH_NONE, OK, kServer, AUTH_NONE, OK, 1, kNoSSL, | 11412 2, |
| 11414 { TestRound(kGetProxy, kSuccess, OK)}}, | 11413 kNoSSL, |
| 11415 // Authenticating HTTP server through a non-authenticating proxy. | 11414 {TestRound(kGet, kServerChallenge, OK), |
| 11416 { kProxy, AUTH_NONE, OK, kServer, AUTH_SYNC, OK, 2, kNoSSL, | 11415 TestRound(kGetAuth, kSuccess, OK)}}, |
| 11417 { TestRound(kGetProxy, kServerChallenge, OK), | 11416 {NULL, |
| 11417 AUTH_NONE, |
| 11418 OK, |
| 11419 kServer, |
| 11420 AUTH_SYNC, |
| 11421 ERR_INVALID_AUTH_CREDENTIALS, |
| 11422 2, |
| 11423 kNoSSL, |
| 11424 {TestRound(kGet, kServerChallenge, OK), |
| 11425 TestRound(kGetAuth, kFailure, ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11426 {NULL, |
| 11427 AUTH_NONE, |
| 11428 OK, |
| 11429 kServer, |
| 11430 AUTH_ASYNC, |
| 11431 OK, |
| 11432 2, |
| 11433 kNoSSL, |
| 11434 {TestRound(kGet, kServerChallenge, OK), |
| 11435 TestRound(kGetAuth, kSuccess, OK)}}, |
| 11436 {NULL, |
| 11437 AUTH_NONE, |
| 11438 OK, |
| 11439 kServer, |
| 11440 AUTH_ASYNC, |
| 11441 ERR_INVALID_AUTH_CREDENTIALS, |
| 11442 2, |
| 11443 kNoSSL, |
| 11444 {TestRound(kGet, kServerChallenge, OK), |
| 11445 TestRound(kGetAuth, kFailure, ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11446 // Non-authenticating HTTP server through a non-authenticating proxy. |
| 11447 {kProxy, |
| 11448 AUTH_NONE, |
| 11449 OK, |
| 11450 kServer, |
| 11451 AUTH_NONE, |
| 11452 OK, |
| 11453 1, |
| 11454 kNoSSL, |
| 11455 {TestRound(kGetProxy, kSuccess, OK)}}, |
| 11456 // Authenticating HTTP server through a non-authenticating proxy. |
| 11457 {kProxy, |
| 11458 AUTH_NONE, |
| 11459 OK, |
| 11460 kServer, |
| 11461 AUTH_SYNC, |
| 11462 OK, |
| 11463 2, |
| 11464 kNoSSL, |
| 11465 {TestRound(kGetProxy, kServerChallenge, OK), |
| 11418 TestRound(kGetAuthThroughProxy, kSuccess, OK)}}, | 11466 TestRound(kGetAuthThroughProxy, kSuccess, OK)}}, |
| 11419 { kProxy, AUTH_NONE, OK, kServer, AUTH_SYNC, kAuthErr, 2, kNoSSL, | 11467 {kProxy, |
| 11420 { TestRound(kGetProxy, kServerChallenge, OK), | 11468 AUTH_NONE, |
| 11421 TestRound(kGetAuthThroughProxy, kFailure, kAuthErr)}}, | 11469 OK, |
| 11422 { kProxy, AUTH_NONE, OK, kServer, AUTH_ASYNC, OK, 2, kNoSSL, | 11470 kServer, |
| 11423 { TestRound(kGetProxy, kServerChallenge, OK), | 11471 AUTH_SYNC, |
| 11472 ERR_INVALID_AUTH_CREDENTIALS, |
| 11473 2, |
| 11474 kNoSSL, |
| 11475 {TestRound(kGetProxy, kServerChallenge, OK), |
| 11476 TestRound(kGetAuthThroughProxy, kFailure, |
| 11477 ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11478 {kProxy, |
| 11479 AUTH_NONE, |
| 11480 OK, |
| 11481 kServer, |
| 11482 AUTH_ASYNC, |
| 11483 OK, |
| 11484 2, |
| 11485 kNoSSL, |
| 11486 {TestRound(kGetProxy, kServerChallenge, OK), |
| 11424 TestRound(kGetAuthThroughProxy, kSuccess, OK)}}, | 11487 TestRound(kGetAuthThroughProxy, kSuccess, OK)}}, |
| 11425 { kProxy, AUTH_NONE, OK, kServer, AUTH_ASYNC, kAuthErr, 2, kNoSSL, | 11488 {kProxy, |
| 11426 { TestRound(kGetProxy, kServerChallenge, OK), | 11489 AUTH_NONE, |
| 11427 TestRound(kGetAuthThroughProxy, kFailure, kAuthErr)}}, | 11490 OK, |
| 11428 // Non-authenticating HTTP server through an authenticating proxy. | 11491 kServer, |
| 11429 { kProxy, AUTH_SYNC, OK, kServer, AUTH_NONE, OK, 2, kNoSSL, | 11492 AUTH_ASYNC, |
| 11430 { TestRound(kGetProxy, kProxyChallenge, OK), | 11493 ERR_INVALID_AUTH_CREDENTIALS, |
| 11494 2, |
| 11495 kNoSSL, |
| 11496 {TestRound(kGetProxy, kServerChallenge, OK), |
| 11497 TestRound(kGetAuthThroughProxy, kFailure, |
| 11498 ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11499 // Non-authenticating HTTP server through an authenticating proxy. |
| 11500 {kProxy, |
| 11501 AUTH_SYNC, |
| 11502 OK, |
| 11503 kServer, |
| 11504 AUTH_NONE, |
| 11505 OK, |
| 11506 2, |
| 11507 kNoSSL, |
| 11508 {TestRound(kGetProxy, kProxyChallenge, OK), |
| 11431 TestRound(kGetProxyAuth, kSuccess, OK)}}, | 11509 TestRound(kGetProxyAuth, kSuccess, OK)}}, |
| 11432 { kProxy, AUTH_SYNC, kAuthErr, kServer, AUTH_NONE, OK, 2, kNoSSL, | 11510 {kProxy, |
| 11433 { TestRound(kGetProxy, kProxyChallenge, OK), | 11511 AUTH_SYNC, |
| 11434 TestRound(kGetProxyAuth, kFailure, kAuthErr)}}, | 11512 ERR_INVALID_AUTH_CREDENTIALS, |
| 11435 { kProxy, AUTH_ASYNC, OK, kServer, AUTH_NONE, OK, 2, kNoSSL, | 11513 kServer, |
| 11436 { TestRound(kGetProxy, kProxyChallenge, OK), | 11514 AUTH_NONE, |
| 11515 OK, |
| 11516 2, |
| 11517 kNoSSL, |
| 11518 {TestRound(kGetProxy, kProxyChallenge, OK), |
| 11519 TestRound(kGetProxyAuth, kFailure, ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11520 {kProxy, |
| 11521 AUTH_ASYNC, |
| 11522 OK, |
| 11523 kServer, |
| 11524 AUTH_NONE, |
| 11525 OK, |
| 11526 2, |
| 11527 kNoSSL, |
| 11528 {TestRound(kGetProxy, kProxyChallenge, OK), |
| 11437 TestRound(kGetProxyAuth, kSuccess, OK)}}, | 11529 TestRound(kGetProxyAuth, kSuccess, OK)}}, |
| 11438 { kProxy, AUTH_ASYNC, kAuthErr, kServer, AUTH_NONE, OK, 2, kNoSSL, | 11530 {kProxy, |
| 11439 { TestRound(kGetProxy, kProxyChallenge, OK), | 11531 AUTH_ASYNC, |
| 11440 TestRound(kGetProxyAuth, kFailure, kAuthErr)}}, | 11532 ERR_INVALID_AUTH_CREDENTIALS, |
| 11441 // Authenticating HTTP server through an authenticating proxy. | 11533 kServer, |
| 11442 { kProxy, AUTH_SYNC, OK, kServer, AUTH_SYNC, OK, 3, kNoSSL, | 11534 AUTH_NONE, |
| 11443 { TestRound(kGetProxy, kProxyChallenge, OK), | 11535 OK, |
| 11536 2, |
| 11537 kNoSSL, |
| 11538 {TestRound(kGetProxy, kProxyChallenge, OK), |
| 11539 TestRound(kGetProxyAuth, kFailure, ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11540 // Authenticating HTTP server through an authenticating proxy. |
| 11541 {kProxy, |
| 11542 AUTH_SYNC, |
| 11543 OK, |
| 11544 kServer, |
| 11545 AUTH_SYNC, |
| 11546 OK, |
| 11547 3, |
| 11548 kNoSSL, |
| 11549 {TestRound(kGetProxy, kProxyChallenge, OK), |
| 11444 TestRound(kGetProxyAuth, kServerChallenge, OK), | 11550 TestRound(kGetProxyAuth, kServerChallenge, OK), |
| 11445 TestRound(kGetAuthWithProxyAuth, kSuccess, OK)}}, | 11551 TestRound(kGetAuthWithProxyAuth, kSuccess, OK)}}, |
| 11446 { kProxy, AUTH_SYNC, OK, kServer, AUTH_SYNC, kAuthErr, 3, kNoSSL, | 11552 {kProxy, |
| 11447 { TestRound(kGetProxy, kProxyChallenge, OK), | 11553 AUTH_SYNC, |
| 11448 TestRound(kGetProxyAuth, kServerChallenge, OK), | 11554 OK, |
| 11449 TestRound(kGetAuthWithProxyAuth, kFailure, kAuthErr)}}, | 11555 kServer, |
| 11450 { kProxy, AUTH_ASYNC, OK, kServer, AUTH_SYNC, OK, 3, kNoSSL, | 11556 AUTH_SYNC, |
| 11451 { TestRound(kGetProxy, kProxyChallenge, OK), | 11557 ERR_INVALID_AUTH_CREDENTIALS, |
| 11558 3, |
| 11559 kNoSSL, |
| 11560 {TestRound(kGetProxy, kProxyChallenge, OK), |
| 11561 TestRound(kGetProxyAuth, kServerChallenge, OK), |
| 11562 TestRound(kGetAuthWithProxyAuth, kFailure, |
| 11563 ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11564 {kProxy, |
| 11565 AUTH_ASYNC, |
| 11566 OK, |
| 11567 kServer, |
| 11568 AUTH_SYNC, |
| 11569 OK, |
| 11570 3, |
| 11571 kNoSSL, |
| 11572 {TestRound(kGetProxy, kProxyChallenge, OK), |
| 11452 TestRound(kGetProxyAuth, kServerChallenge, OK), | 11573 TestRound(kGetProxyAuth, kServerChallenge, OK), |
| 11453 TestRound(kGetAuthWithProxyAuth, kSuccess, OK)}}, | 11574 TestRound(kGetAuthWithProxyAuth, kSuccess, OK)}}, |
| 11454 { kProxy, AUTH_ASYNC, OK, kServer, AUTH_SYNC, kAuthErr, 3, kNoSSL, | 11575 {kProxy, |
| 11455 { TestRound(kGetProxy, kProxyChallenge, OK), | 11576 AUTH_ASYNC, |
| 11456 TestRound(kGetProxyAuth, kServerChallenge, OK), | 11577 OK, |
| 11457 TestRound(kGetAuthWithProxyAuth, kFailure, kAuthErr)}}, | 11578 kServer, |
| 11458 { kProxy, AUTH_SYNC, OK, kServer, AUTH_ASYNC, OK, 3, kNoSSL, | 11579 AUTH_SYNC, |
| 11459 { TestRound(kGetProxy, kProxyChallenge, OK), | 11580 ERR_INVALID_AUTH_CREDENTIALS, |
| 11581 3, |
| 11582 kNoSSL, |
| 11583 {TestRound(kGetProxy, kProxyChallenge, OK), |
| 11584 TestRound(kGetProxyAuth, kServerChallenge, OK), |
| 11585 TestRound(kGetAuthWithProxyAuth, kFailure, |
| 11586 ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11587 {kProxy, |
| 11588 AUTH_SYNC, |
| 11589 OK, |
| 11590 kServer, |
| 11591 AUTH_ASYNC, |
| 11592 OK, |
| 11593 3, |
| 11594 kNoSSL, |
| 11595 {TestRound(kGetProxy, kProxyChallenge, OK), |
| 11460 TestRound(kGetProxyAuth, kServerChallenge, OK), | 11596 TestRound(kGetProxyAuth, kServerChallenge, OK), |
| 11461 TestRound(kGetAuthWithProxyAuth, kSuccess, OK)}}, | 11597 TestRound(kGetAuthWithProxyAuth, kSuccess, OK)}}, |
| 11462 { kProxy, AUTH_SYNC, OK, kServer, AUTH_ASYNC, kAuthErr, 3, kNoSSL, | 11598 {kProxy, |
| 11463 { TestRound(kGetProxy, kProxyChallenge, OK), | 11599 AUTH_SYNC, |
| 11464 TestRound(kGetProxyAuth, kServerChallenge, OK), | 11600 OK, |
| 11465 TestRound(kGetAuthWithProxyAuth, kFailure, kAuthErr)}}, | 11601 kServer, |
| 11466 { kProxy, AUTH_ASYNC, OK, kServer, AUTH_ASYNC, OK, 3, kNoSSL, | 11602 AUTH_ASYNC, |
| 11467 { TestRound(kGetProxy, kProxyChallenge, OK), | 11603 ERR_INVALID_AUTH_CREDENTIALS, |
| 11604 3, |
| 11605 kNoSSL, |
| 11606 {TestRound(kGetProxy, kProxyChallenge, OK), |
| 11607 TestRound(kGetProxyAuth, kServerChallenge, OK), |
| 11608 TestRound(kGetAuthWithProxyAuth, kFailure, |
| 11609 ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11610 {kProxy, |
| 11611 AUTH_ASYNC, |
| 11612 OK, |
| 11613 kServer, |
| 11614 AUTH_ASYNC, |
| 11615 OK, |
| 11616 3, |
| 11617 kNoSSL, |
| 11618 {TestRound(kGetProxy, kProxyChallenge, OK), |
| 11468 TestRound(kGetProxyAuth, kServerChallenge, OK), | 11619 TestRound(kGetProxyAuth, kServerChallenge, OK), |
| 11469 TestRound(kGetAuthWithProxyAuth, kSuccess, OK)}}, | 11620 TestRound(kGetAuthWithProxyAuth, kSuccess, OK)}}, |
| 11470 { kProxy, AUTH_ASYNC, OK, kServer, AUTH_ASYNC, kAuthErr, 3, kNoSSL, | 11621 {kProxy, |
| 11471 { TestRound(kGetProxy, kProxyChallenge, OK), | 11622 AUTH_ASYNC, |
| 11472 TestRound(kGetProxyAuth, kServerChallenge, OK), | 11623 OK, |
| 11473 TestRound(kGetAuthWithProxyAuth, kFailure, kAuthErr)}}, | 11624 kServer, |
| 11474 // Non-authenticating HTTPS server with a direct connection. | 11625 AUTH_ASYNC, |
| 11475 { NULL, AUTH_NONE, OK, kSecureServer, AUTH_NONE, OK, 1, 0, | 11626 ERR_INVALID_AUTH_CREDENTIALS, |
| 11476 { TestRound(kGet, kSuccess, OK)}}, | 11627 3, |
| 11477 // Authenticating HTTPS server with a direct connection. | 11628 kNoSSL, |
| 11478 { NULL, AUTH_NONE, OK, kSecureServer, AUTH_SYNC, OK, 2, 0, | 11629 {TestRound(kGetProxy, kProxyChallenge, OK), |
| 11479 { TestRound(kGet, kServerChallenge, OK), | 11630 TestRound(kGetProxyAuth, kServerChallenge, OK), |
| 11480 TestRound(kGetAuth, kSuccess, OK)}}, | 11631 TestRound(kGetAuthWithProxyAuth, kFailure, |
| 11481 { NULL, AUTH_NONE, OK, kSecureServer, AUTH_SYNC, kAuthErr, 2, 0, | 11632 ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11482 { TestRound(kGet, kServerChallenge, OK), | 11633 // Non-authenticating HTTPS server with a direct connection. |
| 11483 TestRound(kGetAuth, kFailure, kAuthErr)}}, | 11634 {NULL, |
| 11484 { NULL, AUTH_NONE, OK, kSecureServer, AUTH_ASYNC, OK, 2, 0, | 11635 AUTH_NONE, |
| 11485 { TestRound(kGet, kServerChallenge, OK), | 11636 OK, |
| 11486 TestRound(kGetAuth, kSuccess, OK)}}, | 11637 kSecureServer, |
| 11487 { NULL, AUTH_NONE, OK, kSecureServer, AUTH_ASYNC, kAuthErr, 2, 0, | 11638 AUTH_NONE, |
| 11488 { TestRound(kGet, kServerChallenge, OK), | 11639 OK, |
| 11489 TestRound(kGetAuth, kFailure, kAuthErr)}}, | 11640 1, |
| 11490 // Non-authenticating HTTPS server with a non-authenticating proxy. | 11641 0, |
| 11491 { kProxy, AUTH_NONE, OK, kSecureServer, AUTH_NONE, OK, 1, 0, | 11642 {TestRound(kGet, kSuccess, OK)}}, |
| 11492 { TestRound(kConnect, kProxyConnected, OK, &kGet, &kSuccess)}}, | 11643 // Authenticating HTTPS server with a direct connection. |
| 11493 // Authenticating HTTPS server through a non-authenticating proxy. | 11644 {NULL, |
| 11494 { kProxy, AUTH_NONE, OK, kSecureServer, AUTH_SYNC, OK, 2, 0, | 11645 AUTH_NONE, |
| 11495 { TestRound(kConnect, kProxyConnected, OK, &kGet, &kServerChallenge), | 11646 OK, |
| 11496 TestRound(kGetAuth, kSuccess, OK)}}, | 11647 kSecureServer, |
| 11497 { kProxy, AUTH_NONE, OK, kSecureServer, AUTH_SYNC, kAuthErr, 2, 0, | 11648 AUTH_SYNC, |
| 11498 { TestRound(kConnect, kProxyConnected, OK, &kGet, &kServerChallenge), | 11649 OK, |
| 11499 TestRound(kGetAuth, kFailure, kAuthErr)}}, | 11650 2, |
| 11500 { kProxy, AUTH_NONE, OK, kSecureServer, AUTH_ASYNC, OK, 2, 0, | 11651 0, |
| 11501 { TestRound(kConnect, kProxyConnected, OK, &kGet, &kServerChallenge), | 11652 {TestRound(kGet, kServerChallenge, OK), |
| 11502 TestRound(kGetAuth, kSuccess, OK)}}, | 11653 TestRound(kGetAuth, kSuccess, OK)}}, |
| 11503 { kProxy, AUTH_NONE, OK, kSecureServer, AUTH_ASYNC, kAuthErr, 2, 0, | 11654 {NULL, |
| 11504 { TestRound(kConnect, kProxyConnected, OK, &kGet, &kServerChallenge), | 11655 AUTH_NONE, |
| 11505 TestRound(kGetAuth, kFailure, kAuthErr)}}, | 11656 OK, |
| 11506 // Non-Authenticating HTTPS server through an authenticating proxy. | 11657 kSecureServer, |
| 11507 { kProxy, AUTH_SYNC, OK, kSecureServer, AUTH_NONE, OK, 2, 1, | 11658 AUTH_SYNC, |
| 11508 { TestRound(kConnect, kProxyChallenge, OK), | 11659 ERR_INVALID_AUTH_CREDENTIALS, |
| 11660 2, |
| 11661 0, |
| 11662 {TestRound(kGet, kServerChallenge, OK), |
| 11663 TestRound(kGetAuth, kFailure, ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11664 {NULL, |
| 11665 AUTH_NONE, |
| 11666 OK, |
| 11667 kSecureServer, |
| 11668 AUTH_ASYNC, |
| 11669 OK, |
| 11670 2, |
| 11671 0, |
| 11672 {TestRound(kGet, kServerChallenge, OK), |
| 11673 TestRound(kGetAuth, kSuccess, OK)}}, |
| 11674 {NULL, |
| 11675 AUTH_NONE, |
| 11676 OK, |
| 11677 kSecureServer, |
| 11678 AUTH_ASYNC, |
| 11679 ERR_INVALID_AUTH_CREDENTIALS, |
| 11680 2, |
| 11681 0, |
| 11682 {TestRound(kGet, kServerChallenge, OK), |
| 11683 TestRound(kGetAuth, kFailure, ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11684 // Non-authenticating HTTPS server with a non-authenticating proxy. |
| 11685 {kProxy, |
| 11686 AUTH_NONE, |
| 11687 OK, |
| 11688 kSecureServer, |
| 11689 AUTH_NONE, |
| 11690 OK, |
| 11691 1, |
| 11692 0, |
| 11693 {TestRound(kConnect, kProxyConnected, OK, &kGet, &kSuccess)}}, |
| 11694 // Authenticating HTTPS server through a non-authenticating proxy. |
| 11695 {kProxy, |
| 11696 AUTH_NONE, |
| 11697 OK, |
| 11698 kSecureServer, |
| 11699 AUTH_SYNC, |
| 11700 OK, |
| 11701 2, |
| 11702 0, |
| 11703 {TestRound(kConnect, kProxyConnected, OK, &kGet, &kServerChallenge), |
| 11704 TestRound(kGetAuth, kSuccess, OK)}}, |
| 11705 {kProxy, |
| 11706 AUTH_NONE, |
| 11707 OK, |
| 11708 kSecureServer, |
| 11709 AUTH_SYNC, |
| 11710 ERR_INVALID_AUTH_CREDENTIALS, |
| 11711 2, |
| 11712 0, |
| 11713 {TestRound(kConnect, kProxyConnected, OK, &kGet, &kServerChallenge), |
| 11714 TestRound(kGetAuth, kFailure, ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11715 {kProxy, |
| 11716 AUTH_NONE, |
| 11717 OK, |
| 11718 kSecureServer, |
| 11719 AUTH_ASYNC, |
| 11720 OK, |
| 11721 2, |
| 11722 0, |
| 11723 {TestRound(kConnect, kProxyConnected, OK, &kGet, &kServerChallenge), |
| 11724 TestRound(kGetAuth, kSuccess, OK)}}, |
| 11725 {kProxy, |
| 11726 AUTH_NONE, |
| 11727 OK, |
| 11728 kSecureServer, |
| 11729 AUTH_ASYNC, |
| 11730 ERR_INVALID_AUTH_CREDENTIALS, |
| 11731 2, |
| 11732 0, |
| 11733 {TestRound(kConnect, kProxyConnected, OK, &kGet, &kServerChallenge), |
| 11734 TestRound(kGetAuth, kFailure, ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11735 // Non-Authenticating HTTPS server through an authenticating proxy. |
| 11736 {kProxy, |
| 11737 AUTH_SYNC, |
| 11738 OK, |
| 11739 kSecureServer, |
| 11740 AUTH_NONE, |
| 11741 OK, |
| 11742 2, |
| 11743 1, |
| 11744 {TestRound(kConnect, kProxyChallenge, OK), |
| 11509 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, &kSuccess)}}, | 11745 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, &kSuccess)}}, |
| 11510 { kProxy, AUTH_SYNC, kAuthErr, kSecureServer, AUTH_NONE, OK, 2, kNoSSL, | 11746 {kProxy, |
| 11511 { TestRound(kConnect, kProxyChallenge, OK), | 11747 AUTH_SYNC, |
| 11512 TestRound(kConnectProxyAuth, kFailure, kAuthErr)}}, | 11748 ERR_INVALID_AUTH_CREDENTIALS, |
| 11513 { kProxy, AUTH_ASYNC, OK, kSecureServer, AUTH_NONE, OK, 2, 1, | 11749 kSecureServer, |
| 11514 { TestRound(kConnect, kProxyChallenge, OK), | 11750 AUTH_NONE, |
| 11751 OK, |
| 11752 2, |
| 11753 kNoSSL, |
| 11754 {TestRound(kConnect, kProxyChallenge, OK), |
| 11755 TestRound(kConnectProxyAuth, kFailure, ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11756 {kProxy, |
| 11757 AUTH_ASYNC, |
| 11758 OK, |
| 11759 kSecureServer, |
| 11760 AUTH_NONE, |
| 11761 OK, |
| 11762 2, |
| 11763 1, |
| 11764 {TestRound(kConnect, kProxyChallenge, OK), |
| 11515 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, &kSuccess)}}, | 11765 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, &kSuccess)}}, |
| 11516 { kProxy, AUTH_ASYNC, kAuthErr, kSecureServer, AUTH_NONE, OK, 2, kNoSSL, | 11766 {kProxy, |
| 11517 { TestRound(kConnect, kProxyChallenge, OK), | 11767 AUTH_ASYNC, |
| 11518 TestRound(kConnectProxyAuth, kFailure, kAuthErr)}}, | 11768 ERR_INVALID_AUTH_CREDENTIALS, |
| 11519 // Authenticating HTTPS server through an authenticating proxy. | 11769 kSecureServer, |
| 11520 { kProxy, AUTH_SYNC, OK, kSecureServer, AUTH_SYNC, OK, 3, 1, | 11770 AUTH_NONE, |
| 11521 { TestRound(kConnect, kProxyChallenge, OK), | 11771 OK, |
| 11522 TestRound(kConnectProxyAuth, kProxyConnected, OK, | 11772 2, |
| 11523 &kGet, &kServerChallenge), | 11773 kNoSSL, |
| 11524 TestRound(kGetAuth, kSuccess, OK)}}, | 11774 {TestRound(kConnect, kProxyChallenge, OK), |
| 11525 { kProxy, AUTH_SYNC, OK, kSecureServer, AUTH_SYNC, kAuthErr, 3, 1, | 11775 TestRound(kConnectProxyAuth, kFailure, ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11526 { TestRound(kConnect, kProxyChallenge, OK), | 11776 // Authenticating HTTPS server through an authenticating proxy. |
| 11527 TestRound(kConnectProxyAuth, kProxyConnected, OK, | 11777 {kProxy, |
| 11528 &kGet, &kServerChallenge), | 11778 AUTH_SYNC, |
| 11529 TestRound(kGetAuth, kFailure, kAuthErr)}}, | 11779 OK, |
| 11530 { kProxy, AUTH_ASYNC, OK, kSecureServer, AUTH_SYNC, OK, 3, 1, | 11780 kSecureServer, |
| 11531 { TestRound(kConnect, kProxyChallenge, OK), | 11781 AUTH_SYNC, |
| 11532 TestRound(kConnectProxyAuth, kProxyConnected, OK, | 11782 OK, |
| 11533 &kGet, &kServerChallenge), | 11783 3, |
| 11534 TestRound(kGetAuth, kSuccess, OK)}}, | 11784 1, |
| 11535 { kProxy, AUTH_ASYNC, OK, kSecureServer, AUTH_SYNC, kAuthErr, 3, 1, | 11785 {TestRound(kConnect, kProxyChallenge, OK), |
| 11536 { TestRound(kConnect, kProxyChallenge, OK), | 11786 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, |
| 11537 TestRound(kConnectProxyAuth, kProxyConnected, OK, | 11787 &kServerChallenge), |
| 11538 &kGet, &kServerChallenge), | 11788 TestRound(kGetAuth, kSuccess, OK)}}, |
| 11539 TestRound(kGetAuth, kFailure, kAuthErr)}}, | 11789 {kProxy, |
| 11540 { kProxy, AUTH_SYNC, OK, kSecureServer, AUTH_ASYNC, OK, 3, 1, | 11790 AUTH_SYNC, |
| 11541 { TestRound(kConnect, kProxyChallenge, OK), | 11791 OK, |
| 11542 TestRound(kConnectProxyAuth, kProxyConnected, OK, | 11792 kSecureServer, |
| 11543 &kGet, &kServerChallenge), | 11793 AUTH_SYNC, |
| 11544 TestRound(kGetAuth, kSuccess, OK)}}, | 11794 ERR_INVALID_AUTH_CREDENTIALS, |
| 11545 { kProxy, AUTH_SYNC, OK, kSecureServer, AUTH_ASYNC, kAuthErr, 3, 1, | 11795 3, |
| 11546 { TestRound(kConnect, kProxyChallenge, OK), | 11796 1, |
| 11547 TestRound(kConnectProxyAuth, kProxyConnected, OK, | 11797 {TestRound(kConnect, kProxyChallenge, OK), |
| 11548 &kGet, &kServerChallenge), | 11798 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, |
| 11549 TestRound(kGetAuth, kFailure, kAuthErr)}}, | 11799 &kServerChallenge), |
| 11550 { kProxy, AUTH_ASYNC, OK, kSecureServer, AUTH_ASYNC, OK, 3, 1, | 11800 TestRound(kGetAuth, kFailure, ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11551 { TestRound(kConnect, kProxyChallenge, OK), | 11801 {kProxy, |
| 11552 TestRound(kConnectProxyAuth, kProxyConnected, OK, | 11802 AUTH_ASYNC, |
| 11553 &kGet, &kServerChallenge), | 11803 OK, |
| 11554 TestRound(kGetAuth, kSuccess, OK)}}, | 11804 kSecureServer, |
| 11555 { kProxy, AUTH_ASYNC, OK, kSecureServer, AUTH_ASYNC, kAuthErr, 3, 1, | 11805 AUTH_SYNC, |
| 11556 { TestRound(kConnect, kProxyChallenge, OK), | 11806 OK, |
| 11557 TestRound(kConnectProxyAuth, kProxyConnected, OK, | 11807 3, |
| 11558 &kGet, &kServerChallenge), | 11808 1, |
| 11559 TestRound(kGetAuth, kFailure, kAuthErr)}}, | 11809 {TestRound(kConnect, kProxyChallenge, OK), |
| 11810 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, |
| 11811 &kServerChallenge), |
| 11812 TestRound(kGetAuth, kSuccess, OK)}}, |
| 11813 {kProxy, |
| 11814 AUTH_ASYNC, |
| 11815 OK, |
| 11816 kSecureServer, |
| 11817 AUTH_SYNC, |
| 11818 ERR_INVALID_AUTH_CREDENTIALS, |
| 11819 3, |
| 11820 1, |
| 11821 {TestRound(kConnect, kProxyChallenge, OK), |
| 11822 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, |
| 11823 &kServerChallenge), |
| 11824 TestRound(kGetAuth, kFailure, ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11825 {kProxy, |
| 11826 AUTH_SYNC, |
| 11827 OK, |
| 11828 kSecureServer, |
| 11829 AUTH_ASYNC, |
| 11830 OK, |
| 11831 3, |
| 11832 1, |
| 11833 {TestRound(kConnect, kProxyChallenge, OK), |
| 11834 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, |
| 11835 &kServerChallenge), |
| 11836 TestRound(kGetAuth, kSuccess, OK)}}, |
| 11837 {kProxy, |
| 11838 AUTH_SYNC, |
| 11839 OK, |
| 11840 kSecureServer, |
| 11841 AUTH_ASYNC, |
| 11842 ERR_INVALID_AUTH_CREDENTIALS, |
| 11843 3, |
| 11844 1, |
| 11845 {TestRound(kConnect, kProxyChallenge, OK), |
| 11846 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, |
| 11847 &kServerChallenge), |
| 11848 TestRound(kGetAuth, kFailure, ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11849 {kProxy, |
| 11850 AUTH_ASYNC, |
| 11851 OK, |
| 11852 kSecureServer, |
| 11853 AUTH_ASYNC, |
| 11854 OK, |
| 11855 3, |
| 11856 1, |
| 11857 {TestRound(kConnect, kProxyChallenge, OK), |
| 11858 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, |
| 11859 &kServerChallenge), |
| 11860 TestRound(kGetAuth, kSuccess, OK)}}, |
| 11861 {kProxy, |
| 11862 AUTH_ASYNC, |
| 11863 OK, |
| 11864 kSecureServer, |
| 11865 AUTH_ASYNC, |
| 11866 ERR_INVALID_AUTH_CREDENTIALS, |
| 11867 3, |
| 11868 1, |
| 11869 {TestRound(kConnect, kProxyChallenge, OK), |
| 11870 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, |
| 11871 &kServerChallenge), |
| 11872 TestRound(kGetAuth, kFailure, ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11560 }; | 11873 }; |
| 11561 | 11874 |
| 11562 for (size_t i = 0; i < arraysize(test_configs); ++i) { | 11875 for (size_t i = 0; i < arraysize(test_configs); ++i) { |
| 11563 HttpAuthHandlerMock::Factory* auth_factory( | 11876 HttpAuthHandlerMock::Factory* auth_factory( |
| 11564 new HttpAuthHandlerMock::Factory()); | 11877 new HttpAuthHandlerMock::Factory()); |
| 11565 session_deps_.http_auth_handler_factory.reset(auth_factory); | 11878 session_deps_.http_auth_handler_factory.reset(auth_factory); |
| 11566 SSLInfo empty_ssl_info; | 11879 SSLInfo empty_ssl_info; |
| 11567 const TestConfig& test_config = test_configs[i]; | 11880 const TestConfig& test_config = test_configs[i]; |
| 11568 | 11881 |
| 11569 // Set up authentication handlers as necessary. | 11882 // Set up authentication handlers as necessary. |
| (...skipping 3981 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 15551 base::RunLoop().RunUntilIdle(); | 15864 base::RunLoop().RunUntilIdle(); |
| 15552 | 15865 |
| 15553 EXPECT_TRUE(trans.GetResponseInfo()->was_fetched_via_spdy); | 15866 EXPECT_TRUE(trans.GetResponseInfo()->was_fetched_via_spdy); |
| 15554 HttpRequestHeaders headers; | 15867 HttpRequestHeaders headers; |
| 15555 ASSERT_TRUE(trans.GetFullRequestHeaders(&headers)); | 15868 ASSERT_TRUE(trans.GetFullRequestHeaders(&headers)); |
| 15556 EXPECT_TRUE(headers.HasHeader(HttpRequestHeaders::kTokenBinding)); | 15869 EXPECT_TRUE(headers.HasHeader(HttpRequestHeaders::kTokenBinding)); |
| 15557 } | 15870 } |
| 15558 #endif // !defined(OS_IOS) | 15871 #endif // !defined(OS_IOS) |
| 15559 | 15872 |
| 15560 } // namespace net | 15873 } // namespace net |
| OLD | NEW |