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_