Web MIDI: enable receiving functionality in Linux and Chrome OS
[chromium-blink-merge.git] / net / http / http_auth_handler_mock.h
blob7cc441a70cc3a95d5eaa9d0e290c1a9eada930d1
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_
8 #include <string>
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"
14 #include "url/gurl.h"
16 namespace net {
18 class HostResolver;
20 // MockAuthHandler is used in tests to reliably trigger edge cases.
21 class HttpAuthHandlerMock : public HttpAuthHandler {
22 public:
23 enum Resolve {
24 RESOLVE_INIT,
25 RESOLVE_SKIP,
26 RESOLVE_SYNC,
27 RESOLVE_ASYNC,
28 RESOLVE_TESTED,
31 // The Factory class returns handlers in the order they were added via
32 // AddMockHandler.
33 class Factory : public HttpAuthHandlerFactory {
34 public:
35 Factory();
36 virtual ~Factory();
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 HttpAuth::ChallengeTokenizer* challenge,
47 HttpAuth::Target target,
48 const GURL& origin,
49 CreateReason reason,
50 int nonce_count,
51 const BoundNetLog& net_log,
52 scoped_ptr<HttpAuthHandler>* handler) OVERRIDE;
54 private:
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 {
86 return request_url_;
89 // HttpAuthHandler:
90 virtual HttpAuth::AuthorizationResult HandleAnotherChallenge(
91 HttpAuth::ChallengeTokenizer* challenge) OVERRIDE;
92 virtual bool NeedsIdentity() OVERRIDE;
93 virtual bool AllowsDefaultCredentials() OVERRIDE;
94 virtual bool AllowsExplicitCredentials() OVERRIDE;
96 protected:
97 virtual bool Init(HttpAuth::ChallengeTokenizer* challenge) OVERRIDE;
99 virtual int GenerateAuthTokenImpl(const AuthCredentials* credentials,
100 const HttpRequestInfo* request,
101 const CompletionCallback& callback,
102 std::string* auth_token) OVERRIDE;
104 private:
105 void OnResolveCanonicalName();
107 void OnGenerateAuthToken();
109 Resolve resolve_;
110 CompletionCallback callback_;
111 base::WeakPtrFactory<HttpAuthHandlerMock> weak_factory_;
112 bool generate_async_;
113 int generate_rv_;
114 std::string* auth_token_;
115 bool first_round_;
116 bool connection_based_;
117 bool allows_default_credentials_;
118 bool allows_explicit_credentials_;
119 GURL request_url_;
122 } // namespace net
124 #endif // NET_HTTP_HTTP_AUTH_HANDLER_MOCK_H_