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

Side by Side Diff: net/spdy/spdy_test_util.h

Issue 5386001: Cache certificate verification results in memory. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Add unit tests. Ready for review. Created 10 years 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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 #ifndef NET_SPDY_SPDY_TEST_UTIL_H_ 5 #ifndef NET_SPDY_SPDY_TEST_UTIL_H_
6 #define NET_SPDY_SPDY_TEST_UTIL_H_ 6 #define NET_SPDY_SPDY_TEST_UTIL_H_
7 #pragma once 7 #pragma once
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "net/base/cert_verifier.h"
10 #include "net/base/mock_host_resolver.h" 11 #include "net/base/mock_host_resolver.h"
11 #include "net/base/request_priority.h" 12 #include "net/base/request_priority.h"
12 #include "net/base/ssl_config_service_defaults.h" 13 #include "net/base/ssl_config_service_defaults.h"
13 #include "net/http/http_auth_handler_factory.h" 14 #include "net/http/http_auth_handler_factory.h"
14 #include "net/http/http_cache.h" 15 #include "net/http/http_cache.h"
15 #include "net/http/http_network_session.h" 16 #include "net/http/http_network_session.h"
16 #include "net/http/http_network_layer.h" 17 #include "net/http/http_network_layer.h"
17 #include "net/http/http_transaction_factory.h" 18 #include "net/http/http_transaction_factory.h"
18 #include "net/proxy/proxy_service.h" 19 #include "net/proxy/proxy_service.h"
19 #include "net/socket/socket_test_util.h" 20 #include "net/socket/socket_test_util.h"
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after
320 int CombineFrames(const spdy::SpdyFrame** frames, int num_frames, 321 int CombineFrames(const spdy::SpdyFrame** frames, int num_frames,
321 char* buff, int buff_len); 322 char* buff, int buff_len);
322 323
323 // Helper to manage the lifetimes of the dependencies for a 324 // Helper to manage the lifetimes of the dependencies for a
324 // HttpNetworkTransaction. 325 // HttpNetworkTransaction.
325 class SpdySessionDependencies { 326 class SpdySessionDependencies {
326 public: 327 public:
327 // Default set of dependencies -- "null" proxy service. 328 // Default set of dependencies -- "null" proxy service.
328 SpdySessionDependencies() 329 SpdySessionDependencies()
329 : host_resolver(new MockHostResolver), 330 : host_resolver(new MockHostResolver),
331 cert_verifier(new CertVerifier),
330 proxy_service(ProxyService::CreateDirect()), 332 proxy_service(ProxyService::CreateDirect()),
331 ssl_config_service(new SSLConfigServiceDefaults), 333 ssl_config_service(new SSLConfigServiceDefaults),
332 socket_factory(new MockClientSocketFactory), 334 socket_factory(new MockClientSocketFactory),
333 deterministic_socket_factory(new DeterministicMockClientSocketFactory), 335 deterministic_socket_factory(new DeterministicMockClientSocketFactory),
334 http_auth_handler_factory( 336 http_auth_handler_factory(
335 HttpAuthHandlerFactory::CreateDefault(host_resolver.get())) { 337 HttpAuthHandlerFactory::CreateDefault(host_resolver.get())) {
336 // Note: The CancelledTransaction test does cleanup by running all 338 // Note: The CancelledTransaction test does cleanup by running all
337 // tasks in the message loop (RunAllPending). Unfortunately, that 339 // tasks in the message loop (RunAllPending). Unfortunately, that
338 // doesn't clean up tasks on the host resolver thread; and 340 // doesn't clean up tasks on the host resolver thread; and
339 // TCPConnectJob is currently not cancellable. Using synchronous 341 // TCPConnectJob is currently not cancellable. Using synchronous
340 // lookups allows the test to shutdown cleanly. Until we have 342 // lookups allows the test to shutdown cleanly. Until we have
341 // cancellable TCPConnectJobs, use synchronous lookups. 343 // cancellable TCPConnectJobs, use synchronous lookups.
342 host_resolver->set_synchronous_mode(true); 344 host_resolver->set_synchronous_mode(true);
343 } 345 }
344 346
345 // Custom proxy service dependency. 347 // Custom proxy service dependency.
346 explicit SpdySessionDependencies(ProxyService* proxy_service) 348 explicit SpdySessionDependencies(ProxyService* proxy_service)
347 : host_resolver(new MockHostResolver), 349 : host_resolver(new MockHostResolver),
350 cert_verifier(new CertVerifier),
348 proxy_service(proxy_service), 351 proxy_service(proxy_service),
349 ssl_config_service(new SSLConfigServiceDefaults), 352 ssl_config_service(new SSLConfigServiceDefaults),
350 socket_factory(new MockClientSocketFactory), 353 socket_factory(new MockClientSocketFactory),
351 deterministic_socket_factory(new DeterministicMockClientSocketFactory), 354 deterministic_socket_factory(new DeterministicMockClientSocketFactory),
352 http_auth_handler_factory( 355 http_auth_handler_factory(
353 HttpAuthHandlerFactory::CreateDefault(host_resolver.get())) {} 356 HttpAuthHandlerFactory::CreateDefault(host_resolver.get())) {}
354 357
355 // NOTE: host_resolver must be ordered before http_auth_handler_factory. 358 // NOTE: host_resolver must be ordered before http_auth_handler_factory.
356 scoped_ptr<MockHostResolverBase> host_resolver; 359 scoped_ptr<MockHostResolverBase> host_resolver;
360 scoped_ptr<CertVerifier> cert_verifier;
357 scoped_refptr<ProxyService> proxy_service; 361 scoped_refptr<ProxyService> proxy_service;
358 scoped_refptr<SSLConfigService> ssl_config_service; 362 scoped_refptr<SSLConfigService> ssl_config_service;
359 scoped_ptr<MockClientSocketFactory> socket_factory; 363 scoped_ptr<MockClientSocketFactory> socket_factory;
360 scoped_ptr<DeterministicMockClientSocketFactory> deterministic_socket_factory; 364 scoped_ptr<DeterministicMockClientSocketFactory> deterministic_socket_factory;
361 scoped_ptr<HttpAuthHandlerFactory> http_auth_handler_factory; 365 scoped_ptr<HttpAuthHandlerFactory> http_auth_handler_factory;
362 366
363 static HttpNetworkSession* SpdyCreateSession( 367 static HttpNetworkSession* SpdyCreateSession(
364 SpdySessionDependencies* session_deps) { 368 SpdySessionDependencies* session_deps) {
365 return new HttpNetworkSession(session_deps->host_resolver.get(), 369 return new HttpNetworkSession(session_deps->host_resolver.get(),
370 session_deps->cert_verifier.get(),
366 NULL /* dnsrr_resolver */, 371 NULL /* dnsrr_resolver */,
367 NULL /* dns_cert_checker */, 372 NULL /* dns_cert_checker */,
368 NULL /* ssl_host_info_factory */, 373 NULL /* ssl_host_info_factory */,
369 session_deps->proxy_service, 374 session_deps->proxy_service,
370 session_deps->socket_factory.get(), 375 session_deps->socket_factory.get(),
371 session_deps->ssl_config_service, 376 session_deps->ssl_config_service,
372 new SpdySessionPool(NULL), 377 new SpdySessionPool(NULL),
373 session_deps->http_auth_handler_factory.get(), 378 session_deps->http_auth_handler_factory.get(),
374 NULL, 379 NULL,
375 NULL); 380 NULL);
376 } 381 }
377 static HttpNetworkSession* SpdyCreateSessionDeterministic( 382 static HttpNetworkSession* SpdyCreateSessionDeterministic(
378 SpdySessionDependencies* session_deps) { 383 SpdySessionDependencies* session_deps) {
379 return new HttpNetworkSession(session_deps->host_resolver.get(), 384 return new HttpNetworkSession(session_deps->host_resolver.get(),
385 session_deps->cert_verifier.get(),
380 NULL /* dnsrr_resolver */, 386 NULL /* dnsrr_resolver */,
381 NULL /* dns_cert_checker */, 387 NULL /* dns_cert_checker */,
382 NULL /* ssl_host_info_factory */, 388 NULL /* ssl_host_info_factory */,
383 session_deps->proxy_service, 389 session_deps->proxy_service,
384 session_deps-> 390 session_deps->
385 deterministic_socket_factory.get(), 391 deterministic_socket_factory.get(),
386 session_deps->ssl_config_service, 392 session_deps->ssl_config_service,
387 new SpdySessionPool(NULL), 393 new SpdySessionPool(NULL),
388 session_deps->http_auth_handler_factory.get(), 394 session_deps->http_auth_handler_factory.get(),
389 NULL, 395 NULL,
390 NULL); 396 NULL);
391 } 397 }
392 }; 398 };
393 399
394 class SpdyURLRequestContext : public URLRequestContext { 400 class SpdyURLRequestContext : public URLRequestContext {
395 public: 401 public:
396 SpdyURLRequestContext() { 402 SpdyURLRequestContext() {
397 host_resolver_ = new MockHostResolver(); 403 host_resolver_ = new MockHostResolver();
404 cert_verifier_ = new CertVerifier;
398 proxy_service_ = ProxyService::CreateDirect(); 405 proxy_service_ = ProxyService::CreateDirect();
399 ssl_config_service_ = new SSLConfigServiceDefaults; 406 ssl_config_service_ = new SSLConfigServiceDefaults;
400 http_auth_handler_factory_ = HttpAuthHandlerFactory::CreateDefault( 407 http_auth_handler_factory_ = HttpAuthHandlerFactory::CreateDefault(
401 host_resolver_); 408 host_resolver_);
402 http_transaction_factory_ = new net::HttpCache( 409 http_transaction_factory_ = new net::HttpCache(
403 new HttpNetworkLayer(&socket_factory_, 410 new HttpNetworkLayer(&socket_factory_,
404 host_resolver_, 411 host_resolver_,
412 cert_verifier_,
405 NULL /* dnsrr_resolver */, 413 NULL /* dnsrr_resolver */,
406 NULL /* dns_cert_checker */, 414 NULL /* dns_cert_checker */,
407 NULL /* ssl_host_info_factory */, 415 NULL /* ssl_host_info_factory */,
408 proxy_service_, 416 proxy_service_,
409 ssl_config_service_, 417 ssl_config_service_,
410 new SpdySessionPool(NULL), 418 new SpdySessionPool(NULL),
411 http_auth_handler_factory_, 419 http_auth_handler_factory_,
412 network_delegate_, 420 network_delegate_,
413 NULL), 421 NULL),
414 net::HttpCache::DefaultBackend::InMemory(0)); 422 net::HttpCache::DefaultBackend::InMemory(0));
415 } 423 }
416 424
417 MockClientSocketFactory& socket_factory() { return socket_factory_; } 425 MockClientSocketFactory& socket_factory() { return socket_factory_; }
418 426
419 protected: 427 protected:
420 virtual ~SpdyURLRequestContext() { 428 virtual ~SpdyURLRequestContext() {
421 delete http_transaction_factory_; 429 delete http_transaction_factory_;
422 delete http_auth_handler_factory_; 430 delete http_auth_handler_factory_;
431 delete cert_verifier_;
423 delete host_resolver_; 432 delete host_resolver_;
424 } 433 }
425 434
426 private: 435 private:
427 MockClientSocketFactory socket_factory_; 436 MockClientSocketFactory socket_factory_;
428 }; 437 };
429 438
430 const SpdyHeaderInfo make_spdy_header(spdy::SpdyControlType type); 439 const SpdyHeaderInfo make_spdy_header(spdy::SpdyControlType type);
431 } // namespace net 440 } // namespace net
432 441
433 #endif // NET_SPDY_SPDY_TEST_UTIL_H_ 442 #endif // NET_SPDY_SPDY_TEST_UTIL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698