Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(155)

Side by Side Diff: net/http/http_auth_handler_negotiate_unittest.cc

Issue 266243004: Clang format slam. Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/http/http_auth_handler_negotiate.h" 5 #include "net/http/http_auth_handler_negotiate.h"
6 6
7 #include "base/strings/string_util.h" 7 #include "base/strings/string_util.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "net/base/net_errors.h" 9 #include "net/base/net_errors.h"
10 #include "net/base/test_completion_callback.h" 10 #include "net/base/test_completion_callback.h"
(...skipping 14 matching lines...) Expand all
25 typedef net::test::MockGSSAPILibrary MockAuthLibrary; 25 typedef net::test::MockGSSAPILibrary MockAuthLibrary;
26 #endif 26 #endif
27 27
28 namespace net { 28 namespace net {
29 29
30 class HttpAuthHandlerNegotiateTest : public PlatformTest { 30 class HttpAuthHandlerNegotiateTest : public PlatformTest {
31 public: 31 public:
32 virtual void SetUp() { 32 virtual void SetUp() {
33 auth_library_ = new MockAuthLibrary(); 33 auth_library_ = new MockAuthLibrary();
34 resolver_.reset(new MockHostResolver()); 34 resolver_.reset(new MockHostResolver());
35 resolver_->rules()->AddIPLiteralRule("alias", "10.0.0.2", 35 resolver_->rules()->AddIPLiteralRule(
36 "canonical.example.com"); 36 "alias", "10.0.0.2", "canonical.example.com");
37 37
38 url_security_manager_.reset(new MockAllowURLSecurityManager()); 38 url_security_manager_.reset(new MockAllowURLSecurityManager());
39 factory_.reset(new HttpAuthHandlerNegotiate::Factory()); 39 factory_.reset(new HttpAuthHandlerNegotiate::Factory());
40 factory_->set_url_security_manager(url_security_manager_.get()); 40 factory_->set_url_security_manager(url_security_manager_.get());
41 factory_->set_library(auth_library_); 41 factory_->set_library(auth_library_);
42 factory_->set_host_resolver(resolver_.get()); 42 factory_->set_host_resolver(resolver_.get());
43 } 43 }
44 44
45 void SetupMocks(MockAuthLibrary* mock_library) { 45 void SetupMocks(MockAuthLibrary* mock_library) {
46 #if defined(OS_WIN) 46 #if defined(OS_WIN)
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 "\x2C\xE3\xEA\x64\xEF\x91\xA5\x4E\x94\xE1\xDC\x56\x3A\xAF\xD5\xBC" 91 "\x2C\xE3\xEA\x64\xEF\x91\xA5\x4E\x94\xE1\xDC\x56\x3A\xAF\xD5\xBC"
92 "\xC9\xD3\x9B\x6B\x1F\xBE\x40\xE5\x40\xFF\x5E\x21\xEA\xCE\xFC\xD5" 92 "\xC9\xD3\x9B\x6B\x1F\xBE\x40\xE5\x40\xFF\x5E\x21\xEA\xCE\xFC\xD5"
93 "\xB0\xE5\xBA\x10\x94\xAE\x16\x54\xFC\xEB\xAB\xF1\xD4\x20\x31\xCC" 93 "\xB0\xE5\xBA\x10\x94\xAE\x16\x54\xFC\xEB\xAB\xF1\xD4\x20\x31\xCC"
94 "\x26\xFE\xBE\xFE\x22\xB6\x9B\x1A\xE5\x55\x2C\x93\xB7\x3B\xD6\x4C" 94 "\x26\xFE\xBE\xFE\x22\xB6\x9B\x1A\xE5\x55\x2C\x93\xB7\x3B\xD6\x4C"
95 "\x35\x35\xC1\x59\x61\xD4\x1F\x2E\x4C\xE1\x72\x8F\x71\x4B\x0C\x39" 95 "\x35\x35\xC1\x59\x61\xD4\x1F\x2E\x4C\xE1\x72\x8F\x71\x4B\x0C\x39"
96 "\x80\x79\xFA\xCD\xEA\x71\x1B\xAE\x35\x41\xED\xF9\x65\x0C\x59\xF8" 96 "\x80\x79\xFA\xCD\xEA\x71\x1B\xAE\x35\x41\xED\xF9\x65\x0C\x59\xF8"
97 "\xE1\x27\xDA\xD6\xD1\x20\x32\xCD\xBF\xD1\xEF\xE2\xED\xAD\x5D\xA7" 97 "\xE1\x27\xDA\xD6\xD1\x20\x32\xCD\xBF\xD1\xEF\xE2\xED\xAD\x5D\xA7"
98 "\x69\xE3\x55\xF9\x30\xD3\xD4\x08\xC8\xCA\x62\xF8\x64\xEC\x9B\x92" 98 "\x69\xE3\x55\xF9\x30\xD3\xD4\x08\xC8\xCA\x62\xF8\x64\xEC\x9B\x92"
99 "\x1A\xF1\x03\x2E\xCC\xDC\xEB\x17\xDE\x09\xAC\xA9\x58\x86"; 99 "\x1A\xF1\x03\x2E\xCC\xDC\xEB\x17\xDE\x09\xAC\xA9\x58\x86";
100 test::GssContextMockImpl context1( 100 test::GssContextMockImpl context1(
101 "localhost", // Source name 101 "localhost", // Source name
102 "example.com", // Target name 102 "example.com", // Target name
103 23, // Lifetime 103 23, // Lifetime
104 *CHROME_GSS_SPNEGO_MECH_OID_DESC, // Mechanism 104 *CHROME_GSS_SPNEGO_MECH_OID_DESC, // Mechanism
105 0, // Context flags 105 0, // Context flags
106 1, // Locally initiated 106 1, // Locally initiated
107 0); // Open 107 0); // Open
108 test::GssContextMockImpl context2( 108 test::GssContextMockImpl context2(
109 "localhost", // Source name 109 "localhost", // Source name
110 "example.com", // Target name 110 "example.com", // Target name
111 23, // Lifetime 111 23, // Lifetime
112 *CHROME_GSS_SPNEGO_MECH_OID_DESC, // Mechanism 112 *CHROME_GSS_SPNEGO_MECH_OID_DESC, // Mechanism
113 0, // Context flags 113 0, // Context flags
114 1, // Locally initiated 114 1, // Locally initiated
115 1); // Open 115 1); // Open
116 test::MockGSSAPILibrary::SecurityContextQuery queries[] = { 116 test::MockGSSAPILibrary::SecurityContextQuery queries[] = {
117 test::MockGSSAPILibrary::SecurityContextQuery( 117 test::MockGSSAPILibrary::SecurityContextQuery(
118 "Negotiate", // Package name 118 "Negotiate", // Package name
119 GSS_S_CONTINUE_NEEDED, // Major response code 119 GSS_S_CONTINUE_NEEDED, // Major response code
120 0, // Minor response code 120 0, // Minor response code
121 context1, // Context 121 context1, // Context
122 NULL, // Expected input token 122 NULL, // Expected input token
123 kAuthResponse), // Output token 123 kAuthResponse), // Output token
124 test::MockGSSAPILibrary::SecurityContextQuery( 124 test::MockGSSAPILibrary::SecurityContextQuery(
125 "Negotiate", // Package name 125 "Negotiate", // Package name
126 GSS_S_COMPLETE, // Major response code 126 GSS_S_COMPLETE, // Major response code
127 0, // Minor response code 127 0, // Minor response code
128 context2, // Context 128 context2, // Context
129 kAuthResponse, // Expected input token 129 kAuthResponse, // Expected input token
130 kAuthResponse) // Output token 130 kAuthResponse) // Output token
131 }; 131 };
132 132
133 for (size_t i = 0; i < arraysize(queries); ++i) { 133 for (size_t i = 0; i < arraysize(queries); ++i) {
134 mock_library->ExpectSecurityContext(queries[i].expected_package, 134 mock_library->ExpectSecurityContext(queries[i].expected_package,
135 queries[i].response_code, 135 queries[i].response_code,
136 queries[i].minor_response_code, 136 queries[i].minor_response_code,
137 queries[i].context_info, 137 queries[i].context_info,
138 queries[i].expected_input_token, 138 queries[i].expected_input_token,
139 queries[i].output_token); 139 queries[i].output_token);
140 } 140 }
141 #endif // defined(OS_POSIX) 141 #endif // defined(OS_POSIX)
142 } 142 }
143 143
144 #if defined(OS_POSIX) 144 #if defined(OS_POSIX)
145 void SetupErrorMocks(MockAuthLibrary* mock_library, 145 void SetupErrorMocks(MockAuthLibrary* mock_library,
146 int major_status, 146 int major_status,
147 int minor_status) { 147 int minor_status) {
148 const gss_OID_desc kDefaultMech = { 0, NULL }; 148 const gss_OID_desc kDefaultMech = {0, NULL};
149 test::GssContextMockImpl context( 149 test::GssContextMockImpl context("localhost", // Source name
150 "localhost", // Source name 150 "example.com", // Target name
151 "example.com", // Target name 151 0, // Lifetime
152 0, // Lifetime 152 kDefaultMech, // Mechanism
153 kDefaultMech, // Mechanism 153 0, // Context flags
154 0, // Context flags 154 1, // Locally initiated
155 1, // Locally initiated 155 0); // Open
156 0); // Open
157 test::MockGSSAPILibrary::SecurityContextQuery query( 156 test::MockGSSAPILibrary::SecurityContextQuery query(
158 "Negotiate", // Package name 157 "Negotiate", // Package name
159 major_status, // Major response code 158 major_status, // Major response code
160 minor_status, // Minor response code 159 minor_status, // Minor response code
161 context, // Context 160 context, // Context
162 NULL, // Expected input token 161 NULL, // Expected input token
163 NULL); // Output token 162 NULL); // Output token
164 163
165 mock_library->ExpectSecurityContext(query.expected_package, 164 mock_library->ExpectSecurityContext(query.expected_package,
166 query.response_code, 165 query.response_code,
167 query.minor_response_code, 166 query.minor_response_code,
168 query.context_info, 167 query.context_info,
169 query.expected_input_token, 168 query.expected_input_token,
170 query.output_token); 169 query.output_token);
171 } 170 }
172 171
173 #endif // defined(OS_POSIX) 172 #endif // defined(OS_POSIX)
174 173
175 int CreateHandler(bool disable_cname_lookup, bool use_port, 174 int CreateHandler(bool disable_cname_lookup,
176 bool synchronous_resolve_mode, 175 bool use_port,
177 const std::string& url_string, 176 bool synchronous_resolve_mode,
178 scoped_ptr<HttpAuthHandlerNegotiate>* handler) { 177 const std::string& url_string,
178 scoped_ptr<HttpAuthHandlerNegotiate>* handler) {
179 factory_->set_disable_cname_lookup(disable_cname_lookup); 179 factory_->set_disable_cname_lookup(disable_cname_lookup);
180 factory_->set_use_port(use_port); 180 factory_->set_use_port(use_port);
181 resolver_->set_synchronous_mode(synchronous_resolve_mode); 181 resolver_->set_synchronous_mode(synchronous_resolve_mode);
182 GURL gurl(url_string); 182 GURL gurl(url_string);
183 183
184 // Note: This is a little tricky because CreateAuthHandlerFromString 184 // Note: This is a little tricky because CreateAuthHandlerFromString
185 // expects a scoped_ptr<HttpAuthHandler>* rather than a 185 // expects a scoped_ptr<HttpAuthHandler>* rather than a
186 // scoped_ptr<HttpAuthHandlerNegotiate>*. This needs to do the cast 186 // scoped_ptr<HttpAuthHandlerNegotiate>*. This needs to do the cast
187 // after creating the handler, and make sure that generic_handler 187 // after creating the handler, and make sure that generic_handler
188 // no longer holds on to the HttpAuthHandlerNegotiate object. 188 // no longer holds on to the HttpAuthHandlerNegotiate object.
(...skipping 20 matching lines...) Expand all
209 // |auth_library_| is passed to |factory_|, which assumes ownership of it. 209 // |auth_library_| is passed to |factory_|, which assumes ownership of it.
210 MockAuthLibrary* auth_library_; 210 MockAuthLibrary* auth_library_;
211 scoped_ptr<MockHostResolver> resolver_; 211 scoped_ptr<MockHostResolver> resolver_;
212 scoped_ptr<URLSecurityManager> url_security_manager_; 212 scoped_ptr<URLSecurityManager> url_security_manager_;
213 scoped_ptr<HttpAuthHandlerNegotiate::Factory> factory_; 213 scoped_ptr<HttpAuthHandlerNegotiate::Factory> factory_;
214 }; 214 };
215 215
216 TEST_F(HttpAuthHandlerNegotiateTest, DisableCname) { 216 TEST_F(HttpAuthHandlerNegotiateTest, DisableCname) {
217 SetupMocks(AuthLibrary()); 217 SetupMocks(AuthLibrary());
218 scoped_ptr<HttpAuthHandlerNegotiate> auth_handler; 218 scoped_ptr<HttpAuthHandlerNegotiate> auth_handler;
219 EXPECT_EQ(OK, CreateHandler( 219 EXPECT_EQ(
220 true, false, true, "http://alias:500", &auth_handler)); 220 OK, CreateHandler(true, false, true, "http://alias:500", &auth_handler));
221 221
222 ASSERT_TRUE(auth_handler.get() != NULL); 222 ASSERT_TRUE(auth_handler.get() != NULL);
223 TestCompletionCallback callback; 223 TestCompletionCallback callback;
224 HttpRequestInfo request_info; 224 HttpRequestInfo request_info;
225 std::string token; 225 std::string token;
226 EXPECT_EQ(OK, auth_handler->GenerateAuthToken(NULL, &request_info, 226 EXPECT_EQ(OK,
227 callback.callback(), &token)); 227 auth_handler->GenerateAuthToken(
228 NULL, &request_info, callback.callback(), &token));
228 #if defined(OS_WIN) 229 #if defined(OS_WIN)
229 EXPECT_EQ("HTTP/alias", auth_handler->spn()); 230 EXPECT_EQ("HTTP/alias", auth_handler->spn());
230 #elif defined(OS_POSIX) 231 #elif defined(OS_POSIX)
231 EXPECT_EQ("HTTP@alias", auth_handler->spn()); 232 EXPECT_EQ("HTTP@alias", auth_handler->spn());
232 #endif 233 #endif
233 } 234 }
234 235
235 TEST_F(HttpAuthHandlerNegotiateTest, DisableCnameStandardPort) { 236 TEST_F(HttpAuthHandlerNegotiateTest, DisableCnameStandardPort) {
236 SetupMocks(AuthLibrary()); 237 SetupMocks(AuthLibrary());
237 scoped_ptr<HttpAuthHandlerNegotiate> auth_handler; 238 scoped_ptr<HttpAuthHandlerNegotiate> auth_handler;
238 EXPECT_EQ(OK, CreateHandler( 239 EXPECT_EQ(OK,
239 true, true, true, "http://alias:80", &auth_handler)); 240 CreateHandler(true, true, true, "http://alias:80", &auth_handler));
240 ASSERT_TRUE(auth_handler.get() != NULL); 241 ASSERT_TRUE(auth_handler.get() != NULL);
241 TestCompletionCallback callback; 242 TestCompletionCallback callback;
242 HttpRequestInfo request_info; 243 HttpRequestInfo request_info;
243 std::string token; 244 std::string token;
244 EXPECT_EQ(OK, auth_handler->GenerateAuthToken(NULL, &request_info, 245 EXPECT_EQ(OK,
245 callback.callback(), &token)); 246 auth_handler->GenerateAuthToken(
247 NULL, &request_info, callback.callback(), &token));
246 #if defined(OS_WIN) 248 #if defined(OS_WIN)
247 EXPECT_EQ("HTTP/alias", auth_handler->spn()); 249 EXPECT_EQ("HTTP/alias", auth_handler->spn());
248 #elif defined(OS_POSIX) 250 #elif defined(OS_POSIX)
249 EXPECT_EQ("HTTP@alias", auth_handler->spn()); 251 EXPECT_EQ("HTTP@alias", auth_handler->spn());
250 #endif 252 #endif
251 } 253 }
252 254
253 TEST_F(HttpAuthHandlerNegotiateTest, DisableCnameNonstandardPort) { 255 TEST_F(HttpAuthHandlerNegotiateTest, DisableCnameNonstandardPort) {
254 SetupMocks(AuthLibrary()); 256 SetupMocks(AuthLibrary());
255 scoped_ptr<HttpAuthHandlerNegotiate> auth_handler; 257 scoped_ptr<HttpAuthHandlerNegotiate> auth_handler;
256 EXPECT_EQ(OK, CreateHandler( 258 EXPECT_EQ(OK,
257 true, true, true, "http://alias:500", &auth_handler)); 259 CreateHandler(true, true, true, "http://alias:500", &auth_handler));
258 ASSERT_TRUE(auth_handler.get() != NULL); 260 ASSERT_TRUE(auth_handler.get() != NULL);
259 TestCompletionCallback callback; 261 TestCompletionCallback callback;
260 HttpRequestInfo request_info; 262 HttpRequestInfo request_info;
261 std::string token; 263 std::string token;
262 EXPECT_EQ(OK, auth_handler->GenerateAuthToken(NULL, &request_info, 264 EXPECT_EQ(OK,
263 callback.callback(), &token)); 265 auth_handler->GenerateAuthToken(
266 NULL, &request_info, callback.callback(), &token));
264 #if defined(OS_WIN) 267 #if defined(OS_WIN)
265 EXPECT_EQ("HTTP/alias:500", auth_handler->spn()); 268 EXPECT_EQ("HTTP/alias:500", auth_handler->spn());
266 #elif defined(OS_POSIX) 269 #elif defined(OS_POSIX)
267 EXPECT_EQ("HTTP@alias:500", auth_handler->spn()); 270 EXPECT_EQ("HTTP@alias:500", auth_handler->spn());
268 #endif 271 #endif
269 } 272 }
270 273
271 TEST_F(HttpAuthHandlerNegotiateTest, CnameSync) { 274 TEST_F(HttpAuthHandlerNegotiateTest, CnameSync) {
272 SetupMocks(AuthLibrary()); 275 SetupMocks(AuthLibrary());
273 scoped_ptr<HttpAuthHandlerNegotiate> auth_handler; 276 scoped_ptr<HttpAuthHandlerNegotiate> auth_handler;
274 EXPECT_EQ(OK, CreateHandler( 277 EXPECT_EQ(
275 false, false, true, "http://alias:500", &auth_handler)); 278 OK, CreateHandler(false, false, true, "http://alias:500", &auth_handler));
276 ASSERT_TRUE(auth_handler.get() != NULL); 279 ASSERT_TRUE(auth_handler.get() != NULL);
277 TestCompletionCallback callback; 280 TestCompletionCallback callback;
278 HttpRequestInfo request_info; 281 HttpRequestInfo request_info;
279 std::string token; 282 std::string token;
280 EXPECT_EQ(OK, auth_handler->GenerateAuthToken(NULL, &request_info, 283 EXPECT_EQ(OK,
281 callback.callback(), &token)); 284 auth_handler->GenerateAuthToken(
285 NULL, &request_info, callback.callback(), &token));
282 #if defined(OS_WIN) 286 #if defined(OS_WIN)
283 EXPECT_EQ("HTTP/canonical.example.com", auth_handler->spn()); 287 EXPECT_EQ("HTTP/canonical.example.com", auth_handler->spn());
284 #elif defined(OS_POSIX) 288 #elif defined(OS_POSIX)
285 EXPECT_EQ("HTTP@canonical.example.com", auth_handler->spn()); 289 EXPECT_EQ("HTTP@canonical.example.com", auth_handler->spn());
286 #endif 290 #endif
287 } 291 }
288 292
289 TEST_F(HttpAuthHandlerNegotiateTest, CnameAsync) { 293 TEST_F(HttpAuthHandlerNegotiateTest, CnameAsync) {
290 SetupMocks(AuthLibrary()); 294 SetupMocks(AuthLibrary());
291 scoped_ptr<HttpAuthHandlerNegotiate> auth_handler; 295 scoped_ptr<HttpAuthHandlerNegotiate> auth_handler;
292 EXPECT_EQ(OK, CreateHandler( 296 EXPECT_EQ(
293 false, false, false, "http://alias:500", &auth_handler)); 297 OK,
298 CreateHandler(false, false, false, "http://alias:500", &auth_handler));
294 ASSERT_TRUE(auth_handler.get() != NULL); 299 ASSERT_TRUE(auth_handler.get() != NULL);
295 TestCompletionCallback callback; 300 TestCompletionCallback callback;
296 HttpRequestInfo request_info; 301 HttpRequestInfo request_info;
297 std::string token; 302 std::string token;
298 EXPECT_EQ(ERR_IO_PENDING, auth_handler->GenerateAuthToken( 303 EXPECT_EQ(ERR_IO_PENDING,
299 NULL, &request_info, callback.callback(), &token)); 304 auth_handler->GenerateAuthToken(
305 NULL, &request_info, callback.callback(), &token));
300 EXPECT_EQ(OK, callback.WaitForResult()); 306 EXPECT_EQ(OK, callback.WaitForResult());
301 #if defined(OS_WIN) 307 #if defined(OS_WIN)
302 EXPECT_EQ("HTTP/canonical.example.com", auth_handler->spn()); 308 EXPECT_EQ("HTTP/canonical.example.com", auth_handler->spn());
303 #elif defined(OS_POSIX) 309 #elif defined(OS_POSIX)
304 EXPECT_EQ("HTTP@canonical.example.com", auth_handler->spn()); 310 EXPECT_EQ("HTTP@canonical.example.com", auth_handler->spn());
305 #endif 311 #endif
306 } 312 }
307 313
308 #if defined(OS_POSIX) 314 #if defined(OS_POSIX)
309 315
310 // This test is only for GSSAPI, as we can't use explicit credentials with 316 // This test is only for GSSAPI, as we can't use explicit credentials with
311 // that library. 317 // that library.
312 TEST_F(HttpAuthHandlerNegotiateTest, ServerNotInKerberosDatabase) { 318 TEST_F(HttpAuthHandlerNegotiateTest, ServerNotInKerberosDatabase) {
313 SetupErrorMocks(AuthLibrary(), GSS_S_FAILURE, 0x96C73A07); // No server 319 SetupErrorMocks(AuthLibrary(), GSS_S_FAILURE, 0x96C73A07); // No server
314 scoped_ptr<HttpAuthHandlerNegotiate> auth_handler; 320 scoped_ptr<HttpAuthHandlerNegotiate> auth_handler;
315 EXPECT_EQ(OK, CreateHandler( 321 EXPECT_EQ(
316 false, false, false, "http://alias:500", &auth_handler)); 322 OK,
323 CreateHandler(false, false, false, "http://alias:500", &auth_handler));
317 ASSERT_TRUE(auth_handler.get() != NULL); 324 ASSERT_TRUE(auth_handler.get() != NULL);
318 TestCompletionCallback callback; 325 TestCompletionCallback callback;
319 HttpRequestInfo request_info; 326 HttpRequestInfo request_info;
320 std::string token; 327 std::string token;
321 EXPECT_EQ(ERR_IO_PENDING, auth_handler->GenerateAuthToken( 328 EXPECT_EQ(ERR_IO_PENDING,
322 NULL, &request_info, callback.callback(), &token)); 329 auth_handler->GenerateAuthToken(
330 NULL, &request_info, callback.callback(), &token));
323 EXPECT_EQ(ERR_MISSING_AUTH_CREDENTIALS, callback.WaitForResult()); 331 EXPECT_EQ(ERR_MISSING_AUTH_CREDENTIALS, callback.WaitForResult());
324 } 332 }
325 333
326 // This test is only for GSSAPI, as we can't use explicit credentials with 334 // This test is only for GSSAPI, as we can't use explicit credentials with
327 // that library. 335 // that library.
328 TEST_F(HttpAuthHandlerNegotiateTest, NoKerberosCredentials) { 336 TEST_F(HttpAuthHandlerNegotiateTest, NoKerberosCredentials) {
329 SetupErrorMocks(AuthLibrary(), GSS_S_FAILURE, 0x96C73AC3); // No credentials 337 SetupErrorMocks(AuthLibrary(), GSS_S_FAILURE, 0x96C73AC3); // No credentials
330 scoped_ptr<HttpAuthHandlerNegotiate> auth_handler; 338 scoped_ptr<HttpAuthHandlerNegotiate> auth_handler;
331 EXPECT_EQ(OK, CreateHandler( 339 EXPECT_EQ(
332 false, false, false, "http://alias:500", &auth_handler)); 340 OK,
341 CreateHandler(false, false, false, "http://alias:500", &auth_handler));
333 ASSERT_TRUE(auth_handler.get() != NULL); 342 ASSERT_TRUE(auth_handler.get() != NULL);
334 TestCompletionCallback callback; 343 TestCompletionCallback callback;
335 HttpRequestInfo request_info; 344 HttpRequestInfo request_info;
336 std::string token; 345 std::string token;
337 EXPECT_EQ(ERR_IO_PENDING, auth_handler->GenerateAuthToken( 346 EXPECT_EQ(ERR_IO_PENDING,
338 NULL, &request_info, callback.callback(), &token)); 347 auth_handler->GenerateAuthToken(
348 NULL, &request_info, callback.callback(), &token));
339 EXPECT_EQ(ERR_MISSING_AUTH_CREDENTIALS, callback.WaitForResult()); 349 EXPECT_EQ(ERR_MISSING_AUTH_CREDENTIALS, callback.WaitForResult());
340 } 350 }
341 351
342 #if defined(DLOPEN_KERBEROS) 352 #if defined(DLOPEN_KERBEROS)
343 TEST_F(HttpAuthHandlerNegotiateTest, MissingGSSAPI) { 353 TEST_F(HttpAuthHandlerNegotiateTest, MissingGSSAPI) {
344 scoped_ptr<HostResolver> host_resolver(new MockHostResolver()); 354 scoped_ptr<HostResolver> host_resolver(new MockHostResolver());
345 MockAllowURLSecurityManager url_security_manager; 355 MockAllowURLSecurityManager url_security_manager;
346 scoped_ptr<HttpAuthHandlerNegotiate::Factory> negotiate_factory( 356 scoped_ptr<HttpAuthHandlerNegotiate::Factory> negotiate_factory(
347 new HttpAuthHandlerNegotiate::Factory()); 357 new HttpAuthHandlerNegotiate::Factory());
348 negotiate_factory->set_host_resolver(host_resolver.get()); 358 negotiate_factory->set_host_resolver(host_resolver.get());
349 negotiate_factory->set_url_security_manager(&url_security_manager); 359 negotiate_factory->set_url_security_manager(&url_security_manager);
350 negotiate_factory->set_library( 360 negotiate_factory->set_library(
351 new GSSAPISharedLibrary("/this/library/does/not/exist")); 361 new GSSAPISharedLibrary("/this/library/does/not/exist"));
352 362
353 GURL gurl("http://www.example.com"); 363 GURL gurl("http://www.example.com");
354 scoped_ptr<HttpAuthHandler> generic_handler; 364 scoped_ptr<HttpAuthHandler> generic_handler;
355 int rv = negotiate_factory->CreateAuthHandlerFromString( 365 int rv = negotiate_factory->CreateAuthHandlerFromString("Negotiate",
356 "Negotiate", 366 HttpAuth::AUTH_SERVER,
357 HttpAuth::AUTH_SERVER, 367 gurl,
358 gurl, 368 BoundNetLog(),
359 BoundNetLog(), 369 &generic_handler);
360 &generic_handler);
361 EXPECT_EQ(ERR_UNSUPPORTED_AUTH_SCHEME, rv); 370 EXPECT_EQ(ERR_UNSUPPORTED_AUTH_SCHEME, rv);
362 EXPECT_TRUE(generic_handler.get() == NULL); 371 EXPECT_TRUE(generic_handler.get() == NULL);
363 } 372 }
364 #endif // defined(DLOPEN_KERBEROS) 373 #endif // defined(DLOPEN_KERBEROS)
365 374
366 #endif // defined(OS_POSIX) 375 #endif // defined(OS_POSIX)
367 376
368 } // namespace net 377 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698