| 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 126f76d454dcb2ac43d22af19cfdf5cfddffedb1..32a92bc1ed2f2ee45f5b287a3a35e85a5cd9a7ab 100644
|
| --- a/net/http/http_auth_controller_unittest.cc
|
| +++ b/net/http/http_auth_controller_unittest.cc
|
| @@ -62,11 +62,12 @@ void RunSingleRoundAuthTest(HandlerRunMode run_mode,
|
| "\r\n"));
|
|
|
| HttpAuthHandlerMock::Factory auth_handler_factory;
|
| - HttpAuthHandlerMock* auth_handler = new HttpAuthHandlerMock();
|
| + scoped_ptr<HttpAuthHandlerMock> auth_handler(new HttpAuthHandlerMock());
|
| auth_handler->SetGenerateExpectation((run_mode == RUN_HANDLER_ASYNC),
|
| handler_rv);
|
| - auth_handler_factory.AddMockHandler(auth_handler, HttpAuth::AUTH_PROXY);
|
| - auth_handler_factory.set_do_init_from_challenge(true);
|
| + auth_handler_factory.AddMockHandler(auth_handler.Pass(),
|
| + HttpAuthHandlerFactory::CREATE_CHALLENGE,
|
| + HttpAuth::AUTH_PROXY);
|
|
|
| scoped_refptr<HttpAuthController> controller(
|
| new HttpAuthController(HttpAuth::AUTH_PROXY,
|
| @@ -75,7 +76,8 @@ void RunSingleRoundAuthTest(HandlerRunMode run_mode,
|
| ASSERT_EQ(OK,
|
| controller->HandleAuthChallenge(headers, false, false, dummy_log));
|
| ASSERT_TRUE(controller->HaveAuthHandler());
|
| - controller->ResetAuth(AuthCredentials());
|
| + controller->ResetAuth(
|
| + AuthCredentials(base::ASCIIToUTF16("a"), base::ASCIIToUTF16("b")));
|
| EXPECT_TRUE(controller->HaveAuth());
|
|
|
| TestCompletionCallback callback;
|
| @@ -119,48 +121,6 @@ TEST(HttpAuthControllerTest, PermanentErrors) {
|
| // If an HttpAuthHandler indicates that it doesn't allow explicit
|
| // credentials, don't prompt for credentials.
|
| TEST(HttpAuthControllerTest, NoExplicitCredentialsAllowed) {
|
| - // Modified mock HttpAuthHandler for this test.
|
| - class MockHandler : public HttpAuthHandlerMock {
|
| - public:
|
| - MockHandler(int expected_rv, const std::string& scheme)
|
| - : expected_scheme_(scheme) {
|
| - SetGenerateExpectation(false, expected_rv);
|
| - }
|
| -
|
| - protected:
|
| - bool Init(HttpAuthChallengeTokenizer* challenge) override {
|
| - HttpAuthHandlerMock::Init(challenge);
|
| - set_allows_default_credentials(true);
|
| - set_allows_explicit_credentials(false);
|
| - // 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;
|
| - }
|
| -
|
| - int GenerateAuthTokenImpl(const AuthCredentials* credentials,
|
| - const HttpRequestInfo* request,
|
| - const CompletionCallback& callback,
|
| - std::string* auth_token) override {
|
| - int result =
|
| - HttpAuthHandlerMock::GenerateAuthTokenImpl(credentials,
|
| - request, callback,
|
| - auth_token);
|
| - EXPECT_TRUE(result != OK ||
|
| - !AllowsExplicitCredentials() ||
|
| - !credentials->Empty());
|
| - return result;
|
| - }
|
| -
|
| - private:
|
| - std::string expected_scheme_;
|
| - };
|
| -
|
| BoundNetLog dummy_log;
|
| HttpAuthCache dummy_auth_cache;
|
| HttpRequestInfo request;
|
| @@ -175,11 +135,15 @@ TEST(HttpAuthControllerTest, NoExplicitCredentialsAllowed) {
|
| "\r\n"));
|
|
|
| HttpAuthHandlerMock::Factory auth_handler_factory;
|
| - 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"),
|
| + // the default identity and successfully constructs a token. Handler for the
|
| + scoped_ptr<HttpAuthHandlerMock> auth_handler(new HttpAuthHandlerMock());
|
| + auth_handler->set_allows_default_credentials(true);
|
| + auth_handler->set_allows_explicit_credentials(false);
|
| + auth_handler->set_expected_auth_scheme("ernie");
|
| + auth_handler_factory.AddMockHandler(auth_handler.Pass(),
|
| + HttpAuthHandlerFactory::CREATE_CHALLENGE,
|
| HttpAuth::AUTH_SERVER);
|
|
|
| scoped_refptr<HttpAuthController> controller(
|
| @@ -201,13 +165,23 @@ TEST(HttpAuthControllerTest, NoExplicitCredentialsAllowed) {
|
| // 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"),
|
| + auth_handler.reset(new HttpAuthHandlerMock());
|
| + auth_handler->set_allows_default_credentials(true);
|
| + auth_handler->set_allows_explicit_credentials(false);
|
| + auth_handler->set_expected_auth_scheme("ernie");
|
| + auth_handler_factory.AddMockHandler(auth_handler.Pass(),
|
| + HttpAuthHandlerFactory::CREATE_CHALLENGE,
|
| 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"),
|
| + auth_handler.reset(new HttpAuthHandlerMock());
|
| + auth_handler->set_allows_default_credentials(false);
|
| + auth_handler->set_allows_explicit_credentials(true);
|
| + auth_handler->set_expected_auth_scheme("bert");
|
| + auth_handler_factory.AddMockHandler(auth_handler.Pass(),
|
| + HttpAuthHandlerFactory::CREATE_CHALLENGE,
|
| HttpAuth::AUTH_SERVER);
|
|
|
| // Once a token is generated, simulate the receipt of a server response
|
|
|