| 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 11215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11226 // need to test all permutations of the backend server). | 11226 // need to test all permutations of the backend server). |
| 11227 // | 11227 // |
| 11228 // The test proceeds by going over each of the configuration cases, and | 11228 // The test proceeds by going over each of the configuration cases, and |
| 11229 // potentially running up to three rounds in each of the tests. The TestConfig | 11229 // potentially running up to three rounds in each of the tests. The TestConfig |
| 11230 // specifies both the configuration for the test as well as the expectations | 11230 // specifies both the configuration for the test as well as the expectations |
| 11231 // for the results. | 11231 // for the results. |
| 11232 TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { | 11232 TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
| 11233 static const char kServer[] = "http://www.example.com"; | 11233 static const char kServer[] = "http://www.example.com"; |
| 11234 static const char kSecureServer[] = "https://www.example.com"; | 11234 static const char kSecureServer[] = "https://www.example.com"; |
| 11235 static const char kProxy[] = "myproxy:70"; | 11235 static const char kProxy[] = "myproxy:70"; |
| 11236 const int kAuthErr = ERR_INVALID_AUTH_CREDENTIALS; | |
| 11237 | 11236 |
| 11238 enum AuthTiming { | 11237 enum AuthTiming { |
| 11239 AUTH_NONE, | 11238 AUTH_NONE, |
| 11240 AUTH_SYNC, | 11239 AUTH_SYNC, |
| 11241 AUTH_ASYNC, | 11240 AUTH_ASYNC, |
| 11242 }; | 11241 }; |
| 11243 | 11242 |
| 11244 const MockWrite kGet( | 11243 const MockWrite kGet( |
| 11245 "GET / HTTP/1.1\r\n" | 11244 "GET / HTTP/1.1\r\n" |
| 11246 "Host: www.example.com\r\n" | 11245 "Host: www.example.com\r\n" |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11343 const char* const proxy_url; | 11342 const char* const proxy_url; |
| 11344 AuthTiming proxy_auth_timing; | 11343 AuthTiming proxy_auth_timing; |
| 11345 int proxy_auth_rv; | 11344 int proxy_auth_rv; |
| 11346 const char* const server_url; | 11345 const char* const server_url; |
| 11347 AuthTiming server_auth_timing; | 11346 AuthTiming server_auth_timing; |
| 11348 int server_auth_rv; | 11347 int server_auth_rv; |
| 11349 int num_auth_rounds; | 11348 int num_auth_rounds; |
| 11350 int first_ssl_round; | 11349 int first_ssl_round; |
| 11351 TestRound rounds[3]; | 11350 TestRound rounds[3]; |
| 11352 } test_configs[] = { | 11351 } test_configs[] = { |
| 11353 // Non-authenticating HTTP server with a direct connection. | 11352 // Non-authenticating HTTP server with a direct connection. |
| 11354 { NULL, AUTH_NONE, OK, kServer, AUTH_NONE, OK, 1, kNoSSL, | 11353 {NULL, |
| 11355 { TestRound(kGet, kSuccess, OK)}}, | 11354 AUTH_NONE, |
| 11356 // Authenticating HTTP server with a direct connection. | 11355 OK, |
| 11357 { NULL, AUTH_NONE, OK, kServer, AUTH_SYNC, OK, 2, kNoSSL, | 11356 kServer, |
| 11358 { TestRound(kGet, kServerChallenge, OK), | 11357 AUTH_NONE, |
| 11359 TestRound(kGetAuth, kSuccess, OK)}}, | 11358 OK, |
| 11360 { NULL, AUTH_NONE, OK, kServer, AUTH_SYNC, kAuthErr, 2, kNoSSL, | 11359 1, |
| 11361 { TestRound(kGet, kServerChallenge, OK), | 11360 kNoSSL, |
| 11362 TestRound(kGetAuth, kFailure, kAuthErr)}}, | 11361 {TestRound(kGet, kSuccess, OK)}}, |
| 11363 { NULL, AUTH_NONE, OK, kServer, AUTH_ASYNC, OK, 2, kNoSSL, | 11362 // Authenticating HTTP server with a direct connection. |
| 11364 { TestRound(kGet, kServerChallenge, OK), | 11363 {NULL, |
| 11365 TestRound(kGetAuth, kSuccess, OK)}}, | 11364 AUTH_NONE, |
| 11366 { NULL, AUTH_NONE, OK, kServer, AUTH_ASYNC, kAuthErr, 2, kNoSSL, | 11365 OK, |
| 11367 { TestRound(kGet, kServerChallenge, OK), | 11366 kServer, |
| 11368 TestRound(kGetAuth, kFailure, kAuthErr)}}, | 11367 AUTH_SYNC, |
| 11369 // Non-authenticating HTTP server through a non-authenticating proxy. | 11368 OK, |
| 11370 { kProxy, AUTH_NONE, OK, kServer, AUTH_NONE, OK, 1, kNoSSL, | 11369 2, |
| 11371 { TestRound(kGetProxy, kSuccess, OK)}}, | 11370 kNoSSL, |
| 11372 // Authenticating HTTP server through a non-authenticating proxy. | 11371 {TestRound(kGet, kServerChallenge, OK), |
| 11373 { kProxy, AUTH_NONE, OK, kServer, AUTH_SYNC, OK, 2, kNoSSL, | 11372 TestRound(kGetAuth, kSuccess, OK)}}, |
| 11374 { TestRound(kGetProxy, kServerChallenge, OK), | 11373 {NULL, |
| 11374 AUTH_NONE, |
| 11375 OK, |
| 11376 kServer, |
| 11377 AUTH_SYNC, |
| 11378 ERR_INVALID_AUTH_CREDENTIALS, |
| 11379 2, |
| 11380 kNoSSL, |
| 11381 {TestRound(kGet, kServerChallenge, OK), |
| 11382 TestRound(kGetAuth, kFailure, ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11383 {NULL, |
| 11384 AUTH_NONE, |
| 11385 OK, |
| 11386 kServer, |
| 11387 AUTH_ASYNC, |
| 11388 OK, |
| 11389 2, |
| 11390 kNoSSL, |
| 11391 {TestRound(kGet, kServerChallenge, OK), |
| 11392 TestRound(kGetAuth, kSuccess, OK)}}, |
| 11393 {NULL, |
| 11394 AUTH_NONE, |
| 11395 OK, |
| 11396 kServer, |
| 11397 AUTH_ASYNC, |
| 11398 ERR_INVALID_AUTH_CREDENTIALS, |
| 11399 2, |
| 11400 kNoSSL, |
| 11401 {TestRound(kGet, kServerChallenge, OK), |
| 11402 TestRound(kGetAuth, kFailure, ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11403 // Non-authenticating HTTP server through a non-authenticating proxy. |
| 11404 {kProxy, |
| 11405 AUTH_NONE, |
| 11406 OK, |
| 11407 kServer, |
| 11408 AUTH_NONE, |
| 11409 OK, |
| 11410 1, |
| 11411 kNoSSL, |
| 11412 {TestRound(kGetProxy, kSuccess, OK)}}, |
| 11413 // Authenticating HTTP server through a non-authenticating proxy. |
| 11414 {kProxy, |
| 11415 AUTH_NONE, |
| 11416 OK, |
| 11417 kServer, |
| 11418 AUTH_SYNC, |
| 11419 OK, |
| 11420 2, |
| 11421 kNoSSL, |
| 11422 {TestRound(kGetProxy, kServerChallenge, OK), |
| 11375 TestRound(kGetAuthThroughProxy, kSuccess, OK)}}, | 11423 TestRound(kGetAuthThroughProxy, kSuccess, OK)}}, |
| 11376 { kProxy, AUTH_NONE, OK, kServer, AUTH_SYNC, kAuthErr, 2, kNoSSL, | 11424 {kProxy, |
| 11377 { TestRound(kGetProxy, kServerChallenge, OK), | 11425 AUTH_NONE, |
| 11378 TestRound(kGetAuthThroughProxy, kFailure, kAuthErr)}}, | 11426 OK, |
| 11379 { kProxy, AUTH_NONE, OK, kServer, AUTH_ASYNC, OK, 2, kNoSSL, | 11427 kServer, |
| 11380 { TestRound(kGetProxy, kServerChallenge, OK), | 11428 AUTH_SYNC, |
| 11429 ERR_INVALID_AUTH_CREDENTIALS, |
| 11430 2, |
| 11431 kNoSSL, |
| 11432 {TestRound(kGetProxy, kServerChallenge, OK), |
| 11433 TestRound(kGetAuthThroughProxy, kFailure, |
| 11434 ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11435 {kProxy, |
| 11436 AUTH_NONE, |
| 11437 OK, |
| 11438 kServer, |
| 11439 AUTH_ASYNC, |
| 11440 OK, |
| 11441 2, |
| 11442 kNoSSL, |
| 11443 {TestRound(kGetProxy, kServerChallenge, OK), |
| 11381 TestRound(kGetAuthThroughProxy, kSuccess, OK)}}, | 11444 TestRound(kGetAuthThroughProxy, kSuccess, OK)}}, |
| 11382 { kProxy, AUTH_NONE, OK, kServer, AUTH_ASYNC, kAuthErr, 2, kNoSSL, | 11445 {kProxy, |
| 11383 { TestRound(kGetProxy, kServerChallenge, OK), | 11446 AUTH_NONE, |
| 11384 TestRound(kGetAuthThroughProxy, kFailure, kAuthErr)}}, | 11447 OK, |
| 11385 // Non-authenticating HTTP server through an authenticating proxy. | 11448 kServer, |
| 11386 { kProxy, AUTH_SYNC, OK, kServer, AUTH_NONE, OK, 2, kNoSSL, | 11449 AUTH_ASYNC, |
| 11387 { TestRound(kGetProxy, kProxyChallenge, OK), | 11450 ERR_INVALID_AUTH_CREDENTIALS, |
| 11451 2, |
| 11452 kNoSSL, |
| 11453 {TestRound(kGetProxy, kServerChallenge, OK), |
| 11454 TestRound(kGetAuthThroughProxy, kFailure, |
| 11455 ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11456 // Non-authenticating HTTP server through an authenticating proxy. |
| 11457 {kProxy, |
| 11458 AUTH_SYNC, |
| 11459 OK, |
| 11460 kServer, |
| 11461 AUTH_NONE, |
| 11462 OK, |
| 11463 2, |
| 11464 kNoSSL, |
| 11465 {TestRound(kGetProxy, kProxyChallenge, OK), |
| 11388 TestRound(kGetProxyAuth, kSuccess, OK)}}, | 11466 TestRound(kGetProxyAuth, kSuccess, OK)}}, |
| 11389 { kProxy, AUTH_SYNC, kAuthErr, kServer, AUTH_NONE, OK, 2, kNoSSL, | 11467 {kProxy, |
| 11390 { TestRound(kGetProxy, kProxyChallenge, OK), | 11468 AUTH_SYNC, |
| 11391 TestRound(kGetProxyAuth, kFailure, kAuthErr)}}, | 11469 ERR_INVALID_AUTH_CREDENTIALS, |
| 11392 { kProxy, AUTH_ASYNC, OK, kServer, AUTH_NONE, OK, 2, kNoSSL, | 11470 kServer, |
| 11393 { TestRound(kGetProxy, kProxyChallenge, OK), | 11471 AUTH_NONE, |
| 11472 OK, |
| 11473 2, |
| 11474 kNoSSL, |
| 11475 {TestRound(kGetProxy, kProxyChallenge, OK), |
| 11476 TestRound(kGetProxyAuth, kFailure, ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11477 {kProxy, |
| 11478 AUTH_ASYNC, |
| 11479 OK, |
| 11480 kServer, |
| 11481 AUTH_NONE, |
| 11482 OK, |
| 11483 2, |
| 11484 kNoSSL, |
| 11485 {TestRound(kGetProxy, kProxyChallenge, OK), |
| 11394 TestRound(kGetProxyAuth, kSuccess, OK)}}, | 11486 TestRound(kGetProxyAuth, kSuccess, OK)}}, |
| 11395 { kProxy, AUTH_ASYNC, kAuthErr, kServer, AUTH_NONE, OK, 2, kNoSSL, | 11487 {kProxy, |
| 11396 { TestRound(kGetProxy, kProxyChallenge, OK), | 11488 AUTH_ASYNC, |
| 11397 TestRound(kGetProxyAuth, kFailure, kAuthErr)}}, | 11489 ERR_INVALID_AUTH_CREDENTIALS, |
| 11398 // Authenticating HTTP server through an authenticating proxy. | 11490 kServer, |
| 11399 { kProxy, AUTH_SYNC, OK, kServer, AUTH_SYNC, OK, 3, kNoSSL, | 11491 AUTH_NONE, |
| 11400 { TestRound(kGetProxy, kProxyChallenge, OK), | 11492 OK, |
| 11493 2, |
| 11494 kNoSSL, |
| 11495 {TestRound(kGetProxy, kProxyChallenge, OK), |
| 11496 TestRound(kGetProxyAuth, kFailure, ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11497 // Authenticating HTTP server through an authenticating proxy. |
| 11498 {kProxy, |
| 11499 AUTH_SYNC, |
| 11500 OK, |
| 11501 kServer, |
| 11502 AUTH_SYNC, |
| 11503 OK, |
| 11504 3, |
| 11505 kNoSSL, |
| 11506 {TestRound(kGetProxy, kProxyChallenge, OK), |
| 11401 TestRound(kGetProxyAuth, kServerChallenge, OK), | 11507 TestRound(kGetProxyAuth, kServerChallenge, OK), |
| 11402 TestRound(kGetAuthWithProxyAuth, kSuccess, OK)}}, | 11508 TestRound(kGetAuthWithProxyAuth, kSuccess, OK)}}, |
| 11403 { kProxy, AUTH_SYNC, OK, kServer, AUTH_SYNC, kAuthErr, 3, kNoSSL, | 11509 {kProxy, |
| 11404 { TestRound(kGetProxy, kProxyChallenge, OK), | 11510 AUTH_SYNC, |
| 11405 TestRound(kGetProxyAuth, kServerChallenge, OK), | 11511 OK, |
| 11406 TestRound(kGetAuthWithProxyAuth, kFailure, kAuthErr)}}, | 11512 kServer, |
| 11407 { kProxy, AUTH_ASYNC, OK, kServer, AUTH_SYNC, OK, 3, kNoSSL, | 11513 AUTH_SYNC, |
| 11408 { TestRound(kGetProxy, kProxyChallenge, OK), | 11514 ERR_INVALID_AUTH_CREDENTIALS, |
| 11515 3, |
| 11516 kNoSSL, |
| 11517 {TestRound(kGetProxy, kProxyChallenge, OK), |
| 11518 TestRound(kGetProxyAuth, kServerChallenge, OK), |
| 11519 TestRound(kGetAuthWithProxyAuth, kFailure, |
| 11520 ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11521 {kProxy, |
| 11522 AUTH_ASYNC, |
| 11523 OK, |
| 11524 kServer, |
| 11525 AUTH_SYNC, |
| 11526 OK, |
| 11527 3, |
| 11528 kNoSSL, |
| 11529 {TestRound(kGetProxy, kProxyChallenge, OK), |
| 11409 TestRound(kGetProxyAuth, kServerChallenge, OK), | 11530 TestRound(kGetProxyAuth, kServerChallenge, OK), |
| 11410 TestRound(kGetAuthWithProxyAuth, kSuccess, OK)}}, | 11531 TestRound(kGetAuthWithProxyAuth, kSuccess, OK)}}, |
| 11411 { kProxy, AUTH_ASYNC, OK, kServer, AUTH_SYNC, kAuthErr, 3, kNoSSL, | 11532 {kProxy, |
| 11412 { TestRound(kGetProxy, kProxyChallenge, OK), | 11533 AUTH_ASYNC, |
| 11413 TestRound(kGetProxyAuth, kServerChallenge, OK), | 11534 OK, |
| 11414 TestRound(kGetAuthWithProxyAuth, kFailure, kAuthErr)}}, | 11535 kServer, |
| 11415 { kProxy, AUTH_SYNC, OK, kServer, AUTH_ASYNC, OK, 3, kNoSSL, | 11536 AUTH_SYNC, |
| 11416 { TestRound(kGetProxy, kProxyChallenge, OK), | 11537 ERR_INVALID_AUTH_CREDENTIALS, |
| 11538 3, |
| 11539 kNoSSL, |
| 11540 {TestRound(kGetProxy, kProxyChallenge, OK), |
| 11541 TestRound(kGetProxyAuth, kServerChallenge, OK), |
| 11542 TestRound(kGetAuthWithProxyAuth, kFailure, |
| 11543 ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11544 {kProxy, |
| 11545 AUTH_SYNC, |
| 11546 OK, |
| 11547 kServer, |
| 11548 AUTH_ASYNC, |
| 11549 OK, |
| 11550 3, |
| 11551 kNoSSL, |
| 11552 {TestRound(kGetProxy, kProxyChallenge, OK), |
| 11417 TestRound(kGetProxyAuth, kServerChallenge, OK), | 11553 TestRound(kGetProxyAuth, kServerChallenge, OK), |
| 11418 TestRound(kGetAuthWithProxyAuth, kSuccess, OK)}}, | 11554 TestRound(kGetAuthWithProxyAuth, kSuccess, OK)}}, |
| 11419 { kProxy, AUTH_SYNC, OK, kServer, AUTH_ASYNC, kAuthErr, 3, kNoSSL, | 11555 {kProxy, |
| 11420 { TestRound(kGetProxy, kProxyChallenge, OK), | 11556 AUTH_SYNC, |
| 11421 TestRound(kGetProxyAuth, kServerChallenge, OK), | 11557 OK, |
| 11422 TestRound(kGetAuthWithProxyAuth, kFailure, kAuthErr)}}, | 11558 kServer, |
| 11423 { kProxy, AUTH_ASYNC, OK, kServer, AUTH_ASYNC, OK, 3, kNoSSL, | 11559 AUTH_ASYNC, |
| 11424 { TestRound(kGetProxy, kProxyChallenge, OK), | 11560 ERR_INVALID_AUTH_CREDENTIALS, |
| 11561 3, |
| 11562 kNoSSL, |
| 11563 {TestRound(kGetProxy, kProxyChallenge, OK), |
| 11564 TestRound(kGetProxyAuth, kServerChallenge, OK), |
| 11565 TestRound(kGetAuthWithProxyAuth, kFailure, |
| 11566 ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11567 {kProxy, |
| 11568 AUTH_ASYNC, |
| 11569 OK, |
| 11570 kServer, |
| 11571 AUTH_ASYNC, |
| 11572 OK, |
| 11573 3, |
| 11574 kNoSSL, |
| 11575 {TestRound(kGetProxy, kProxyChallenge, OK), |
| 11425 TestRound(kGetProxyAuth, kServerChallenge, OK), | 11576 TestRound(kGetProxyAuth, kServerChallenge, OK), |
| 11426 TestRound(kGetAuthWithProxyAuth, kSuccess, OK)}}, | 11577 TestRound(kGetAuthWithProxyAuth, kSuccess, OK)}}, |
| 11427 { kProxy, AUTH_ASYNC, OK, kServer, AUTH_ASYNC, kAuthErr, 3, kNoSSL, | 11578 {kProxy, |
| 11428 { TestRound(kGetProxy, kProxyChallenge, OK), | 11579 AUTH_ASYNC, |
| 11429 TestRound(kGetProxyAuth, kServerChallenge, OK), | 11580 OK, |
| 11430 TestRound(kGetAuthWithProxyAuth, kFailure, kAuthErr)}}, | 11581 kServer, |
| 11431 // Non-authenticating HTTPS server with a direct connection. | 11582 AUTH_ASYNC, |
| 11432 { NULL, AUTH_NONE, OK, kSecureServer, AUTH_NONE, OK, 1, 0, | 11583 ERR_INVALID_AUTH_CREDENTIALS, |
| 11433 { TestRound(kGet, kSuccess, OK)}}, | 11584 3, |
| 11434 // Authenticating HTTPS server with a direct connection. | 11585 kNoSSL, |
| 11435 { NULL, AUTH_NONE, OK, kSecureServer, AUTH_SYNC, OK, 2, 0, | 11586 {TestRound(kGetProxy, kProxyChallenge, OK), |
| 11436 { TestRound(kGet, kServerChallenge, OK), | 11587 TestRound(kGetProxyAuth, kServerChallenge, OK), |
| 11437 TestRound(kGetAuth, kSuccess, OK)}}, | 11588 TestRound(kGetAuthWithProxyAuth, kFailure, |
| 11438 { NULL, AUTH_NONE, OK, kSecureServer, AUTH_SYNC, kAuthErr, 2, 0, | 11589 ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11439 { TestRound(kGet, kServerChallenge, OK), | 11590 // Non-authenticating HTTPS server with a direct connection. |
| 11440 TestRound(kGetAuth, kFailure, kAuthErr)}}, | 11591 {NULL, |
| 11441 { NULL, AUTH_NONE, OK, kSecureServer, AUTH_ASYNC, OK, 2, 0, | 11592 AUTH_NONE, |
| 11442 { TestRound(kGet, kServerChallenge, OK), | 11593 OK, |
| 11443 TestRound(kGetAuth, kSuccess, OK)}}, | 11594 kSecureServer, |
| 11444 { NULL, AUTH_NONE, OK, kSecureServer, AUTH_ASYNC, kAuthErr, 2, 0, | 11595 AUTH_NONE, |
| 11445 { TestRound(kGet, kServerChallenge, OK), | 11596 OK, |
| 11446 TestRound(kGetAuth, kFailure, kAuthErr)}}, | 11597 1, |
| 11447 // Non-authenticating HTTPS server with a non-authenticating proxy. | 11598 0, |
| 11448 { kProxy, AUTH_NONE, OK, kSecureServer, AUTH_NONE, OK, 1, 0, | 11599 {TestRound(kGet, kSuccess, OK)}}, |
| 11449 { TestRound(kConnect, kProxyConnected, OK, &kGet, &kSuccess)}}, | 11600 // Authenticating HTTPS server with a direct connection. |
| 11450 // Authenticating HTTPS server through a non-authenticating proxy. | 11601 {NULL, |
| 11451 { kProxy, AUTH_NONE, OK, kSecureServer, AUTH_SYNC, OK, 2, 0, | 11602 AUTH_NONE, |
| 11452 { TestRound(kConnect, kProxyConnected, OK, &kGet, &kServerChallenge), | 11603 OK, |
| 11453 TestRound(kGetAuth, kSuccess, OK)}}, | 11604 kSecureServer, |
| 11454 { kProxy, AUTH_NONE, OK, kSecureServer, AUTH_SYNC, kAuthErr, 2, 0, | 11605 AUTH_SYNC, |
| 11455 { TestRound(kConnect, kProxyConnected, OK, &kGet, &kServerChallenge), | 11606 OK, |
| 11456 TestRound(kGetAuth, kFailure, kAuthErr)}}, | 11607 2, |
| 11457 { kProxy, AUTH_NONE, OK, kSecureServer, AUTH_ASYNC, OK, 2, 0, | 11608 0, |
| 11458 { TestRound(kConnect, kProxyConnected, OK, &kGet, &kServerChallenge), | 11609 {TestRound(kGet, kServerChallenge, OK), |
| 11459 TestRound(kGetAuth, kSuccess, OK)}}, | 11610 TestRound(kGetAuth, kSuccess, OK)}}, |
| 11460 { kProxy, AUTH_NONE, OK, kSecureServer, AUTH_ASYNC, kAuthErr, 2, 0, | 11611 {NULL, |
| 11461 { TestRound(kConnect, kProxyConnected, OK, &kGet, &kServerChallenge), | 11612 AUTH_NONE, |
| 11462 TestRound(kGetAuth, kFailure, kAuthErr)}}, | 11613 OK, |
| 11463 // Non-Authenticating HTTPS server through an authenticating proxy. | 11614 kSecureServer, |
| 11464 { kProxy, AUTH_SYNC, OK, kSecureServer, AUTH_NONE, OK, 2, 1, | 11615 AUTH_SYNC, |
| 11465 { TestRound(kConnect, kProxyChallenge, OK), | 11616 ERR_INVALID_AUTH_CREDENTIALS, |
| 11617 2, |
| 11618 0, |
| 11619 {TestRound(kGet, kServerChallenge, OK), |
| 11620 TestRound(kGetAuth, kFailure, ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11621 {NULL, |
| 11622 AUTH_NONE, |
| 11623 OK, |
| 11624 kSecureServer, |
| 11625 AUTH_ASYNC, |
| 11626 OK, |
| 11627 2, |
| 11628 0, |
| 11629 {TestRound(kGet, kServerChallenge, OK), |
| 11630 TestRound(kGetAuth, kSuccess, OK)}}, |
| 11631 {NULL, |
| 11632 AUTH_NONE, |
| 11633 OK, |
| 11634 kSecureServer, |
| 11635 AUTH_ASYNC, |
| 11636 ERR_INVALID_AUTH_CREDENTIALS, |
| 11637 2, |
| 11638 0, |
| 11639 {TestRound(kGet, kServerChallenge, OK), |
| 11640 TestRound(kGetAuth, kFailure, ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11641 // Non-authenticating HTTPS server with a non-authenticating proxy. |
| 11642 {kProxy, |
| 11643 AUTH_NONE, |
| 11644 OK, |
| 11645 kSecureServer, |
| 11646 AUTH_NONE, |
| 11647 OK, |
| 11648 1, |
| 11649 0, |
| 11650 {TestRound(kConnect, kProxyConnected, OK, &kGet, &kSuccess)}}, |
| 11651 // Authenticating HTTPS server through a non-authenticating proxy. |
| 11652 {kProxy, |
| 11653 AUTH_NONE, |
| 11654 OK, |
| 11655 kSecureServer, |
| 11656 AUTH_SYNC, |
| 11657 OK, |
| 11658 2, |
| 11659 0, |
| 11660 {TestRound(kConnect, kProxyConnected, OK, &kGet, &kServerChallenge), |
| 11661 TestRound(kGetAuth, kSuccess, OK)}}, |
| 11662 {kProxy, |
| 11663 AUTH_NONE, |
| 11664 OK, |
| 11665 kSecureServer, |
| 11666 AUTH_SYNC, |
| 11667 ERR_INVALID_AUTH_CREDENTIALS, |
| 11668 2, |
| 11669 0, |
| 11670 {TestRound(kConnect, kProxyConnected, OK, &kGet, &kServerChallenge), |
| 11671 TestRound(kGetAuth, kFailure, ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11672 {kProxy, |
| 11673 AUTH_NONE, |
| 11674 OK, |
| 11675 kSecureServer, |
| 11676 AUTH_ASYNC, |
| 11677 OK, |
| 11678 2, |
| 11679 0, |
| 11680 {TestRound(kConnect, kProxyConnected, OK, &kGet, &kServerChallenge), |
| 11681 TestRound(kGetAuth, kSuccess, OK)}}, |
| 11682 {kProxy, |
| 11683 AUTH_NONE, |
| 11684 OK, |
| 11685 kSecureServer, |
| 11686 AUTH_ASYNC, |
| 11687 ERR_INVALID_AUTH_CREDENTIALS, |
| 11688 2, |
| 11689 0, |
| 11690 {TestRound(kConnect, kProxyConnected, OK, &kGet, &kServerChallenge), |
| 11691 TestRound(kGetAuth, kFailure, ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11692 // Non-Authenticating HTTPS server through an authenticating proxy. |
| 11693 {kProxy, |
| 11694 AUTH_SYNC, |
| 11695 OK, |
| 11696 kSecureServer, |
| 11697 AUTH_NONE, |
| 11698 OK, |
| 11699 2, |
| 11700 1, |
| 11701 {TestRound(kConnect, kProxyChallenge, OK), |
| 11466 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, &kSuccess)}}, | 11702 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, &kSuccess)}}, |
| 11467 { kProxy, AUTH_SYNC, kAuthErr, kSecureServer, AUTH_NONE, OK, 2, kNoSSL, | 11703 {kProxy, |
| 11468 { TestRound(kConnect, kProxyChallenge, OK), | 11704 AUTH_SYNC, |
| 11469 TestRound(kConnectProxyAuth, kFailure, kAuthErr)}}, | 11705 ERR_INVALID_AUTH_CREDENTIALS, |
| 11470 { kProxy, AUTH_ASYNC, OK, kSecureServer, AUTH_NONE, OK, 2, 1, | 11706 kSecureServer, |
| 11471 { TestRound(kConnect, kProxyChallenge, OK), | 11707 AUTH_NONE, |
| 11708 OK, |
| 11709 2, |
| 11710 kNoSSL, |
| 11711 {TestRound(kConnect, kProxyChallenge, OK), |
| 11712 TestRound(kConnectProxyAuth, kFailure, ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11713 {kProxy, |
| 11714 AUTH_ASYNC, |
| 11715 OK, |
| 11716 kSecureServer, |
| 11717 AUTH_NONE, |
| 11718 OK, |
| 11719 2, |
| 11720 1, |
| 11721 {TestRound(kConnect, kProxyChallenge, OK), |
| 11472 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, &kSuccess)}}, | 11722 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, &kSuccess)}}, |
| 11473 { kProxy, AUTH_ASYNC, kAuthErr, kSecureServer, AUTH_NONE, OK, 2, kNoSSL, | 11723 {kProxy, |
| 11474 { TestRound(kConnect, kProxyChallenge, OK), | 11724 AUTH_ASYNC, |
| 11475 TestRound(kConnectProxyAuth, kFailure, kAuthErr)}}, | 11725 ERR_INVALID_AUTH_CREDENTIALS, |
| 11476 // Authenticating HTTPS server through an authenticating proxy. | 11726 kSecureServer, |
| 11477 { kProxy, AUTH_SYNC, OK, kSecureServer, AUTH_SYNC, OK, 3, 1, | 11727 AUTH_NONE, |
| 11478 { TestRound(kConnect, kProxyChallenge, OK), | 11728 OK, |
| 11479 TestRound(kConnectProxyAuth, kProxyConnected, OK, | 11729 2, |
| 11480 &kGet, &kServerChallenge), | 11730 kNoSSL, |
| 11481 TestRound(kGetAuth, kSuccess, OK)}}, | 11731 {TestRound(kConnect, kProxyChallenge, OK), |
| 11482 { kProxy, AUTH_SYNC, OK, kSecureServer, AUTH_SYNC, kAuthErr, 3, 1, | 11732 TestRound(kConnectProxyAuth, kFailure, ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11483 { TestRound(kConnect, kProxyChallenge, OK), | 11733 // Authenticating HTTPS server through an authenticating proxy. |
| 11484 TestRound(kConnectProxyAuth, kProxyConnected, OK, | 11734 {kProxy, |
| 11485 &kGet, &kServerChallenge), | 11735 AUTH_SYNC, |
| 11486 TestRound(kGetAuth, kFailure, kAuthErr)}}, | 11736 OK, |
| 11487 { kProxy, AUTH_ASYNC, OK, kSecureServer, AUTH_SYNC, OK, 3, 1, | 11737 kSecureServer, |
| 11488 { TestRound(kConnect, kProxyChallenge, OK), | 11738 AUTH_SYNC, |
| 11489 TestRound(kConnectProxyAuth, kProxyConnected, OK, | 11739 OK, |
| 11490 &kGet, &kServerChallenge), | 11740 3, |
| 11491 TestRound(kGetAuth, kSuccess, OK)}}, | 11741 1, |
| 11492 { kProxy, AUTH_ASYNC, OK, kSecureServer, AUTH_SYNC, kAuthErr, 3, 1, | 11742 {TestRound(kConnect, kProxyChallenge, OK), |
| 11493 { TestRound(kConnect, kProxyChallenge, OK), | 11743 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, |
| 11494 TestRound(kConnectProxyAuth, kProxyConnected, OK, | 11744 &kServerChallenge), |
| 11495 &kGet, &kServerChallenge), | 11745 TestRound(kGetAuth, kSuccess, OK)}}, |
| 11496 TestRound(kGetAuth, kFailure, kAuthErr)}}, | 11746 {kProxy, |
| 11497 { kProxy, AUTH_SYNC, OK, kSecureServer, AUTH_ASYNC, OK, 3, 1, | 11747 AUTH_SYNC, |
| 11498 { TestRound(kConnect, kProxyChallenge, OK), | 11748 OK, |
| 11499 TestRound(kConnectProxyAuth, kProxyConnected, OK, | 11749 kSecureServer, |
| 11500 &kGet, &kServerChallenge), | 11750 AUTH_SYNC, |
| 11501 TestRound(kGetAuth, kSuccess, OK)}}, | 11751 ERR_INVALID_AUTH_CREDENTIALS, |
| 11502 { kProxy, AUTH_SYNC, OK, kSecureServer, AUTH_ASYNC, kAuthErr, 3, 1, | 11752 3, |
| 11503 { TestRound(kConnect, kProxyChallenge, OK), | 11753 1, |
| 11504 TestRound(kConnectProxyAuth, kProxyConnected, OK, | 11754 {TestRound(kConnect, kProxyChallenge, OK), |
| 11505 &kGet, &kServerChallenge), | 11755 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, |
| 11506 TestRound(kGetAuth, kFailure, kAuthErr)}}, | 11756 &kServerChallenge), |
| 11507 { kProxy, AUTH_ASYNC, OK, kSecureServer, AUTH_ASYNC, OK, 3, 1, | 11757 TestRound(kGetAuth, kFailure, ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11508 { TestRound(kConnect, kProxyChallenge, OK), | 11758 {kProxy, |
| 11509 TestRound(kConnectProxyAuth, kProxyConnected, OK, | 11759 AUTH_ASYNC, |
| 11510 &kGet, &kServerChallenge), | 11760 OK, |
| 11511 TestRound(kGetAuth, kSuccess, OK)}}, | 11761 kSecureServer, |
| 11512 { kProxy, AUTH_ASYNC, OK, kSecureServer, AUTH_ASYNC, kAuthErr, 3, 1, | 11762 AUTH_SYNC, |
| 11513 { TestRound(kConnect, kProxyChallenge, OK), | 11763 OK, |
| 11514 TestRound(kConnectProxyAuth, kProxyConnected, OK, | 11764 3, |
| 11515 &kGet, &kServerChallenge), | 11765 1, |
| 11516 TestRound(kGetAuth, kFailure, kAuthErr)}}, | 11766 {TestRound(kConnect, kProxyChallenge, OK), |
| 11767 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, |
| 11768 &kServerChallenge), |
| 11769 TestRound(kGetAuth, kSuccess, OK)}}, |
| 11770 {kProxy, |
| 11771 AUTH_ASYNC, |
| 11772 OK, |
| 11773 kSecureServer, |
| 11774 AUTH_SYNC, |
| 11775 ERR_INVALID_AUTH_CREDENTIALS, |
| 11776 3, |
| 11777 1, |
| 11778 {TestRound(kConnect, kProxyChallenge, OK), |
| 11779 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, |
| 11780 &kServerChallenge), |
| 11781 TestRound(kGetAuth, kFailure, ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11782 {kProxy, |
| 11783 AUTH_SYNC, |
| 11784 OK, |
| 11785 kSecureServer, |
| 11786 AUTH_ASYNC, |
| 11787 OK, |
| 11788 3, |
| 11789 1, |
| 11790 {TestRound(kConnect, kProxyChallenge, OK), |
| 11791 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, |
| 11792 &kServerChallenge), |
| 11793 TestRound(kGetAuth, kSuccess, OK)}}, |
| 11794 {kProxy, |
| 11795 AUTH_SYNC, |
| 11796 OK, |
| 11797 kSecureServer, |
| 11798 AUTH_ASYNC, |
| 11799 ERR_INVALID_AUTH_CREDENTIALS, |
| 11800 3, |
| 11801 1, |
| 11802 {TestRound(kConnect, kProxyChallenge, OK), |
| 11803 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, |
| 11804 &kServerChallenge), |
| 11805 TestRound(kGetAuth, kFailure, ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11806 {kProxy, |
| 11807 AUTH_ASYNC, |
| 11808 OK, |
| 11809 kSecureServer, |
| 11810 AUTH_ASYNC, |
| 11811 OK, |
| 11812 3, |
| 11813 1, |
| 11814 {TestRound(kConnect, kProxyChallenge, OK), |
| 11815 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, |
| 11816 &kServerChallenge), |
| 11817 TestRound(kGetAuth, kSuccess, OK)}}, |
| 11818 {kProxy, |
| 11819 AUTH_ASYNC, |
| 11820 OK, |
| 11821 kSecureServer, |
| 11822 AUTH_ASYNC, |
| 11823 ERR_INVALID_AUTH_CREDENTIALS, |
| 11824 3, |
| 11825 1, |
| 11826 {TestRound(kConnect, kProxyChallenge, OK), |
| 11827 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, |
| 11828 &kServerChallenge), |
| 11829 TestRound(kGetAuth, kFailure, ERR_INVALID_AUTH_CREDENTIALS)}}, |
| 11517 }; | 11830 }; |
| 11518 | 11831 |
| 11519 for (size_t i = 0; i < arraysize(test_configs); ++i) { | 11832 for (size_t i = 0; i < arraysize(test_configs); ++i) { |
| 11520 HttpAuthHandlerMock::Factory* auth_factory( | 11833 HttpAuthHandlerMock::Factory* auth_factory( |
| 11521 new HttpAuthHandlerMock::Factory()); | 11834 new HttpAuthHandlerMock::Factory()); |
| 11522 session_deps_.http_auth_handler_factory.reset(auth_factory); | 11835 session_deps_.http_auth_handler_factory.reset(auth_factory); |
| 11523 SSLInfo empty_ssl_info; | 11836 SSLInfo empty_ssl_info; |
| 11524 const TestConfig& test_config = test_configs[i]; | 11837 const TestConfig& test_config = test_configs[i]; |
| 11525 | 11838 |
| 11526 // Set up authentication handlers as necessary. | 11839 // Set up authentication handlers as necessary. |
| (...skipping 3994 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 15521 base::RunLoop().RunUntilIdle(); | 15834 base::RunLoop().RunUntilIdle(); |
| 15522 | 15835 |
| 15523 EXPECT_TRUE(trans.GetResponseInfo()->was_fetched_via_spdy); | 15836 EXPECT_TRUE(trans.GetResponseInfo()->was_fetched_via_spdy); |
| 15524 HttpRequestHeaders headers; | 15837 HttpRequestHeaders headers; |
| 15525 ASSERT_TRUE(trans.GetFullRequestHeaders(&headers)); | 15838 ASSERT_TRUE(trans.GetFullRequestHeaders(&headers)); |
| 15526 EXPECT_TRUE(headers.HasHeader(HttpRequestHeaders::kTokenBinding)); | 15839 EXPECT_TRUE(headers.HasHeader(HttpRequestHeaders::kTokenBinding)); |
| 15527 } | 15840 } |
| 15528 #endif // !defined(OS_IOS) | 15841 #endif // !defined(OS_IOS) |
| 15529 | 15842 |
| 15530 } // namespace net | 15843 } // namespace net |
| OLD | NEW |