Index: net/http/http_auth_controller_unittest.cc |
diff --git a/net/http/http_auth_controller_unittest.cc b/net/http/http_auth_controller_unittest.cc |
index cd97d293a1fe632d975d7c99d23607e70de27f69..126f76d454dcb2ac43d22af19cfdf5cfddffedb1 100644 |
--- a/net/http/http_auth_controller_unittest.cc |
+++ b/net/http/http_auth_controller_unittest.cc |
@@ -86,7 +86,7 @@ void RunSingleRoundAuthTest(HandlerRunMode run_mode, |
if (run_mode == RUN_HANDLER_ASYNC) |
EXPECT_EQ(expected_controller_rv, callback.WaitForResult()); |
EXPECT_EQ((scheme_state == SCHEME_IS_DISABLED), |
- controller->IsAuthSchemeDisabled(HttpAuth::AUTH_SCHEME_MOCK)); |
+ controller->IsAuthSchemeDisabled("mock")); |
} |
} // namespace |
@@ -122,7 +122,7 @@ TEST(HttpAuthControllerTest, NoExplicitCredentialsAllowed) { |
// Modified mock HttpAuthHandler for this test. |
class MockHandler : public HttpAuthHandlerMock { |
public: |
- MockHandler(int expected_rv, HttpAuth::Scheme scheme) |
+ MockHandler(int expected_rv, const std::string& scheme) |
: expected_scheme_(scheme) { |
SetGenerateExpectation(false, expected_rv); |
} |
@@ -132,12 +132,12 @@ TEST(HttpAuthControllerTest, NoExplicitCredentialsAllowed) { |
HttpAuthHandlerMock::Init(challenge); |
set_allows_default_credentials(true); |
set_allows_explicit_credentials(false); |
- set_connection_based(true); |
- // Pretend to be SCHEME_BASIC so we can test failover logic. |
- if (challenge->scheme() == "Basic") { |
- auth_scheme_ = HttpAuth::AUTH_SCHEME_BASIC; |
- --score_; // Reduce score, so we rank below Mock. |
+ // Pretend to be Bert so we can test failover logic. |
+ if (challenge->SchemeIs("bert")) { |
+ auth_scheme_ = "bert"; |
set_allows_explicit_credentials(true); |
+ } else { |
+ auth_scheme_ = "ernie"; |
} |
EXPECT_EQ(expected_scheme_, auth_scheme_); |
return true; |
@@ -158,7 +158,7 @@ TEST(HttpAuthControllerTest, NoExplicitCredentialsAllowed) { |
} |
private: |
- HttpAuth::Scheme expected_scheme_; |
+ std::string expected_scheme_; |
}; |
BoundNetLog dummy_log; |
@@ -168,43 +168,20 @@ TEST(HttpAuthControllerTest, NoExplicitCredentialsAllowed) { |
request.url = GURL("http://example.com"); |
HttpRequestHeaders request_headers; |
- scoped_refptr<HttpResponseHeaders> headers(HeadersFromString( |
- "HTTP/1.1 401\r\n" |
- "WWW-Authenticate: Mock\r\n" |
- "WWW-Authenticate: Basic\r\n" |
- "\r\n")); |
+ scoped_refptr<HttpResponseHeaders> headers( |
+ HeadersFromString("HTTP/1.1 401\r\n" |
+ "WWW-Authenticate: Ernie\r\n" |
+ "WWW-Authenticate: Bert\r\n" |
+ "\r\n")); |
HttpAuthHandlerMock::Factory auth_handler_factory; |
- |
- // Handlers for the first attempt at authentication. AUTH_SCHEME_MOCK handler |
- // accepts the default identity and successfully constructs a token. |
- auth_handler_factory.AddMockHandler( |
- new MockHandler(OK, HttpAuth::AUTH_SCHEME_MOCK), HttpAuth::AUTH_SERVER); |
- auth_handler_factory.AddMockHandler( |
- new MockHandler(ERR_UNEXPECTED, HttpAuth::AUTH_SCHEME_BASIC), |
- HttpAuth::AUTH_SERVER); |
- |
- // Handlers for the second attempt. Neither should be used to generate a |
- // token. Instead the controller should realize that there are no viable |
- // identities to use with the AUTH_SCHEME_MOCK handler and fail. |
- auth_handler_factory.AddMockHandler( |
- new MockHandler(ERR_UNEXPECTED, HttpAuth::AUTH_SCHEME_MOCK), |
- HttpAuth::AUTH_SERVER); |
- auth_handler_factory.AddMockHandler( |
- new MockHandler(ERR_UNEXPECTED, HttpAuth::AUTH_SCHEME_BASIC), |
- HttpAuth::AUTH_SERVER); |
- |
- // Fallback handlers for the second attempt. The AUTH_SCHEME_MOCK handler |
- // should be discarded due to the disabled scheme, and the AUTH_SCHEME_BASIC |
- // handler should successfully be used to generate a token. |
- auth_handler_factory.AddMockHandler( |
- new MockHandler(ERR_UNEXPECTED, HttpAuth::AUTH_SCHEME_MOCK), |
- HttpAuth::AUTH_SERVER); |
- auth_handler_factory.AddMockHandler( |
- new MockHandler(OK, HttpAuth::AUTH_SCHEME_BASIC), |
- HttpAuth::AUTH_SERVER); |
auth_handler_factory.set_do_init_from_challenge(true); |
+ // Handler for the first attempt at authentication. "Ernie" handler accepts |
+ // the default identity and successfully constructs a token. |
+ auth_handler_factory.AddMockHandler(new MockHandler(OK, "ernie"), |
+ HttpAuth::AUTH_SERVER); |
+ |
scoped_refptr<HttpAuthController> controller( |
new HttpAuthController(HttpAuth::AUTH_SERVER, |
GURL("http://example.com"), |
@@ -214,12 +191,25 @@ TEST(HttpAuthControllerTest, NoExplicitCredentialsAllowed) { |
ASSERT_TRUE(controller->HaveAuthHandler()); |
controller->ResetAuth(AuthCredentials()); |
EXPECT_TRUE(controller->HaveAuth()); |
+ EXPECT_FALSE(auth_handler_factory.HaveAuthHandlers(HttpAuth::AUTH_SERVER)); |
- // Should only succeed if we are using the AUTH_SCHEME_MOCK MockHandler. |
+ // Should only succeed if we are using the "Ernie" MockHandler. |
EXPECT_EQ(OK, controller->MaybeGenerateAuthToken( |
&request, CompletionCallback(), dummy_log)); |
controller->AddAuthorizationHeader(&request_headers); |
+ // Handlers for the second attempt. Neither should be used to generate a |
+ // token. Instead the controller should realize that there are no viable |
+ // identities to use with the "Ernie" handler and fail. |
+ auth_handler_factory.AddMockHandler(new MockHandler(ERR_UNEXPECTED, "ernie"), |
+ HttpAuth::AUTH_SERVER); |
+ |
+ // Fallback handlers for the second attempt. The "Ernie" handler should be |
+ // discarded due to the disabled scheme, and the "Bert" handler should |
+ // successfully be used to generate a token. |
+ auth_handler_factory.AddMockHandler(new MockHandler(OK, "bert"), |
+ HttpAuth::AUTH_SERVER); |
+ |
// Once a token is generated, simulate the receipt of a server response |
// indicating that the authentication attempt was rejected. |
ASSERT_EQ(OK, |
@@ -228,10 +218,10 @@ TEST(HttpAuthControllerTest, NoExplicitCredentialsAllowed) { |
controller->ResetAuth(AuthCredentials(base::ASCIIToUTF16("Hello"), |
base::string16())); |
EXPECT_TRUE(controller->HaveAuth()); |
- EXPECT_TRUE(controller->IsAuthSchemeDisabled(HttpAuth::AUTH_SCHEME_MOCK)); |
- EXPECT_FALSE(controller->IsAuthSchemeDisabled(HttpAuth::AUTH_SCHEME_BASIC)); |
+ EXPECT_TRUE(controller->IsAuthSchemeDisabled("ernie")); |
+ EXPECT_FALSE(controller->IsAuthSchemeDisabled("bert")); |
- // Should only succeed if we are using the AUTH_SCHEME_BASIC MockHandler. |
+ // Should only succeed if we are using the "Bert" MockHandler. |
EXPECT_EQ(OK, controller->MaybeGenerateAuthToken( |
&request, CompletionCallback(), dummy_log)); |
} |