| Index: net/quic/quic_stream_factory_test.cc
|
| diff --git a/net/quic/quic_stream_factory_test.cc b/net/quic/quic_stream_factory_test.cc
|
| index c5c75e33066d8c58d36c4bb58fc9bd26d0d5700a..a55f273e235089808a2c357e8d0882abf897912c 100644
|
| --- a/net/quic/quic_stream_factory_test.cc
|
| +++ b/net/quic/quic_stream_factory_test.cc
|
| @@ -22,6 +22,10 @@
|
| #include "net/socket/socket_test_util.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| +using base::StringPiece;
|
| +using std::string;
|
| +using std::vector;
|
| +
|
| namespace net {
|
| namespace test {
|
|
|
| @@ -459,64 +463,86 @@ TEST_F(QuicStreamFactoryTest, OnIPAddressChanged) {
|
| }
|
|
|
| TEST_F(QuicStreamFactoryTest, SharedCryptoConfig) {
|
| - HostPortProxyPair host_port_proxy_pair1(HostPortPair("r1.c.youtube.com", 80),
|
| - ProxyServer::Direct());
|
| -
|
| - QuicCryptoClientConfig* crypto_config1 =
|
| - QuicStreamFactoryPeer::GetOrCreateCryptoConfig(&factory_,
|
| - host_port_proxy_pair1);
|
| - DCHECK(crypto_config1);
|
| - QuicCryptoClientConfig::CachedState* cached1 =
|
| - crypto_config1->LookupOrCreate(host_port_proxy_pair1.first.host());
|
| - EXPECT_FALSE(cached1->proof_valid());
|
| - EXPECT_TRUE(cached1->source_address_token().empty());
|
| -
|
| - // Mutate the cached1 to have different data.
|
| - // TODO(rtenneti): mutate other members of CachedState.
|
| - cached1->set_source_address_token("c.youtube.com");
|
| - cached1->SetProofValid();
|
| -
|
| - HostPortProxyPair host_port_proxy_pair2(HostPortPair("r2.c.youtube.com", 80),
|
| - ProxyServer::Direct());
|
| - QuicCryptoClientConfig* crypto_config2 =
|
| - QuicStreamFactoryPeer::GetOrCreateCryptoConfig(&factory_,
|
| - host_port_proxy_pair2);
|
| - DCHECK(crypto_config2);
|
| - QuicCryptoClientConfig::CachedState* cached2 =
|
| - crypto_config2->LookupOrCreate(host_port_proxy_pair2.first.host());
|
| - EXPECT_EQ(cached1->source_address_token(), cached2->source_address_token());
|
| - EXPECT_TRUE(cached2->proof_valid());
|
| + vector<string> cannoncial_suffixes;
|
| + cannoncial_suffixes.push_back(string(".c.youtube.com"));
|
| + cannoncial_suffixes.push_back(string(".googlevideo.com"));
|
| +
|
| + for (unsigned i = 0; i < cannoncial_suffixes.size(); ++i) {
|
| + string r1_host_name("r1");
|
| + string r2_host_name("r2");
|
| + r1_host_name.append(cannoncial_suffixes[i]);
|
| + r2_host_name.append(cannoncial_suffixes[i]);
|
| +
|
| + HostPortProxyPair host_port_proxy_pair1(HostPortPair(r1_host_name, 80),
|
| + ProxyServer::Direct());
|
| +
|
| + QuicCryptoClientConfig* crypto_config1 =
|
| + QuicStreamFactoryPeer::GetOrCreateCryptoConfig(&factory_,
|
| + host_port_proxy_pair1);
|
| + DCHECK(crypto_config1);
|
| + QuicCryptoClientConfig::CachedState* cached1 =
|
| + crypto_config1->LookupOrCreate(host_port_proxy_pair1.first.host());
|
| + EXPECT_FALSE(cached1->proof_valid());
|
| + EXPECT_TRUE(cached1->source_address_token().empty());
|
| +
|
| + // Mutate the cached1 to have different data.
|
| + // TODO(rtenneti): mutate other members of CachedState.
|
| + cached1->set_source_address_token(r1_host_name);
|
| + cached1->SetProofValid();
|
| +
|
| + HostPortProxyPair host_port_proxy_pair2(HostPortPair(r2_host_name, 80),
|
| + ProxyServer::Direct());
|
| + QuicCryptoClientConfig* crypto_config2 =
|
| + QuicStreamFactoryPeer::GetOrCreateCryptoConfig(&factory_,
|
| + host_port_proxy_pair2);
|
| + DCHECK(crypto_config2);
|
| + QuicCryptoClientConfig::CachedState* cached2 =
|
| + crypto_config2->LookupOrCreate(host_port_proxy_pair2.first.host());
|
| + EXPECT_EQ(cached1->source_address_token(), cached2->source_address_token());
|
| + EXPECT_TRUE(cached2->proof_valid());
|
| + }
|
| }
|
|
|
| TEST_F(QuicStreamFactoryTest, CryptoConfigWhenProofIsInvalid) {
|
| - HostPortProxyPair host_port_proxy_pair1(HostPortPair("r1.c.youtube.com", 80),
|
| - ProxyServer::Direct());
|
| -
|
| - QuicCryptoClientConfig* crypto_config1 =
|
| - QuicStreamFactoryPeer::GetOrCreateCryptoConfig(&factory_,
|
| - host_port_proxy_pair1);
|
| - DCHECK(crypto_config1);
|
| - QuicCryptoClientConfig::CachedState* cached1 =
|
| - crypto_config1->LookupOrCreate(host_port_proxy_pair1.first.host());
|
| - EXPECT_FALSE(cached1->proof_valid());
|
| - EXPECT_TRUE(cached1->source_address_token().empty());
|
| -
|
| - // Mutate the cached1 to have different data.
|
| - // TODO(rtenneti): mutate other members of CachedState.
|
| - cached1->set_source_address_token("c.youtube.com");
|
| - cached1->SetProofInvalid();
|
| -
|
| - HostPortProxyPair host_port_proxy_pair2(HostPortPair("r2.c.youtube.com", 80),
|
| - ProxyServer::Direct());
|
| - QuicCryptoClientConfig* crypto_config2 =
|
| - QuicStreamFactoryPeer::GetOrCreateCryptoConfig(&factory_,
|
| - host_port_proxy_pair2);
|
| - DCHECK(crypto_config2);
|
| - QuicCryptoClientConfig::CachedState* cached2 =
|
| - crypto_config2->LookupOrCreate(host_port_proxy_pair2.first.host());
|
| - EXPECT_NE(cached1->source_address_token(), cached2->source_address_token());
|
| - EXPECT_TRUE(cached2->source_address_token().empty());
|
| - EXPECT_FALSE(cached2->proof_valid());
|
| + vector<string> cannoncial_suffixes;
|
| + cannoncial_suffixes.push_back(string(".c.youtube.com"));
|
| + cannoncial_suffixes.push_back(string(".googlevideo.com"));
|
| +
|
| + for (unsigned i = 0; i < cannoncial_suffixes.size(); ++i) {
|
| + string r3_host_name("r3");
|
| + string r4_host_name("r4");
|
| + r3_host_name.append(cannoncial_suffixes[i]);
|
| + r4_host_name.append(cannoncial_suffixes[i]);
|
| +
|
| + HostPortProxyPair host_port_proxy_pair1(HostPortPair(r3_host_name, 80),
|
| + ProxyServer::Direct());
|
| +
|
| + QuicCryptoClientConfig* crypto_config1 =
|
| + QuicStreamFactoryPeer::GetOrCreateCryptoConfig(&factory_,
|
| + host_port_proxy_pair1);
|
| + DCHECK(crypto_config1);
|
| + QuicCryptoClientConfig::CachedState* cached1 =
|
| + crypto_config1->LookupOrCreate(host_port_proxy_pair1.first.host());
|
| + EXPECT_FALSE(cached1->proof_valid());
|
| + EXPECT_TRUE(cached1->source_address_token().empty());
|
| +
|
| + // Mutate the cached1 to have different data.
|
| + // TODO(rtenneti): mutate other members of CachedState.
|
| + cached1->set_source_address_token(r3_host_name);
|
| + cached1->SetProofInvalid();
|
| +
|
| + HostPortProxyPair host_port_proxy_pair2(HostPortPair(r4_host_name, 80),
|
| + ProxyServer::Direct());
|
| + QuicCryptoClientConfig* crypto_config2 =
|
| + QuicStreamFactoryPeer::GetOrCreateCryptoConfig(&factory_,
|
| + host_port_proxy_pair2);
|
| + DCHECK(crypto_config2);
|
| + QuicCryptoClientConfig::CachedState* cached2 =
|
| + crypto_config2->LookupOrCreate(host_port_proxy_pair2.first.host());
|
| + EXPECT_NE(cached1->source_address_token(), cached2->source_address_token());
|
| + EXPECT_TRUE(cached2->source_address_token().empty());
|
| + EXPECT_FALSE(cached2->proof_valid());
|
| + }
|
| }
|
|
|
| } // namespace test
|
|
|