Index: net/quic/test_tools/quic_stream_factory_peer.cc |
diff --git a/net/quic/test_tools/quic_stream_factory_peer.cc b/net/quic/test_tools/quic_stream_factory_peer.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..7f002fb51370b96a59643744b7316c49609deb10 |
--- /dev/null |
+++ b/net/quic/test_tools/quic_stream_factory_peer.cc |
@@ -0,0 +1,165 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "net/quic/test_tools/quic_stream_factory_peer.h" |
+ |
+#include "net/quic/crypto/quic_crypto_client_config.h" |
+#include "net/quic/quic_chromium_client_session.h" |
+#include "net/quic/quic_clock.h" |
+#include "net/quic/quic_http_stream.h" |
+#include "net/quic/quic_stream_factory.h" |
+ |
+using std::string; |
+using std::vector; |
+ |
+namespace net { |
+namespace test { |
+ |
+const QuicConfig* QuicStreamFactoryPeer::GetConfig(QuicStreamFactory* factory) { |
+ return &factory->config_; |
+} |
+ |
+QuicCryptoClientConfig* QuicStreamFactoryPeer::GetCryptoConfig( |
+ QuicStreamFactory* factory) { |
+ return &factory->crypto_config_; |
+} |
+ |
+bool QuicStreamFactoryPeer::HasActiveSession( |
+ QuicStreamFactory* factory, |
+ const HostPortPair& host_port_pair) { |
+ QuicServerId server_id(host_port_pair, PRIVACY_MODE_DISABLED); |
+ return factory->HasActiveSession(server_id); |
+} |
+ |
+QuicChromiumClientSession* QuicStreamFactoryPeer::GetActiveSession( |
+ QuicStreamFactory* factory, |
+ const HostPortPair& host_port_pair) { |
+ QuicServerId server_id(host_port_pair, PRIVACY_MODE_DISABLED); |
+ DCHECK(factory->HasActiveSession(server_id)); |
+ return factory->active_sessions_[server_id]; |
+} |
+ |
+scoped_ptr<QuicHttpStream> QuicStreamFactoryPeer::CreateFromSession( |
+ QuicStreamFactory* factory, |
+ QuicChromiumClientSession* session) { |
+ return factory->CreateFromSession(session); |
+} |
+ |
+bool QuicStreamFactoryPeer::IsLiveSession(QuicStreamFactory* factory, |
+ QuicChromiumClientSession* session) { |
+ for (QuicStreamFactory::SessionIdMap::iterator it = |
+ factory->all_sessions_.begin(); |
+ it != factory->all_sessions_.end(); ++it) { |
+ if (it->first == session) |
+ return true; |
+ } |
+ return false; |
+} |
+ |
+void QuicStreamFactoryPeer::SetTaskRunner(QuicStreamFactory* factory, |
+ base::TaskRunner* task_runner) { |
+ factory->task_runner_ = task_runner; |
+} |
+ |
+int QuicStreamFactoryPeer::GetNumberOfLossyConnections( |
+ QuicStreamFactory* factory, |
+ uint16 port) { |
+ return factory->number_of_lossy_connections_[port]; |
+} |
+ |
+bool QuicStreamFactoryPeer::IsQuicDisabled(QuicStreamFactory* factory, |
+ uint16 port) { |
+ return factory->IsQuicDisabled(port); |
+} |
+ |
+bool QuicStreamFactoryPeer::GetDelayTcpRace(QuicStreamFactory* factory) { |
+ return factory->delay_tcp_race_; |
+} |
+ |
+void QuicStreamFactoryPeer::SetDelayTcpRace(QuicStreamFactory* factory, |
+ bool delay_tcp_race) { |
+ factory->delay_tcp_race_ = delay_tcp_race; |
+} |
+ |
+void QuicStreamFactoryPeer::SetYieldAfterPackets(QuicStreamFactory* factory, |
+ int yield_after_packets) { |
+ factory->yield_after_packets_ = yield_after_packets; |
+} |
+ |
+void QuicStreamFactoryPeer::SetYieldAfterDuration( |
+ QuicStreamFactory* factory, |
+ QuicTime::Delta yield_after_duration) { |
+ factory->yield_after_duration_ = yield_after_duration; |
+} |
+ |
+size_t QuicStreamFactoryPeer::GetNumberOfActiveJobs( |
+ QuicStreamFactory* factory, |
+ const QuicServerId& server_id) { |
+ return (factory->active_jobs_[server_id]).size(); |
+} |
+ |
+int QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams( |
+ QuicStreamFactory* factory) { |
+ return factory->num_timeouts_with_open_streams_; |
+} |
+ |
+int QuicStreamFactoryPeer::GetNumPublicResetsPostHandshake( |
+ QuicStreamFactory* factory) { |
+ return factory->num_public_resets_post_handshake_; |
+} |
+ |
+void QuicStreamFactoryPeer::MaybeInitialize(QuicStreamFactory* factory) { |
+ factory->MaybeInitialize(); |
+} |
+ |
+bool QuicStreamFactoryPeer::HasInitializedData(QuicStreamFactory* factory) { |
+ return factory->has_initialized_data_; |
+} |
+ |
+bool QuicStreamFactoryPeer::SupportsQuicAtStartUp(QuicStreamFactory* factory, |
+ HostPortPair host_port_pair) { |
+ return ContainsKey(factory->quic_supported_servers_at_startup_, |
+ host_port_pair); |
+} |
+ |
+bool QuicStreamFactoryPeer::CryptoConfigCacheIsEmpty( |
+ QuicStreamFactory* factory, |
+ QuicServerId& quic_server_id) { |
+ return factory->CryptoConfigCacheIsEmpty(quic_server_id); |
+} |
+ |
+void QuicStreamFactoryPeer::CacheDummyServerConfig( |
+ QuicStreamFactory* factory, |
+ const QuicServerId& quic_server_id) { |
+ // Minimum SCFG that passes config validation checks. |
+ const char scfg[] = {// SCFG |
+ 0x53, 0x43, 0x46, 0x47, |
+ // num entries |
+ 0x01, 0x00, |
+ // padding |
+ 0x00, 0x00, |
+ // EXPY |
+ 0x45, 0x58, 0x50, 0x59, |
+ // EXPY end offset |
+ 0x08, 0x00, 0x00, 0x00, |
+ // Value |
+ '1', '2', '3', '4', '5', '6', '7', '8'}; |
+ |
+ string server_config(reinterpret_cast<const char*>(&scfg), sizeof(scfg)); |
+ string source_address_token("test_source_address_token"); |
+ string signature("test_signature"); |
+ string test_cert("test_cert"); |
+ vector<string> certs; |
+ certs.push_back(test_cert); |
+ |
+ QuicCryptoClientConfig* crypto_config = &factory->crypto_config_; |
+ QuicCryptoClientConfig::CachedState* cached = |
+ crypto_config->LookupOrCreate(quic_server_id); |
+ QuicClock clock; |
+ cached->Initialize(server_config, source_address_token, certs, "", signature, |
+ clock.WallNow()); |
+} |
+ |
+} // namespace test |
+} // namespace net |