OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/spdy/spdy_test_util_common.h" | 5 #include "net/spdy/spdy_test_util_common.h" |
6 | 6 |
7 #include <cstddef> | 7 #include <cstddef> |
8 | 8 |
9 #include "base/compiler_specific.h" | 9 #include "base/compiler_specific.h" |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
(...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
409 SpdySession::GetDefaultInitialWindowSize(protocol)), | 409 SpdySession::GetDefaultInitialWindowSize(protocol)), |
410 time_func(&base::TimeTicks::Now), | 410 time_func(&base::TimeTicks::Now), |
411 use_alternative_services(true), | 411 use_alternative_services(true), |
412 net_log(NULL) { | 412 net_log(NULL) { |
413 DCHECK(next_proto_is_spdy(protocol)) << "Invalid protocol: " << protocol; | 413 DCHECK(next_proto_is_spdy(protocol)) << "Invalid protocol: " << protocol; |
414 } | 414 } |
415 | 415 |
416 SpdySessionDependencies::~SpdySessionDependencies() {} | 416 SpdySessionDependencies::~SpdySessionDependencies() {} |
417 | 417 |
418 // static | 418 // static |
419 HttpNetworkSession* SpdySessionDependencies::SpdyCreateSession( | 419 scoped_ptr<HttpNetworkSession> SpdySessionDependencies::SpdyCreateSession( |
420 SpdySessionDependencies* session_deps) { | 420 SpdySessionDependencies* session_deps) { |
421 HttpNetworkSession::Params params = CreateSessionParams(session_deps); | 421 HttpNetworkSession::Params params = CreateSessionParams(session_deps); |
422 params.client_socket_factory = session_deps->socket_factory.get(); | 422 params.client_socket_factory = session_deps->socket_factory.get(); |
423 HttpNetworkSession* http_session = new HttpNetworkSession(params); | 423 scoped_ptr<HttpNetworkSession> http_session(new HttpNetworkSession(params)); |
424 SpdySessionPoolPeer pool_peer(http_session->spdy_session_pool()); | 424 SpdySessionPoolPeer pool_peer(http_session->spdy_session_pool()); |
425 pool_peer.SetEnableSendingInitialData(false); | 425 pool_peer.SetEnableSendingInitialData(false); |
426 return http_session; | 426 return http_session.Pass(); |
427 } | 427 } |
428 | 428 |
429 // static | 429 // static |
430 HttpNetworkSession* SpdySessionDependencies::SpdyCreateSessionDeterministic( | 430 scoped_ptr<HttpNetworkSession> |
| 431 SpdySessionDependencies::SpdyCreateSessionDeterministic( |
431 SpdySessionDependencies* session_deps) { | 432 SpdySessionDependencies* session_deps) { |
432 HttpNetworkSession::Params params = CreateSessionParams(session_deps); | 433 HttpNetworkSession::Params params = CreateSessionParams(session_deps); |
433 params.client_socket_factory = | 434 params.client_socket_factory = |
434 session_deps->deterministic_socket_factory.get(); | 435 session_deps->deterministic_socket_factory.get(); |
435 HttpNetworkSession* http_session = new HttpNetworkSession(params); | 436 scoped_ptr<HttpNetworkSession> http_session(new HttpNetworkSession(params)); |
436 SpdySessionPoolPeer pool_peer(http_session->spdy_session_pool()); | 437 SpdySessionPoolPeer pool_peer(http_session->spdy_session_pool()); |
437 pool_peer.SetEnableSendingInitialData(false); | 438 pool_peer.SetEnableSendingInitialData(false); |
438 return http_session; | 439 return http_session.Pass(); |
439 } | 440 } |
440 | 441 |
441 // static | 442 // static |
442 HttpNetworkSession::Params SpdySessionDependencies::CreateSessionParams( | 443 HttpNetworkSession::Params SpdySessionDependencies::CreateSessionParams( |
443 SpdySessionDependencies* session_deps) { | 444 SpdySessionDependencies* session_deps) { |
444 DCHECK(next_proto_is_spdy(session_deps->protocol)) << | 445 DCHECK(next_proto_is_spdy(session_deps->protocol)) << |
445 "Invalid protocol: " << session_deps->protocol; | 446 "Invalid protocol: " << session_deps->protocol; |
446 | 447 |
447 HttpNetworkSession::Params params; | 448 HttpNetworkSession::Params params; |
448 params.host_resolver = session_deps->host_resolver.get(); | 449 params.host_resolver = session_deps->host_resolver.get(); |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
493 params.cert_verifier = cert_verifier(); | 494 params.cert_verifier = cert_verifier(); |
494 params.transport_security_state = transport_security_state(); | 495 params.transport_security_state = transport_security_state(); |
495 params.proxy_service = proxy_service(); | 496 params.proxy_service = proxy_service(); |
496 params.ssl_config_service = ssl_config_service(); | 497 params.ssl_config_service = ssl_config_service(); |
497 params.http_auth_handler_factory = http_auth_handler_factory(); | 498 params.http_auth_handler_factory = http_auth_handler_factory(); |
498 params.network_delegate = network_delegate(); | 499 params.network_delegate = network_delegate(); |
499 params.enable_spdy_compression = false; | 500 params.enable_spdy_compression = false; |
500 params.enable_spdy_ping_based_connection_checking = false; | 501 params.enable_spdy_ping_based_connection_checking = false; |
501 params.spdy_default_protocol = protocol; | 502 params.spdy_default_protocol = protocol; |
502 params.http_server_properties = http_server_properties(); | 503 params.http_server_properties = http_server_properties(); |
503 scoped_refptr<HttpNetworkSession> network_session( | 504 storage_.set_http_network_session( |
504 new HttpNetworkSession(params)); | 505 make_scoped_ptr(new HttpNetworkSession(params))); |
505 SpdySessionPoolPeer pool_peer(network_session->spdy_session_pool()); | 506 SpdySessionPoolPeer pool_peer( |
| 507 storage_.http_network_session()->spdy_session_pool()); |
506 pool_peer.SetEnableSendingInitialData(false); | 508 pool_peer.SetEnableSendingInitialData(false); |
507 storage_.set_http_transaction_factory(make_scoped_ptr(new HttpCache( | 509 storage_.set_http_transaction_factory(make_scoped_ptr( |
508 network_session.get(), HttpCache::DefaultBackend::InMemory(0)))); | 510 new HttpCache(storage_.http_network_session(), |
| 511 HttpCache::DefaultBackend::InMemory(0), false))); |
509 } | 512 } |
510 | 513 |
511 SpdyURLRequestContext::~SpdyURLRequestContext() { | 514 SpdyURLRequestContext::~SpdyURLRequestContext() { |
512 AssertNoURLRequests(); | 515 AssertNoURLRequests(); |
513 } | 516 } |
514 | 517 |
515 bool HasSpdySession(SpdySessionPool* pool, const SpdySessionKey& key) { | 518 bool HasSpdySession(SpdySessionPool* pool, const SpdySessionKey& key) { |
516 return pool->FindAvailableSession(key, BoundNetLog()) != NULL; | 519 return pool->FindAvailableSession(key, BoundNetLog()) != NULL; |
517 } | 520 } |
518 | 521 |
519 namespace { | 522 namespace { |
520 | 523 |
521 base::WeakPtr<SpdySession> CreateSpdySessionHelper( | 524 base::WeakPtr<SpdySession> CreateSpdySessionHelper( |
522 const scoped_refptr<HttpNetworkSession>& http_session, | 525 HttpNetworkSession* http_session, |
523 const SpdySessionKey& key, | 526 const SpdySessionKey& key, |
524 const BoundNetLog& net_log, | 527 const BoundNetLog& net_log, |
525 Error expected_status, | 528 Error expected_status, |
526 bool is_secure) { | 529 bool is_secure) { |
527 EXPECT_FALSE(HasSpdySession(http_session->spdy_session_pool(), key)); | 530 EXPECT_FALSE(HasSpdySession(http_session->spdy_session_pool(), key)); |
528 | 531 |
529 scoped_refptr<TransportSocketParams> transport_params( | 532 scoped_refptr<TransportSocketParams> transport_params( |
530 new TransportSocketParams( | 533 new TransportSocketParams( |
531 key.host_port_pair(), false, false, OnHostResolutionCallback(), | 534 key.host_port_pair(), false, false, OnHostResolutionCallback(), |
532 TransportSocketParams::COMBINE_CONNECT_AND_WRITE_DEFAULT)); | 535 TransportSocketParams::COMBINE_CONNECT_AND_WRITE_DEFAULT)); |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
573 key, connection.Pass(), net_log, OK, is_secure); | 576 key, connection.Pass(), net_log, OK, is_secure); |
574 // Failure is reported asynchronously. | 577 // Failure is reported asynchronously. |
575 EXPECT_TRUE(spdy_session != NULL); | 578 EXPECT_TRUE(spdy_session != NULL); |
576 EXPECT_TRUE(HasSpdySession(http_session->spdy_session_pool(), key)); | 579 EXPECT_TRUE(HasSpdySession(http_session->spdy_session_pool(), key)); |
577 return spdy_session; | 580 return spdy_session; |
578 } | 581 } |
579 | 582 |
580 } // namespace | 583 } // namespace |
581 | 584 |
582 base::WeakPtr<SpdySession> CreateInsecureSpdySession( | 585 base::WeakPtr<SpdySession> CreateInsecureSpdySession( |
583 const scoped_refptr<HttpNetworkSession>& http_session, | 586 HttpNetworkSession* http_session, |
584 const SpdySessionKey& key, | 587 const SpdySessionKey& key, |
585 const BoundNetLog& net_log) { | 588 const BoundNetLog& net_log) { |
586 return CreateSpdySessionHelper(http_session, key, net_log, | 589 return CreateSpdySessionHelper(http_session, key, net_log, |
587 OK, false /* is_secure */); | 590 OK, false /* is_secure */); |
588 } | 591 } |
589 | 592 |
590 base::WeakPtr<SpdySession> TryCreateInsecureSpdySessionExpectingFailure( | 593 base::WeakPtr<SpdySession> TryCreateInsecureSpdySessionExpectingFailure( |
591 const scoped_refptr<HttpNetworkSession>& http_session, | 594 HttpNetworkSession* http_session, |
592 const SpdySessionKey& key, | 595 const SpdySessionKey& key, |
593 Error expected_error, | 596 Error expected_error, |
594 const BoundNetLog& net_log) { | 597 const BoundNetLog& net_log) { |
595 DCHECK_LT(expected_error, ERR_IO_PENDING); | 598 DCHECK_LT(expected_error, ERR_IO_PENDING); |
596 return CreateSpdySessionHelper(http_session, key, net_log, | 599 return CreateSpdySessionHelper(http_session, key, net_log, |
597 expected_error, false /* is_secure */); | 600 expected_error, false /* is_secure */); |
598 } | 601 } |
599 | 602 |
600 base::WeakPtr<SpdySession> CreateSecureSpdySession( | 603 base::WeakPtr<SpdySession> CreateSecureSpdySession( |
601 const scoped_refptr<HttpNetworkSession>& http_session, | 604 HttpNetworkSession* http_session, |
602 const SpdySessionKey& key, | 605 const SpdySessionKey& key, |
603 const BoundNetLog& net_log) { | 606 const BoundNetLog& net_log) { |
604 return CreateSpdySessionHelper(http_session, key, net_log, | 607 return CreateSpdySessionHelper(http_session, key, net_log, |
605 OK, true /* is_secure */); | 608 OK, true /* is_secure */); |
606 } | 609 } |
607 | 610 |
608 namespace { | 611 namespace { |
609 | 612 |
610 // A ClientSocket used for CreateFakeSpdySession() below. | 613 // A ClientSocket used for CreateFakeSpdySession() below. |
611 class FakeSpdySessionClientSocket : public MockClientSocket { | 614 class FakeSpdySessionClientSocket : public MockClientSocket { |
(...skipping 727 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1339 } | 1342 } |
1340 } | 1343 } |
1341 | 1344 |
1342 void SpdyTestUtil::SetPriority(RequestPriority priority, | 1345 void SpdyTestUtil::SetPriority(RequestPriority priority, |
1343 SpdySynStreamIR* ir) const { | 1346 SpdySynStreamIR* ir) const { |
1344 ir->set_priority(ConvertRequestPriorityToSpdyPriority( | 1347 ir->set_priority(ConvertRequestPriorityToSpdyPriority( |
1345 priority, spdy_version())); | 1348 priority, spdy_version())); |
1346 } | 1349 } |
1347 | 1350 |
1348 } // namespace net | 1351 } // namespace net |
OLD | NEW |