1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef NET_HTTP_HTTP_AUTH_HANDLER_MOCK_H_
6 #define NET_HTTP_HTTP_AUTH_HANDLER_MOCK_H_
10 #include "base/memory/scoped_vector.h"
11 #include "base/memory/weak_ptr.h"
12 #include "net/http/http_auth_handler.h"
13 #include "net/http/http_auth_handler_factory.h"
20 // MockAuthHandler is used in tests to reliably trigger edge cases.
21 class HttpAuthHandlerMock
: public HttpAuthHandler
{
31 // The Factory class returns handlers in the order they were added via
33 class Factory
: public HttpAuthHandlerFactory
{
38 void AddMockHandler(HttpAuthHandler
* handler
, HttpAuth::Target target
);
40 void set_do_init_from_challenge(bool do_init_from_challenge
) {
41 do_init_from_challenge_
= do_init_from_challenge
;
44 // HttpAuthHandlerFactory:
45 virtual int CreateAuthHandler(
46 HttpAuthChallengeTokenizer
* challenge
,
47 HttpAuth::Target target
,
51 const BoundNetLog
& net_log
,
52 scoped_ptr
<HttpAuthHandler
>* handler
) OVERRIDE
;
55 ScopedVector
<HttpAuthHandler
> handlers_
[HttpAuth::AUTH_NUM_TARGETS
];
56 bool do_init_from_challenge_
;
59 HttpAuthHandlerMock();
61 virtual ~HttpAuthHandlerMock();
63 void SetResolveExpectation(Resolve resolve
);
65 virtual bool NeedsCanonicalName();
67 virtual int ResolveCanonicalName(HostResolver
* host_resolver
,
68 const CompletionCallback
& callback
);
71 void SetGenerateExpectation(bool async
, int rv
);
73 void set_connection_based(bool connection_based
) {
74 connection_based_
= connection_based
;
77 void set_allows_default_credentials(bool allows_default_credentials
) {
78 allows_default_credentials_
= allows_default_credentials
;
81 void set_allows_explicit_credentials(bool allows_explicit_credentials
) {
82 allows_explicit_credentials_
= allows_explicit_credentials
;
85 const GURL
& request_url() const {
90 virtual HttpAuth::AuthorizationResult
HandleAnotherChallenge(
91 HttpAuthChallengeTokenizer
* challenge
) OVERRIDE
;
92 virtual bool NeedsIdentity() OVERRIDE
;
93 virtual bool AllowsDefaultCredentials() OVERRIDE
;
94 virtual bool AllowsExplicitCredentials() OVERRIDE
;
97 virtual bool Init(HttpAuthChallengeTokenizer
* challenge
) OVERRIDE
;
99 virtual int GenerateAuthTokenImpl(const AuthCredentials
* credentials
,
100 const HttpRequestInfo
* request
,
101 const CompletionCallback
& callback
,
102 std::string
* auth_token
) OVERRIDE
;
105 void OnResolveCanonicalName();
107 void OnGenerateAuthToken();
110 CompletionCallback callback_
;
111 bool generate_async_
;
113 std::string
* auth_token_
;
115 bool connection_based_
;
116 bool allows_default_credentials_
;
117 bool allows_explicit_credentials_
;
119 base::WeakPtrFactory
<HttpAuthHandlerMock
> weak_factory_
;
124 #endif // NET_HTTP_HTTP_AUTH_HANDLER_MOCK_H_