summaryrefslogtreecommitdiffstats
path: root/net/http/http_network_transaction_unittest.cc
diff options
context:
space:
mode:
authorasanka@chromium.org <asanka@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-31 16:17:25 +0000
committerasanka@chromium.org <asanka@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-31 16:17:25 +0000
commit10af5fe7b79ec9d1e8f7a250adff8a3379ded731 (patch)
treeca22164a824fd9a509f0e0a271f81dc3d053ed38 /net/http/http_network_transaction_unittest.cc
parentcd985e362a7796bc52d412ec54698a72c846e53f (diff)
downloadchromium_src-10af5fe7b79ec9d1e8f7a250adff8a3379ded731.zip
chromium_src-10af5fe7b79ec9d1e8f7a250adff8a3379ded731.tar.gz
chromium_src-10af5fe7b79ec9d1e8f7a250adff8a3379ded731.tar.bz2
Require NTLM identity early
Don't wait until we receive an NTLM challenge to request username/password BUG=22845 TEST=net_unittests --gtest_filter=HttpNetworkTransactionTest.NTLMAuth* Review URL: http://codereview.chromium.org/6326016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@73150 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/http/http_network_transaction_unittest.cc')
-rw-r--r--net/http/http_network_transaction_unittest.cc63
1 files changed, 38 insertions, 25 deletions
diff --git a/net/http/http_network_transaction_unittest.cc b/net/http/http_network_transaction_unittest.cc
index e5219a3..333bc51 100644
--- a/net/http/http_network_transaction_unittest.cc
+++ b/net/http/http_network_transaction_unittest.cc
@@ -2823,28 +2823,37 @@ TEST_F(HttpNetworkTransactionTest, NTLMAuth1) {
rv = callback1.WaitForResult();
EXPECT_EQ(OK, rv);
- EXPECT_TRUE(trans->IsReadyToRestartForAuth());
- TestCompletionCallback callback2;
- rv = trans->RestartWithAuth(string16(), string16(), &callback2);
- EXPECT_EQ(ERR_IO_PENDING, rv);
- rv = callback2.WaitForResult();
- EXPECT_EQ(OK, rv);
EXPECT_FALSE(trans->IsReadyToRestartForAuth());
const HttpResponseInfo* response = trans->GetResponseInfo();
- ASSERT_FALSE(response == NULL);
+ ASSERT_TRUE(response != NULL);
// The password prompt info should have been set in
// response->auth_challenge.
- EXPECT_FALSE(response->auth_challenge.get() == NULL);
+ ASSERT_FALSE(response->auth_challenge.get() == NULL);
EXPECT_EQ(L"172.22.68.17:80", response->auth_challenge->host_and_port);
EXPECT_EQ(L"", response->auth_challenge->realm);
EXPECT_EQ(L"ntlm", response->auth_challenge->scheme);
+ TestCompletionCallback callback2;
+
+ rv = trans->RestartWithAuth(kTestingNTLM, kTestingNTLM, &callback2);
+ EXPECT_EQ(ERR_IO_PENDING, rv);
+
+ rv = callback2.WaitForResult();
+ EXPECT_EQ(OK, rv);
+
+ EXPECT_TRUE(trans->IsReadyToRestartForAuth());
+
+ response = trans->GetResponseInfo();
+ ASSERT_TRUE(response != NULL);
+
+ EXPECT_TRUE(response->auth_challenge.get() == NULL);
+
TestCompletionCallback callback3;
- rv = trans->RestartWithAuth(kTestingNTLM, kTestingNTLM, &callback3);
+ rv = trans->RestartWithAuth(string16(), string16(), &callback3);
EXPECT_EQ(ERR_IO_PENDING, rv);
rv = callback3.WaitForResult();
@@ -2852,7 +2861,6 @@ TEST_F(HttpNetworkTransactionTest, NTLMAuth1) {
response = trans->GetResponseInfo();
ASSERT_FALSE(response == NULL);
-
EXPECT_TRUE(response->auth_challenge.get() == NULL);
EXPECT_EQ(13, response->headers->GetContentLength());
}
@@ -3002,12 +3010,6 @@ TEST_F(HttpNetworkTransactionTest, NTLMAuth2) {
rv = callback1.WaitForResult();
EXPECT_EQ(OK, rv);
- EXPECT_TRUE(trans->IsReadyToRestartForAuth());
- TestCompletionCallback callback2;
- rv = trans->RestartWithAuth(string16(), string16(), &callback2);
- EXPECT_EQ(ERR_IO_PENDING, rv);
- rv = callback2.WaitForResult();
- EXPECT_EQ(OK, rv);
EXPECT_FALSE(trans->IsReadyToRestartForAuth());
const HttpResponseInfo* response = trans->GetResponseInfo();
@@ -3020,25 +3022,25 @@ TEST_F(HttpNetworkTransactionTest, NTLMAuth2) {
EXPECT_EQ(L"", response->auth_challenge->realm);
EXPECT_EQ(L"ntlm", response->auth_challenge->scheme);
- TestCompletionCallback callback3;
+ TestCompletionCallback callback2;
// Enter the wrong password.
- rv = trans->RestartWithAuth(kTestingNTLM, kWrongPassword, &callback3);
+ rv = trans->RestartWithAuth(kTestingNTLM, kWrongPassword, &callback2);
EXPECT_EQ(ERR_IO_PENDING, rv);
- rv = callback3.WaitForResult();
+ rv = callback2.WaitForResult();
EXPECT_EQ(OK, rv);
EXPECT_TRUE(trans->IsReadyToRestartForAuth());
- TestCompletionCallback callback4;
- rv = trans->RestartWithAuth(string16(), string16(), &callback4);
+ TestCompletionCallback callback3;
+ rv = trans->RestartWithAuth(string16(), string16(), &callback3);
EXPECT_EQ(ERR_IO_PENDING, rv);
- rv = callback4.WaitForResult();
+ rv = callback3.WaitForResult();
EXPECT_EQ(OK, rv);
EXPECT_FALSE(trans->IsReadyToRestartForAuth());
response = trans->GetResponseInfo();
- EXPECT_FALSE(response == NULL);
+ ASSERT_TRUE(response != NULL);
// The password prompt info should have been set in response->auth_challenge.
EXPECT_FALSE(response->auth_challenge.get() == NULL);
@@ -3047,10 +3049,21 @@ TEST_F(HttpNetworkTransactionTest, NTLMAuth2) {
EXPECT_EQ(L"", response->auth_challenge->realm);
EXPECT_EQ(L"ntlm", response->auth_challenge->scheme);
- TestCompletionCallback callback5;
+ TestCompletionCallback callback4;
// Now enter the right password.
- rv = trans->RestartWithAuth(kTestingNTLM, kTestingNTLM, &callback5);
+ rv = trans->RestartWithAuth(kTestingNTLM, kTestingNTLM, &callback4);
+ EXPECT_EQ(ERR_IO_PENDING, rv);
+
+ rv = callback4.WaitForResult();
+ EXPECT_EQ(OK, rv);
+
+ EXPECT_TRUE(trans->IsReadyToRestartForAuth());
+
+ TestCompletionCallback callback5;
+
+ // One more roundtrip
+ rv = trans->RestartWithAuth(string16(), string16(), &callback5);
EXPECT_EQ(ERR_IO_PENDING, rv);
rv = callback5.WaitForResult();