Index: net/http/http_network_transaction_unittest.cc |
diff --git a/net/http/http_network_transaction_unittest.cc b/net/http/http_network_transaction_unittest.cc |
index b03612e4615e0dd8edfff764b2546d51ac3aac8d..f4ab0aad04960bf87a6afb3a4093e03e6448c9e9 100644 |
--- a/net/http/http_network_transaction_unittest.cc |
+++ b/net/http/http_network_transaction_unittest.cc |
@@ -11556,18 +11556,20 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
static const int kNoSSL = 500; |
struct TestConfig { |
+ int line_number; |
const char* const proxy_url; |
AuthTiming proxy_auth_timing; |
- int proxy_auth_rv; |
+ int first_generate_proxy_token_rv; |
const char* const server_url; |
AuthTiming server_auth_timing; |
- int server_auth_rv; |
+ int first_generate_server_token_rv; |
int num_auth_rounds; |
int first_ssl_round; |
TestRound rounds[4]; |
} test_configs[] = { |
// Non-authenticating HTTP server with a direct connection. |
- {NULL, |
+ {__LINE__, |
+ nullptr, |
AUTH_NONE, |
OK, |
kServer, |
@@ -11577,7 +11579,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
kNoSSL, |
{TestRound(kGet, kSuccess, OK)}}, |
// Authenticating HTTP server with a direct connection. |
- {NULL, |
+ {__LINE__, |
+ nullptr, |
AUTH_NONE, |
OK, |
kServer, |
@@ -11587,7 +11590,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
kNoSSL, |
{TestRound(kGet, kServerChallenge, OK), |
TestRound(kGetAuth, kSuccess, OK)}}, |
- {NULL, |
+ {__LINE__, |
+ nullptr, |
AUTH_NONE, |
OK, |
kServer, |
@@ -11598,7 +11602,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
{TestRound(kGet, kServerChallenge, OK), |
TestRound(kGet, kServerChallenge, OK), |
TestRound(kGetAuth, kSuccess, OK)}}, |
- {NULL, |
+ {__LINE__, |
+ nullptr, |
AUTH_NONE, |
OK, |
kServer, |
@@ -11607,7 +11612,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
2, |
kNoSSL, |
{TestRound(kGet, kServerChallenge, OK), TestRound(kGet, kSuccess, OK)}}, |
- {NULL, |
+ {__LINE__, |
+ nullptr, |
AUTH_NONE, |
OK, |
kServer, |
@@ -11616,7 +11622,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
2, |
kNoSSL, |
{TestRound(kGet, kServerChallenge, OK), TestRound(kGet, kSuccess, OK)}}, |
- {kProxy, |
+ {__LINE__, |
+ kProxy, |
AUTH_SYNC, |
ERR_FAILED, |
kServer, |
@@ -11626,7 +11633,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
kNoSSL, |
{TestRound(kGetProxy, kProxyChallenge, OK), |
TestRound(kGetProxy, kFailure, ERR_FAILED)}}, |
- {kProxy, |
+ {__LINE__, |
+ kProxy, |
AUTH_ASYNC, |
ERR_FAILED, |
kServer, |
@@ -11636,7 +11644,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
kNoSSL, |
{TestRound(kGetProxy, kProxyChallenge, OK), |
TestRound(kGetProxy, kFailure, ERR_FAILED)}}, |
- {NULL, |
+ {__LINE__, |
+ nullptr, |
AUTH_NONE, |
OK, |
kServer, |
@@ -11646,7 +11655,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
kNoSSL, |
{TestRound(kGet, kServerChallenge, OK), |
TestRound(kGet, kFailure, ERR_FAILED)}}, |
- {NULL, |
+ {__LINE__, |
+ nullptr, |
AUTH_NONE, |
OK, |
kServer, |
@@ -11656,7 +11666,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
kNoSSL, |
{TestRound(kGet, kServerChallenge, OK), |
TestRound(kGet, kFailure, ERR_FAILED)}}, |
- {NULL, |
+ {__LINE__, |
+ nullptr, |
AUTH_NONE, |
OK, |
kServer, |
@@ -11666,7 +11677,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
kNoSSL, |
{TestRound(kGet, kServerChallenge, OK), |
TestRound(kGetAuth, kSuccess, OK)}}, |
- {NULL, |
+ {__LINE__, |
+ nullptr, |
AUTH_NONE, |
OK, |
kServer, |
@@ -11679,7 +11691,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
TestRound(kGet, kServerChallenge, OK), |
TestRound(kGetAuth, kSuccess, OK)}}, |
// Non-authenticating HTTP server through a non-authenticating proxy. |
- {kProxy, |
+ {__LINE__, |
+ kProxy, |
AUTH_NONE, |
OK, |
kServer, |
@@ -11689,7 +11702,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
kNoSSL, |
{TestRound(kGetProxy, kSuccess, OK)}}, |
// Authenticating HTTP server through a non-authenticating proxy. |
- {kProxy, |
+ {__LINE__, |
+ kProxy, |
AUTH_NONE, |
OK, |
kServer, |
@@ -11699,7 +11713,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
kNoSSL, |
{TestRound(kGetProxy, kServerChallenge, OK), |
TestRound(kGetAuthThroughProxy, kSuccess, OK)}}, |
- {kProxy, |
+ {__LINE__, |
+ kProxy, |
AUTH_NONE, |
OK, |
kServer, |
@@ -11710,7 +11725,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
{TestRound(kGetProxy, kServerChallenge, OK), |
TestRound(kGetProxy, kServerChallenge, OK), |
TestRound(kGetAuthThroughProxy, kSuccess, OK)}}, |
- {kProxy, |
+ {__LINE__, |
+ kProxy, |
AUTH_NONE, |
OK, |
kServer, |
@@ -11720,7 +11736,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
kNoSSL, |
{TestRound(kGetProxy, kServerChallenge, OK), |
TestRound(kGetAuthThroughProxy, kSuccess, OK)}}, |
- {kProxy, |
+ {__LINE__, |
+ kProxy, |
AUTH_NONE, |
OK, |
kServer, |
@@ -11731,7 +11748,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
{TestRound(kGetProxy, kServerChallenge, OK), |
TestRound(kGetProxy, kSuccess, OK)}}, |
// Non-authenticating HTTP server through an authenticating proxy. |
- {kProxy, |
+ {__LINE__, |
+ kProxy, |
AUTH_SYNC, |
OK, |
kServer, |
@@ -11741,7 +11759,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
kNoSSL, |
{TestRound(kGetProxy, kProxyChallenge, OK), |
TestRound(kGetProxyAuth, kSuccess, OK)}}, |
- {kProxy, |
+ {__LINE__, |
+ kProxy, |
AUTH_SYNC, |
ERR_INVALID_AUTH_CREDENTIALS, |
kServer, |
@@ -11751,7 +11770,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
kNoSSL, |
{TestRound(kGetProxy, kProxyChallenge, OK), |
TestRound(kGetProxy, kSuccess, OK)}}, |
- {kProxy, |
+ {__LINE__, |
+ kProxy, |
AUTH_ASYNC, |
OK, |
kServer, |
@@ -11761,7 +11781,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
kNoSSL, |
{TestRound(kGetProxy, kProxyChallenge, OK), |
TestRound(kGetProxyAuth, kSuccess, OK)}}, |
- {kProxy, |
+ {__LINE__, |
+ kProxy, |
AUTH_ASYNC, |
ERR_INVALID_AUTH_CREDENTIALS, |
kServer, |
@@ -11771,8 +11792,21 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
kNoSSL, |
{TestRound(kGetProxy, kProxyChallenge, OK), |
TestRound(kGetProxy, kSuccess, OK)}}, |
+ {__LINE__, |
+ kProxy, |
+ AUTH_ASYNC, |
+ ERR_INVALID_AUTH_CREDENTIALS, |
+ kServer, |
+ AUTH_NONE, |
+ OK, |
+ 3, |
+ kNoSSL, |
+ {TestRound(kGetProxy, kProxyChallenge, OK), |
+ TestRound(kGetProxy, kProxyChallenge, OK), |
+ TestRound(kGetProxyAuth, kSuccess, OK)}}, |
// Authenticating HTTP server through an authenticating proxy. |
- {kProxy, |
+ {__LINE__, |
+ kProxy, |
AUTH_SYNC, |
OK, |
kServer, |
@@ -11783,7 +11817,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
{TestRound(kGetProxy, kProxyChallenge, OK), |
TestRound(kGetProxyAuth, kServerChallenge, OK), |
TestRound(kGetAuthWithProxyAuth, kSuccess, OK)}}, |
- {kProxy, |
+ {__LINE__, |
+ kProxy, |
AUTH_SYNC, |
OK, |
kServer, |
@@ -11794,7 +11829,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
{TestRound(kGetProxy, kProxyChallenge, OK), |
TestRound(kGetProxyAuth, kServerChallenge, OK), |
TestRound(kGetProxyAuth, kSuccess, OK)}}, |
- {kProxy, |
+ {__LINE__, |
+ kProxy, |
AUTH_ASYNC, |
OK, |
kServer, |
@@ -11805,7 +11841,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
{TestRound(kGetProxy, kProxyChallenge, OK), |
TestRound(kGetProxyAuth, kServerChallenge, OK), |
TestRound(kGetAuthWithProxyAuth, kSuccess, OK)}}, |
- {kProxy, |
+ {__LINE__, |
+ kProxy, |
AUTH_ASYNC, |
OK, |
kServer, |
@@ -11816,7 +11853,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
{TestRound(kGetProxy, kProxyChallenge, OK), |
TestRound(kGetProxyAuth, kServerChallenge, OK), |
TestRound(kGetProxyAuth, kSuccess, OK)}}, |
- {kProxy, |
+ {__LINE__, |
+ kProxy, |
AUTH_SYNC, |
OK, |
kServer, |
@@ -11827,7 +11865,21 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
{TestRound(kGetProxy, kProxyChallenge, OK), |
TestRound(kGetProxyAuth, kServerChallenge, OK), |
TestRound(kGetAuthWithProxyAuth, kSuccess, OK)}}, |
- {kProxy, |
+ {__LINE__, |
+ kProxy, |
+ AUTH_SYNC, |
+ ERR_INVALID_AUTH_CREDENTIALS, |
+ kServer, |
+ AUTH_ASYNC, |
+ OK, |
+ 4, |
+ kNoSSL, |
+ {TestRound(kGetProxy, kProxyChallenge, OK), |
+ TestRound(kGetProxy, kProxyChallenge, OK), |
+ TestRound(kGetProxyAuth, kServerChallenge, OK), |
+ TestRound(kGetAuthWithProxyAuth, kSuccess, OK)}}, |
+ {__LINE__, |
+ kProxy, |
AUTH_SYNC, |
OK, |
kServer, |
@@ -11838,7 +11890,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
{TestRound(kGetProxy, kProxyChallenge, OK), |
TestRound(kGetProxyAuth, kServerChallenge, OK), |
TestRound(kGetProxyAuth, kSuccess, OK)}}, |
- {kProxy, |
+ {__LINE__, |
+ kProxy, |
AUTH_ASYNC, |
OK, |
kServer, |
@@ -11849,7 +11902,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
{TestRound(kGetProxy, kProxyChallenge, OK), |
TestRound(kGetProxyAuth, kServerChallenge, OK), |
TestRound(kGetAuthWithProxyAuth, kSuccess, OK)}}, |
- {kProxy, |
+ {__LINE__, |
+ kProxy, |
AUTH_ASYNC, |
OK, |
kServer, |
@@ -11860,8 +11914,22 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
{TestRound(kGetProxy, kProxyChallenge, OK), |
TestRound(kGetProxyAuth, kServerChallenge, OK), |
TestRound(kGetProxyAuth, kSuccess, OK)}}, |
+ {__LINE__, |
+ kProxy, |
+ AUTH_ASYNC, |
+ ERR_INVALID_AUTH_CREDENTIALS, |
+ kServer, |
+ AUTH_ASYNC, |
+ ERR_INVALID_AUTH_CREDENTIALS, |
+ 4, |
+ kNoSSL, |
+ {TestRound(kGetProxy, kProxyChallenge, OK), |
+ TestRound(kGetProxy, kProxyChallenge, OK), |
+ TestRound(kGetProxyAuth, kServerChallenge, OK), |
+ TestRound(kGetProxyAuth, kSuccess, OK)}}, |
// Non-authenticating HTTPS server with a direct connection. |
- {NULL, |
+ {__LINE__, |
+ nullptr, |
AUTH_NONE, |
OK, |
kSecureServer, |
@@ -11871,7 +11939,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
0, |
{TestRound(kGet, kSuccess, OK)}}, |
// Authenticating HTTPS server with a direct connection. |
- {NULL, |
+ {__LINE__, |
+ nullptr, |
AUTH_NONE, |
OK, |
kSecureServer, |
@@ -11881,7 +11950,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
0, |
{TestRound(kGet, kServerChallenge, OK), |
TestRound(kGetAuth, kSuccess, OK)}}, |
- {NULL, |
+ {__LINE__, |
+ nullptr, |
AUTH_NONE, |
OK, |
kSecureServer, |
@@ -11890,7 +11960,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
2, |
0, |
{TestRound(kGet, kServerChallenge, OK), TestRound(kGet, kSuccess, OK)}}, |
- {NULL, |
+ {__LINE__, |
+ nullptr, |
AUTH_NONE, |
OK, |
kSecureServer, |
@@ -11900,7 +11971,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
0, |
{TestRound(kGet, kServerChallenge, OK), |
TestRound(kGetAuth, kSuccess, OK)}}, |
- {NULL, |
+ {__LINE__, |
+ nullptr, |
AUTH_NONE, |
OK, |
kSecureServer, |
@@ -11910,7 +11982,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
0, |
{TestRound(kGet, kServerChallenge, OK), TestRound(kGet, kSuccess, OK)}}, |
// Non-authenticating HTTPS server with a non-authenticating proxy. |
- {kProxy, |
+ {__LINE__, |
+ kProxy, |
AUTH_NONE, |
OK, |
kSecureServer, |
@@ -11920,7 +11993,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
0, |
{TestRound(kConnect, kProxyConnected, OK, &kGet, &kSuccess)}}, |
// Authenticating HTTPS server through a non-authenticating proxy. |
- {kProxy, |
+ {__LINE__, |
+ kProxy, |
AUTH_NONE, |
OK, |
kSecureServer, |
@@ -11930,7 +12004,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
0, |
{TestRound(kConnect, kProxyConnected, OK, &kGet, &kServerChallenge), |
TestRound(kGetAuth, kSuccess, OK)}}, |
- {kProxy, |
+ {__LINE__, |
+ kProxy, |
AUTH_NONE, |
OK, |
kSecureServer, |
@@ -11940,7 +12015,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
0, |
{TestRound(kConnect, kProxyConnected, OK, &kGet, &kServerChallenge), |
TestRound(kGet, kSuccess, OK)}}, |
- {kProxy, |
+ {__LINE__, |
+ kProxy, |
AUTH_NONE, |
OK, |
kSecureServer, |
@@ -11950,7 +12026,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
0, |
{TestRound(kConnect, kProxyConnected, OK, &kGet, &kServerChallenge), |
TestRound(kGetAuth, kSuccess, OK)}}, |
- {kProxy, |
+ {__LINE__, |
+ kProxy, |
AUTH_NONE, |
OK, |
kSecureServer, |
@@ -11961,7 +12038,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
{TestRound(kConnect, kProxyConnected, OK, &kGet, &kServerChallenge), |
TestRound(kGet, kSuccess, OK)}}, |
// Non-Authenticating HTTPS server through an authenticating proxy. |
- {kProxy, |
+ {__LINE__, |
+ kProxy, |
AUTH_SYNC, |
OK, |
kSecureServer, |
@@ -11971,7 +12049,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
1, |
{TestRound(kConnect, kProxyChallenge, OK), |
TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, &kSuccess)}}, |
- {kProxy, |
+ {__LINE__, |
+ kProxy, |
AUTH_SYNC, |
ERR_INVALID_AUTH_CREDENTIALS, |
kSecureServer, |
@@ -11981,7 +12060,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
kNoSSL, |
{TestRound(kConnect, kProxyChallenge, OK), |
TestRound(kConnect, kProxyConnected, OK, &kGet, &kSuccess)}}, |
- {kProxy, |
+ {__LINE__, |
+ kProxy, |
AUTH_SYNC, |
ERR_UNSUPPORTED_AUTH_SCHEME, |
kSecureServer, |
@@ -11991,7 +12071,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
kNoSSL, |
{TestRound(kConnect, kProxyChallenge, OK), |
TestRound(kConnect, kProxyConnected, OK, &kGet, &kSuccess)}}, |
- {kProxy, |
+ {__LINE__, |
+ kProxy, |
AUTH_SYNC, |
ERR_UNEXPECTED, |
kSecureServer, |
@@ -12001,7 +12082,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
kNoSSL, |
{TestRound(kConnect, kProxyChallenge, OK), |
TestRound(kConnect, kProxyConnected, ERR_UNEXPECTED)}}, |
- {kProxy, |
+ {__LINE__, |
+ kProxy, |
AUTH_ASYNC, |
OK, |
kSecureServer, |
@@ -12011,7 +12093,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
1, |
{TestRound(kConnect, kProxyChallenge, OK), |
TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, &kSuccess)}}, |
- {kProxy, |
+ {__LINE__, |
+ kProxy, |
AUTH_ASYNC, |
ERR_INVALID_AUTH_CREDENTIALS, |
kSecureServer, |
@@ -12022,7 +12105,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
{TestRound(kConnect, kProxyChallenge, OK), |
TestRound(kConnect, kProxyConnected, OK, &kGet, &kSuccess)}}, |
// Authenticating HTTPS server through an authenticating proxy. |
- {kProxy, |
+ {__LINE__, |
+ kProxy, |
AUTH_SYNC, |
OK, |
kSecureServer, |
@@ -12034,7 +12118,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, |
&kServerChallenge), |
TestRound(kGetAuth, kSuccess, OK)}}, |
- {kProxy, |
+ {__LINE__, |
+ kProxy, |
AUTH_SYNC, |
OK, |
kSecureServer, |
@@ -12046,7 +12131,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, |
&kServerChallenge), |
TestRound(kGet, kSuccess, OK)}}, |
- {kProxy, |
+ {__LINE__, |
+ kProxy, |
AUTH_ASYNC, |
OK, |
kSecureServer, |
@@ -12058,7 +12144,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, |
&kServerChallenge), |
TestRound(kGetAuth, kSuccess, OK)}}, |
- {kProxy, |
+ {__LINE__, |
+ kProxy, |
AUTH_ASYNC, |
OK, |
kSecureServer, |
@@ -12070,7 +12157,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, |
&kServerChallenge), |
TestRound(kGet, kSuccess, OK)}}, |
- {kProxy, |
+ {__LINE__, |
+ kProxy, |
AUTH_SYNC, |
OK, |
kSecureServer, |
@@ -12082,7 +12170,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, |
&kServerChallenge), |
TestRound(kGetAuth, kSuccess, OK)}}, |
- {kProxy, |
+ {__LINE__, |
+ kProxy, |
AUTH_SYNC, |
OK, |
kSecureServer, |
@@ -12094,7 +12183,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, |
&kServerChallenge), |
TestRound(kGet, kSuccess, OK)}}, |
- {kProxy, |
+ {__LINE__, |
+ kProxy, |
AUTH_ASYNC, |
OK, |
kSecureServer, |
@@ -12106,7 +12196,8 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, |
&kServerChallenge), |
TestRound(kGetAuth, kSuccess, OK)}}, |
- {kProxy, |
+ {__LINE__, |
+ kProxy, |
AUTH_ASYNC, |
OK, |
kSecureServer, |
@@ -12118,19 +12209,33 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, |
&kServerChallenge), |
TestRound(kGet, kSuccess, OK)}}, |
+ {__LINE__, |
+ kProxy, |
+ AUTH_ASYNC, |
+ ERR_INVALID_AUTH_CREDENTIALS, |
+ kSecureServer, |
+ AUTH_ASYNC, |
+ ERR_INVALID_AUTH_CREDENTIALS, |
+ 4, |
+ 2, |
+ {TestRound(kConnect, kProxyChallenge, OK), |
+ TestRound(kConnect, kProxyChallenge, OK), |
+ TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, |
+ &kServerChallenge), |
+ TestRound(kGet, kSuccess, OK)}}, |
}; |
- for (size_t i = 0; i < arraysize(test_configs); ++i) { |
- SCOPED_TRACE(::testing::Message() << "Test config " << i); |
+ for (const auto& test_config : test_configs) { |
+ SCOPED_TRACE(::testing::Message() << "Test config at " |
+ << test_config.line_number); |
HttpAuthHandlerMock::Factory* auth_factory( |
new HttpAuthHandlerMock::Factory()); |
session_deps_.http_auth_handler_factory.reset(auth_factory); |
SSLInfo empty_ssl_info; |
- const TestConfig& test_config = test_configs[i]; |
// Set up authentication handlers as necessary. |
if (test_config.proxy_auth_timing != AUTH_NONE) { |
- for (int n = 0; n < 2; n++) { |
+ for (int n = 0; n < 3; n++) { |
HttpAuthHandlerMock* auth_handler(new HttpAuthHandlerMock()); |
std::string auth_challenge = "Mock realm=proxy"; |
GURL origin(test_config.proxy_url); |
@@ -12141,7 +12246,7 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
NetLogWithSource()); |
auth_handler->SetGenerateExpectation( |
test_config.proxy_auth_timing == AUTH_ASYNC, |
- test_config.proxy_auth_rv); |
+ n == 0 ? test_config.first_generate_proxy_token_rv : OK); |
auth_factory->AddMockHandler(auth_handler, HttpAuth::AUTH_PROXY); |
} |
} |
@@ -12156,7 +12261,7 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) { |
NetLogWithSource()); |
auth_handler->SetGenerateExpectation( |
test_config.server_auth_timing == AUTH_ASYNC, |
- test_config.server_auth_rv); |
+ test_config.first_generate_server_token_rv); |
auth_factory->AddMockHandler(auth_handler, HttpAuth::AUTH_SERVER); |
// The second handler always succeeds. It should only be used where there |
@@ -12366,6 +12471,8 @@ TEST_F(HttpNetworkTransactionTest, MultiRoundAuth) { |
ASSERT_TRUE(response); |
EXPECT_TRUE(response->auth_challenge); |
EXPECT_EQ(0, transport_pool->IdleSocketCountInGroup(kSocketGroup)); |
+ EXPECT_EQ(HttpAuthHandlerMock::State::WAIT_FOR_GENERATE_AUTH_TOKEN, |
+ auth_handler->state()); |
// In between rounds, another request comes in for the same domain. |
// It should not be able to grab the TCP socket that trans has already |
@@ -12389,6 +12496,8 @@ TEST_F(HttpNetworkTransactionTest, MultiRoundAuth) { |
ASSERT_TRUE(response); |
EXPECT_FALSE(response->auth_challenge); |
EXPECT_EQ(0, transport_pool->IdleSocketCountInGroup(kSocketGroup)); |
+ EXPECT_EQ(HttpAuthHandlerMock::State::WAIT_FOR_GENERATE_AUTH_TOKEN, |
+ auth_handler->state()); |
// Third round of authentication. |
auth_handler->SetGenerateExpectation(false, OK); |
@@ -12400,6 +12509,8 @@ TEST_F(HttpNetworkTransactionTest, MultiRoundAuth) { |
ASSERT_TRUE(response); |
EXPECT_FALSE(response->auth_challenge); |
EXPECT_EQ(0, transport_pool->IdleSocketCountInGroup(kSocketGroup)); |
+ EXPECT_EQ(HttpAuthHandlerMock::State::WAIT_FOR_GENERATE_AUTH_TOKEN, |
+ auth_handler->state()); |
// Fourth round of authentication, which completes successfully. |
auth_handler->SetGenerateExpectation(false, OK); |
@@ -12412,6 +12523,12 @@ TEST_F(HttpNetworkTransactionTest, MultiRoundAuth) { |
EXPECT_FALSE(response->auth_challenge); |
EXPECT_EQ(0, transport_pool->IdleSocketCountInGroup(kSocketGroup)); |
+ // In WAIT_FOR_CHALLENGE, although in reality the auth handler is done. A real |
+ // auth handler should transition to a DONE state in concert with the remote |
+ // server. But that's not something we can test here with a mock handler. |
+ EXPECT_EQ(HttpAuthHandlerMock::State::WAIT_FOR_CHALLENGE, |
+ auth_handler->state()); |
+ |
// Read the body since the fourth round was successful. This will also |
// release the socket back to the pool. |
scoped_refptr<IOBufferWithSize> io_buf(new IOBufferWithSize(50)); |