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

Unified Diff: net/http/http_server_properties_impl_unittest.cc

Issue 1216703002: Implement multiple alternative services per origin. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Nit. Created 5 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/http/http_server_properties_impl.cc ('k') | net/http/http_server_properties_manager.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/http/http_server_properties_impl_unittest.cc
diff --git a/net/http/http_server_properties_impl_unittest.cc b/net/http/http_server_properties_impl_unittest.cc
index e7fa7b48f43bad6e4e8fca3ea0a2178c2f1489aa..1a36fcbae08b1ebefba5ba26585f27a93f67794a 100644
--- a/net/http/http_server_properties_impl_unittest.cc
+++ b/net/http/http_server_properties_impl_unittest.cc
@@ -50,9 +50,9 @@ namespace {
class HttpServerPropertiesImplTest : public testing::Test {
protected:
bool HasAlternativeService(const HostPortPair& origin) {
- const AlternativeService alternative_service =
- impl_.GetAlternativeService(origin);
- return alternative_service.protocol != UNINITIALIZED_ALTERNATE_PROTOCOL;
+ const AlternativeServiceVector alternative_service_vector =
+ impl_.GetAlternativeServices(origin);
+ return !alternative_service_vector.empty();
}
HttpServerPropertiesImpl impl_;
@@ -123,15 +123,23 @@ TEST_F(SpdyServerPropertiesTest, SupportsRequestPriorityTest) {
// Add www.youtube.com:443 as supporting QUIC.
HostPortPair quic_server_youtube("www.youtube.com", 443);
- const AlternativeService alternative_service(QUIC, "www.youtube.com", 443);
- impl_.SetAlternativeService(quic_server_youtube, alternative_service, 1.0);
+ const AlternativeService alternative_service1(QUIC, "www.youtube.com", 443);
+ impl_.SetAlternativeService(quic_server_youtube, alternative_service1, 1.0);
EXPECT_TRUE(impl_.SupportsRequestPriority(quic_server_youtube));
+ // Add www.example.com:443 with two alternative services, one supporting QUIC.
+ HostPortPair quic_server_example("www.example.com", 443);
+ const AlternativeService alternative_service2(NPN_SPDY_4, "", 443);
+ impl_.SetAlternativeService(quic_server_example, alternative_service2, 1.0);
+ impl_.SetAlternativeService(quic_server_example, alternative_service1, 1.0);
+ EXPECT_TRUE(impl_.SupportsRequestPriority(quic_server_example));
+
// Verify all the entries are the same after additions.
EXPECT_TRUE(impl_.SupportsRequestPriority(spdy_server_google));
EXPECT_FALSE(impl_.SupportsRequestPriority(spdy_server_mail));
EXPECT_TRUE(impl_.SupportsRequestPriority(spdy_server_docs));
EXPECT_TRUE(impl_.SupportsRequestPriority(quic_server_youtube));
+ EXPECT_TRUE(impl_.SupportsRequestPriority(quic_server_example));
}
TEST_F(SpdyServerPropertiesTest, Clear) {
@@ -252,10 +260,10 @@ TEST_F(AlternateProtocolServerPropertiesTest, Basic) {
AlternativeService alternative_service(NPN_SPDY_4, "foo", 443);
impl_.SetAlternativeService(test_host_port_pair, alternative_service, 1.0);
- ASSERT_TRUE(HasAlternativeService(test_host_port_pair));
- alternative_service = impl_.GetAlternativeService(test_host_port_pair);
- EXPECT_EQ(443, alternative_service.port);
- EXPECT_EQ(NPN_SPDY_4, alternative_service.protocol);
+ const AlternativeServiceVector alternative_service_vector =
+ impl_.GetAlternativeServices(test_host_port_pair);
+ ASSERT_EQ(1u, alternative_service_vector.size());
+ EXPECT_EQ(alternative_service, alternative_service_vector[0]);
impl_.Clear();
EXPECT_FALSE(HasAlternativeService(test_host_port_pair));
@@ -269,20 +277,34 @@ TEST_F(AlternateProtocolServerPropertiesTest, DefaultProbabilityExcluded) {
EXPECT_FALSE(HasAlternativeService(test_host_port_pair));
}
+// GetAlternativeServices and HasAlternativeServices should only return the ones
+// with probability greater than or equal to the threshold.
TEST_F(AlternateProtocolServerPropertiesTest, Probability) {
- impl_.SetAlternativeServiceProbabilityThreshold(0.25);
+ impl_.SetAlternativeServiceProbabilityThreshold(0.5);
+
+ AlternativeServiceInfoVector alternative_service_info_vector;
+ const AlternativeService alternative_service1(NPN_SPDY_4, "foo", 443);
+ alternative_service_info_vector.push_back(
+ AlternativeServiceInfo(alternative_service1, 0.3));
+ const AlternativeService alternative_service2(QUIC, "bar", 123);
+ alternative_service_info_vector.push_back(
+ AlternativeServiceInfo(alternative_service2, 0.7));
+ const AlternativeService alternative_service3(NPN_SPDY_3_1, "baz", 443);
+ alternative_service_info_vector.push_back(
+ AlternativeServiceInfo(alternative_service3, 0.4));
+ const AlternativeService alternative_service4(NPN_SPDY_4, "qux", 1234);
+ alternative_service_info_vector.push_back(
+ AlternativeServiceInfo(alternative_service4, 0.6));
HostPortPair test_host_port_pair("foo", 80);
- const AlternativeService alternative_service(NPN_SPDY_4, "foo", 443);
- impl_.SetAlternativeService(test_host_port_pair, alternative_service, 0.5);
- EXPECT_TRUE(HasAlternativeService(test_host_port_pair));
+ impl_.SetAlternativeServices(test_host_port_pair,
+ alternative_service_info_vector);
- AlternativeServiceMap::const_iterator it =
- impl_.alternative_service_map().Peek(test_host_port_pair);
- ASSERT_TRUE(it != impl_.alternative_service_map().end());
- EXPECT_EQ(443, it->second.alternative_service.port);
- EXPECT_EQ(NPN_SPDY_4, it->second.alternative_service.protocol);
- EXPECT_EQ(0.5, it->second.probability);
+ const AlternativeServiceVector alternative_service_vector =
+ impl_.GetAlternativeServices(test_host_port_pair);
+ ASSERT_EQ(2u, alternative_service_vector.size());
+ EXPECT_EQ(alternative_service2, alternative_service_vector[0]);
+ EXPECT_EQ(alternative_service4, alternative_service_vector[1]);
}
TEST_F(AlternateProtocolServerPropertiesTest, ProbabilityExcluded) {
@@ -295,38 +317,63 @@ TEST_F(AlternateProtocolServerPropertiesTest, ProbabilityExcluded) {
}
TEST_F(AlternateProtocolServerPropertiesTest, Initialize) {
+ // |test_host_port_pair1| has one alternative service, which is non-broken,
+ // and thus will be removed by InitializeAlternativeServiceServers().
HostPortPair test_host_port_pair1("foo1", 80);
- const AlternativeService alternative_service1(NPN_SPDY_4, "foo1", 443);
+ const AlternativeService alternative_service1(NPN_SPDY_4, "bar1", 443);
impl_.SetAlternativeService(test_host_port_pair1, alternative_service1, 1.0);
- impl_.MarkAlternativeServiceBroken(alternative_service1);
+ // |test_host_port_pair2| has two alternative services. The broken one will
+ // remain, the non-broken one will be removed by
+ // InitializeAlternativeServiceServers().
+ AlternativeServiceInfoVector alternative_service_info_vector;
+ const AlternativeService alternative_service2(NPN_SPDY_3_1, "bar2", 443);
+ alternative_service_info_vector.push_back(
+ AlternativeServiceInfo(alternative_service2, 1.0));
+ const AlternativeService alternative_service3(NPN_SPDY_3_1, "bar3", 1234);
+ alternative_service_info_vector.push_back(
+ AlternativeServiceInfo(alternative_service3, 0.8));
HostPortPair test_host_port_pair2("foo2", 80);
- const AlternativeService alternative_service2(NPN_SPDY_4, "foo2", 443);
- impl_.SetAlternativeService(test_host_port_pair2, alternative_service2, 1.0);
+ impl_.SetAlternativeServices(test_host_port_pair2,
+ alternative_service_info_vector);
+ impl_.MarkAlternativeServiceBroken(alternative_service2);
+ // Prepare |alternative_service_map| to be loaded by
+ // InitializeAlternativeServiceServers().
AlternativeServiceMap alternative_service_map(
AlternativeServiceMap::NO_AUTO_EVICT);
- AlternativeServiceInfo alternative_service_info(NPN_SPDY_4, "bar", 123, 1.0);
- alternative_service_map.Put(test_host_port_pair2, alternative_service_info);
+ const AlternativeService alternative_service4(NPN_SPDY_4, "bar4", 123);
+ const AlternativeServiceInfo alternative_service_info1(alternative_service4,
+ 0.7);
+ alternative_service_map.Put(
+ test_host_port_pair2,
+ AlternativeServiceInfoVector(/*size=*/1, alternative_service_info1));
+
HostPortPair test_host_port_pair3("foo3", 80);
- alternative_service_info.alternative_service.port = 1234;
- alternative_service_map.Put(test_host_port_pair3, alternative_service_info);
+ const AlternativeService alternative_service5(NPN_SPDY_4, "bar5", 1234);
+ const AlternativeServiceInfo alternative_service_info2(alternative_service5,
+ 0.2);
+ alternative_service_map.Put(
+ test_host_port_pair3,
+ AlternativeServiceInfoVector(/*size=*/1, alternative_service_info2));
+
impl_.InitializeAlternativeServiceServers(&alternative_service_map);
- // Verify test_host_port_pair3 is the MRU server.
+ // Verify alternative_service_map.
const AlternativeServiceMap& map = impl_.alternative_service_map();
- AlternativeServiceMap::const_iterator it = map.begin();
- ASSERT_TRUE(it != map.end());
- EXPECT_TRUE(it->first.Equals(test_host_port_pair3));
- EXPECT_EQ(NPN_SPDY_4, it->second.alternative_service.protocol);
- EXPECT_EQ(1234, it->second.alternative_service.port);
-
- ASSERT_TRUE(HasAlternativeService(test_host_port_pair1));
- EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service1));
- const AlternativeService alternative_service =
- impl_.GetAlternativeService(test_host_port_pair2);
- EXPECT_EQ(NPN_SPDY_4, alternative_service.protocol);
- EXPECT_EQ(123, alternative_service.port);
+ ASSERT_EQ(2u, map.size());
+ AlternativeServiceMap::const_iterator map_it = map.begin();
+ EXPECT_TRUE(map_it->first.Equals(test_host_port_pair3));
+ ASSERT_EQ(1u, map_it->second.size());
+ EXPECT_EQ(alternative_service5, map_it->second[0].alternative_service);
+ EXPECT_EQ(0.2, map_it->second[0].probability);
+ ++map_it;
+ EXPECT_TRUE(map_it->first.Equals(test_host_port_pair2));
+ ASSERT_EQ(2u, map_it->second.size());
+ EXPECT_EQ(alternative_service2, map_it->second[0].alternative_service);
+ EXPECT_EQ(1.0, map_it->second[0].probability);
+ EXPECT_EQ(alternative_service4, map_it->second[1].alternative_service);
+ EXPECT_EQ(0.7, map_it->second[1].probability);
}
// Regression test for https://crbug.com/504032:
@@ -348,13 +395,16 @@ TEST_F(AlternateProtocolServerPropertiesTest, InitializeWithEmptyHostname) {
EXPECT_TRUE(
impl_.IsAlternativeServiceBroken(alternative_service_with_foo_hostname));
- EXPECT_TRUE(impl_.GetAlternativeService(host_port_pair) ==
- alternative_service_with_foo_hostname);
+ const AlternativeServiceVector alternative_service_vector =
+ impl_.GetAlternativeServices(host_port_pair);
+ ASSERT_EQ(1u, alternative_service_vector.size());
+ EXPECT_EQ(alternative_service_with_foo_hostname,
+ alternative_service_vector[0]);
}
-TEST_F(AlternateProtocolServerPropertiesTest, MRUOfGetAlternateProtocol) {
+TEST_F(AlternateProtocolServerPropertiesTest, MRUOfGetAlternativeServices) {
HostPortPair test_host_port_pair1("foo1", 80);
- const AlternativeService alternative_service1(NPN_SPDY_4, "foo1", 443);
+ const AlternativeService alternative_service1(NPN_SPDY_3_1, "foo1", 443);
impl_.SetAlternativeService(test_host_port_pair1, alternative_service1, 1.0);
HostPortPair test_host_port_pair2("foo2", 80);
const AlternativeService alternative_service2(NPN_SPDY_4, "foo2", 1234);
@@ -363,33 +413,86 @@ TEST_F(AlternateProtocolServerPropertiesTest, MRUOfGetAlternateProtocol) {
const AlternativeServiceMap& map = impl_.alternative_service_map();
AlternativeServiceMap::const_iterator it = map.begin();
EXPECT_TRUE(it->first.Equals(test_host_port_pair2));
- EXPECT_EQ(NPN_SPDY_4, it->second.alternative_service.protocol);
- EXPECT_EQ(1234, it->second.alternative_service.port);
-
- // GetAlternativeService should reorder the AlternateProtocol map.
- const AlternativeService alternative_service =
- impl_.GetAlternativeService(test_host_port_pair1);
- EXPECT_EQ(443, alternative_service.port);
- EXPECT_EQ(NPN_SPDY_4, alternative_service.protocol);
+ ASSERT_EQ(1u, it->second.size());
+ EXPECT_EQ(alternative_service2, it->second[0].alternative_service);
+
+ const AlternativeServiceVector alternative_service_vector =
+ impl_.GetAlternativeServices(test_host_port_pair1);
+ ASSERT_EQ(1u, alternative_service_vector.size());
+ EXPECT_EQ(alternative_service1, alternative_service_vector[0]);
+
+ // GetAlternativeServices should reorder the AlternateProtocol map.
it = map.begin();
EXPECT_TRUE(it->first.Equals(test_host_port_pair1));
- EXPECT_EQ(NPN_SPDY_4, it->second.alternative_service.protocol);
- EXPECT_EQ(443, it->second.alternative_service.port);
+ ASSERT_EQ(1u, it->second.size());
+ EXPECT_EQ(alternative_service1, it->second[0].alternative_service);
}
TEST_F(AlternateProtocolServerPropertiesTest, SetBroken) {
HostPortPair test_host_port_pair("foo", 80);
const AlternativeService alternative_service1(NPN_SPDY_4, "foo", 443);
impl_.SetAlternativeService(test_host_port_pair, alternative_service1, 1.0);
+ AlternativeServiceVector alternative_service_vector =
+ impl_.GetAlternativeServices(test_host_port_pair);
+ ASSERT_EQ(1u, alternative_service_vector.size());
+ EXPECT_EQ(alternative_service1, alternative_service_vector[0]);
+ EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service1));
+
+ // GetAlternativeServices should return the broken alternative service.
impl_.MarkAlternativeServiceBroken(alternative_service1);
- ASSERT_TRUE(HasAlternativeService(test_host_port_pair));
+ alternative_service_vector =
+ impl_.GetAlternativeServices(test_host_port_pair);
+ ASSERT_EQ(1u, alternative_service_vector.size());
+ EXPECT_EQ(alternative_service1, alternative_service_vector[0]);
EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service1));
+ // SetAlternativeServices should add a broken alternative service to the map.
+ AlternativeServiceInfoVector alternative_service_info_vector;
+ alternative_service_info_vector.push_back(
+ AlternativeServiceInfo(alternative_service1, 1.0));
const AlternativeService alternative_service2(NPN_SPDY_4, "foo", 1234);
- impl_.SetAlternativeService(test_host_port_pair, alternative_service2, 1.0);
- EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service1));
- EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service2));
- EXPECT_EQ(1234, impl_.GetAlternativeService(test_host_port_pair).port);
+ alternative_service_info_vector.push_back(
+ AlternativeServiceInfo(alternative_service2, 1.0));
+ impl_.SetAlternativeServices(test_host_port_pair,
+ alternative_service_info_vector);
+ alternative_service_vector =
+ impl_.GetAlternativeServices(test_host_port_pair);
+ ASSERT_EQ(2u, alternative_service_vector.size());
+ EXPECT_EQ(alternative_service1, alternative_service_vector[0]);
+ EXPECT_EQ(alternative_service2, alternative_service_vector[1]);
+ EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service_vector[0]));
+ EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service_vector[1]));
+
+ // SetAlternativeService should add a broken alternative service to the map.
+ impl_.SetAlternativeService(test_host_port_pair, alternative_service1, 1.0);
+ alternative_service_vector =
+ impl_.GetAlternativeServices(test_host_port_pair);
+ ASSERT_EQ(1u, alternative_service_vector.size());
+ EXPECT_EQ(alternative_service1, alternative_service_vector[0]);
+ EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service_vector[0]));
+}
+
+TEST_F(AlternateProtocolServerPropertiesTest, ClearAlternativeServices) {
+ AlternativeServiceInfoVector alternative_service_info_vector;
+ const AlternativeService alternative_service1(NPN_SPDY_3_1, "foo", 443);
+ alternative_service_info_vector.push_back(
+ AlternativeServiceInfo(alternative_service1, 1.0));
+ const AlternativeService alternative_service2(NPN_SPDY_4, "bar", 1234);
+ alternative_service_info_vector.push_back(
+ AlternativeServiceInfo(alternative_service2, 1.0));
+ HostPortPair test_host_port_pair("foo", 80);
+ impl_.SetAlternativeServices(test_host_port_pair,
+ alternative_service_info_vector);
+
+ const net::AlternativeServiceMap& map = impl_.alternative_service_map();
+ net::AlternativeServiceMap::const_iterator it = map.begin();
+ EXPECT_TRUE(it->first.Equals(test_host_port_pair));
+ ASSERT_EQ(2u, it->second.size());
+ EXPECT_EQ(alternative_service1, it->second[0].alternative_service);
+ EXPECT_EQ(alternative_service2, it->second[1].alternative_service);
+
+ impl_.ClearAlternativeServices(test_host_port_pair);
+ EXPECT_TRUE(map.empty());
}
// A broken alternative service in the mapping carries meaningful information,
@@ -398,11 +501,15 @@ TEST_F(AlternateProtocolServerPropertiesTest, SetBroken) {
// services of canonical hosts.
TEST_F(AlternateProtocolServerPropertiesTest, BrokenShadowsCanonical) {
HostPortPair test_host_port_pair("foo.c.youtube.com", 80);
- HostPortPair canonical_port_pair("bar.c.youtube.com", 80);
- AlternativeService canonical_altsvc(QUIC, "bar.c.youtube.com", 1234);
- impl_.SetAlternativeService(canonical_port_pair, canonical_altsvc, 1.0);
- EXPECT_TRUE(impl_.GetAlternativeService(test_host_port_pair) ==
- canonical_altsvc);
+ HostPortPair canonical_host_port_pair("bar.c.youtube.com", 80);
+ AlternativeService canonical_alternative_service(QUIC, "bar.c.youtube.com",
+ 1234);
+ impl_.SetAlternativeService(canonical_host_port_pair,
+ canonical_alternative_service, 1.0);
+ AlternativeServiceVector alternative_service_vector =
+ impl_.GetAlternativeServices(test_host_port_pair);
+ ASSERT_EQ(1u, alternative_service_vector.size());
+ EXPECT_EQ(canonical_alternative_service, alternative_service_vector[0]);
const AlternativeService broken_alternative_service(NPN_SPDY_4, "foo", 443);
impl_.MarkAlternativeServiceBroken(broken_alternative_service);
@@ -410,8 +517,10 @@ TEST_F(AlternateProtocolServerPropertiesTest, BrokenShadowsCanonical) {
impl_.SetAlternativeService(test_host_port_pair, broken_alternative_service,
1.0);
- ASSERT_EQ(broken_alternative_service,
- impl_.GetAlternativeService(test_host_port_pair));
+ alternative_service_vector =
+ impl_.GetAlternativeServices(test_host_port_pair);
+ ASSERT_EQ(1u, alternative_service_vector.size());
+ EXPECT_EQ(broken_alternative_service, alternative_service_vector[0]);
EXPECT_TRUE(impl_.IsAlternativeServiceBroken(broken_alternative_service));
}
@@ -422,7 +531,9 @@ TEST_F(AlternateProtocolServerPropertiesTest, ClearBroken) {
impl_.MarkAlternativeServiceBroken(alternative_service);
ASSERT_TRUE(HasAlternativeService(test_host_port_pair));
EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service));
- impl_.ClearAlternativeService(test_host_port_pair);
+ // ClearAlternativeServices should leave a broken alternative service marked
+ // as such.
+ impl_.ClearAlternativeServices(test_host_port_pair);
EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service));
}
@@ -447,51 +558,54 @@ TEST_F(AlternateProtocolServerPropertiesTest, Canonical) {
HostPortPair test_host_port_pair("foo.c.youtube.com", 80);
EXPECT_FALSE(HasAlternativeService(test_host_port_pair));
- HostPortPair canonical_port_pair("bar.c.youtube.com", 80);
- EXPECT_FALSE(HasAlternativeService(canonical_port_pair));
-
- AlternativeService canonical_altsvc(QUIC, "bar.c.youtube.com", 1234);
- impl_.SetAlternativeService(canonical_port_pair, canonical_altsvc, 1.0);
- // Verify the forced protocol.
- ASSERT_TRUE(HasAlternativeService(test_host_port_pair));
- const AlternativeService alternative_service =
- impl_.GetAlternativeService(test_host_port_pair);
- EXPECT_EQ(canonical_altsvc.port, alternative_service.port);
- EXPECT_EQ(canonical_altsvc.protocol, alternative_service.protocol);
+ HostPortPair canonical_host_port_pair("bar.c.youtube.com", 80);
+ EXPECT_FALSE(HasAlternativeService(canonical_host_port_pair));
+
+ AlternativeServiceInfoVector alternative_service_info_vector;
+ const AlternativeService canonical_alternative_service1(
+ QUIC, "bar.c.youtube.com", 1234);
+ alternative_service_info_vector.push_back(
+ AlternativeServiceInfo(canonical_alternative_service1, 1.0));
+ const AlternativeService canonical_alternative_service2(NPN_SPDY_4, "", 443);
+ alternative_service_info_vector.push_back(
+ AlternativeServiceInfo(canonical_alternative_service2, 1.0));
+ impl_.SetAlternativeServices(canonical_host_port_pair,
+ alternative_service_info_vector);
+
+ // Since |test_host_port_pair| does not have an alternative service itself,
+ // GetAlternativeServices should return those of |canonical_host_port_pair|.
+ AlternativeServiceVector alternative_service_vector =
+ impl_.GetAlternativeServices(test_host_port_pair);
+ ASSERT_EQ(2u, alternative_service_vector.size());
+ EXPECT_EQ(canonical_alternative_service1, alternative_service_vector[0]);
+
+ // Since |canonical_alternative_service2| has an empty host,
+ // GetAlternativeServices should substitute the hostname of its |origin|
+ // argument.
+ EXPECT_EQ(test_host_port_pair.host(), alternative_service_vector[1].host);
+ EXPECT_EQ(canonical_alternative_service2.protocol,
+ alternative_service_vector[1].protocol);
+ EXPECT_EQ(canonical_alternative_service2.port,
+ alternative_service_vector[1].port);
// Verify the canonical suffix.
EXPECT_EQ(".c.youtube.com",
impl_.GetCanonicalSuffix(test_host_port_pair.host()));
EXPECT_EQ(".c.youtube.com",
- impl_.GetCanonicalSuffix(canonical_port_pair.host()));
-}
-
-TEST_F(AlternateProtocolServerPropertiesTest, CanonicalDefaultHost) {
- HostPortPair test_host_port_pair("foo.c.youtube.com", 80);
- EXPECT_FALSE(HasAlternativeService(test_host_port_pair));
-
- HostPortPair canonical_port_pair("bar.c.youtube.com", 80);
- EXPECT_FALSE(HasAlternativeService(canonical_port_pair));
-
- AlternativeService canonical_altsvc(QUIC, "", 1234);
- impl_.SetAlternativeService(canonical_port_pair, canonical_altsvc, 1.0);
- ASSERT_TRUE(HasAlternativeService(test_host_port_pair));
- const AlternativeService alternative_service =
- impl_.GetAlternativeService(test_host_port_pair);
- EXPECT_EQ(canonical_altsvc.protocol, alternative_service.protocol);
- EXPECT_EQ(test_host_port_pair.host(), alternative_service.host);
- EXPECT_EQ(canonical_altsvc.port, alternative_service.port);
+ impl_.GetCanonicalSuffix(canonical_host_port_pair.host()));
}
TEST_F(AlternateProtocolServerPropertiesTest, CanonicalBelowThreshold) {
impl_.SetAlternativeServiceProbabilityThreshold(0.02);
HostPortPair test_host_port_pair("foo.c.youtube.com", 80);
- HostPortPair canonical_port_pair("bar.c.youtube.com", 80);
- AlternativeService canonical_altsvc(QUIC, "bar.c.youtube.com", 1234);
+ HostPortPair canonical_host_port_pair("bar.c.youtube.com", 80);
+ AlternativeService canonical_alternative_service(QUIC, "bar.c.youtube.com",
+ 1234);
- impl_.SetAlternativeService(canonical_port_pair, canonical_altsvc, 0.01);
- EXPECT_FALSE(HasAlternativeService(canonical_port_pair));
+ impl_.SetAlternativeService(canonical_host_port_pair,
+ canonical_alternative_service, 0.01);
+ EXPECT_FALSE(HasAlternativeService(canonical_host_port_pair));
EXPECT_FALSE(HasAlternativeService(test_host_port_pair));
}
@@ -499,31 +613,37 @@ TEST_F(AlternateProtocolServerPropertiesTest, CanonicalAboveThreshold) {
impl_.SetAlternativeServiceProbabilityThreshold(0.02);
HostPortPair test_host_port_pair("foo.c.youtube.com", 80);
- HostPortPair canonical_port_pair("bar.c.youtube.com", 80);
- AlternativeService canonical_altsvc(QUIC, "bar.c.youtube.com", 1234);
+ HostPortPair canonical_host_port_pair("bar.c.youtube.com", 80);
+ AlternativeService canonical_alternative_service(QUIC, "bar.c.youtube.com",
+ 1234);
- impl_.SetAlternativeService(canonical_port_pair, canonical_altsvc, 0.03);
- EXPECT_TRUE(HasAlternativeService(canonical_port_pair));
+ impl_.SetAlternativeService(canonical_host_port_pair,
+ canonical_alternative_service, 0.03);
+ EXPECT_TRUE(HasAlternativeService(canonical_host_port_pair));
EXPECT_TRUE(HasAlternativeService(test_host_port_pair));
}
TEST_F(AlternateProtocolServerPropertiesTest, ClearCanonical) {
HostPortPair test_host_port_pair("foo.c.youtube.com", 80);
- HostPortPair canonical_port_pair("bar.c.youtube.com", 80);
- AlternativeService canonical_altsvc(QUIC, "bar.c.youtube.com", 1234);
+ HostPortPair canonical_host_port_pair("bar.c.youtube.com", 80);
+ AlternativeService canonical_alternative_service(QUIC, "bar.c.youtube.com",
+ 1234);
- impl_.SetAlternativeService(canonical_port_pair, canonical_altsvc, 1.0);
- impl_.ClearAlternativeService(canonical_port_pair);
+ impl_.SetAlternativeService(canonical_host_port_pair,
+ canonical_alternative_service, 1.0);
+ impl_.ClearAlternativeServices(canonical_host_port_pair);
EXPECT_FALSE(HasAlternativeService(test_host_port_pair));
}
TEST_F(AlternateProtocolServerPropertiesTest, CanonicalBroken) {
HostPortPair test_host_port_pair("foo.c.youtube.com", 80);
- HostPortPair canonical_port_pair("bar.c.youtube.com", 80);
- AlternativeService canonical_altsvc(QUIC, "bar.c.youtube.com", 1234);
+ HostPortPair canonical_host_port_pair("bar.c.youtube.com", 80);
+ AlternativeService canonical_alternative_service(QUIC, "bar.c.youtube.com",
+ 1234);
- impl_.SetAlternativeService(canonical_port_pair, canonical_altsvc, 1.0);
- impl_.MarkAlternativeServiceBroken(canonical_altsvc);
+ impl_.SetAlternativeService(canonical_host_port_pair,
+ canonical_alternative_service, 1.0);
+ impl_.MarkAlternativeServiceBroken(canonical_alternative_service);
EXPECT_FALSE(HasAlternativeService(test_host_port_pair));
}
@@ -533,22 +653,28 @@ TEST_F(AlternateProtocolServerPropertiesTest, CanonicalOverride) {
HostPortPair bar_host_port_pair("bar.c.youtube.com", 80);
AlternativeService bar_alternative_service(QUIC, "bar.c.youtube.com", 1234);
impl_.SetAlternativeService(bar_host_port_pair, bar_alternative_service, 1.0);
- AlternativeService altsvc = impl_.GetAlternativeService(test_host_port_pair);
- EXPECT_EQ(1234, altsvc.port);
+ AlternativeServiceVector alternative_service_vector =
+ impl_.GetAlternativeServices(test_host_port_pair);
+ ASSERT_EQ(1u, alternative_service_vector.size());
+ EXPECT_EQ(bar_alternative_service, alternative_service_vector[0]);
HostPortPair qux_host_port_pair("qux.c.youtube.com", 80);
AlternativeService qux_alternative_service(QUIC, "qux.c.youtube.com", 443);
impl_.SetAlternativeService(qux_host_port_pair, qux_alternative_service, 1.0);
- altsvc = impl_.GetAlternativeService(test_host_port_pair);
- EXPECT_EQ(443, altsvc.port);
+ alternative_service_vector =
+ impl_.GetAlternativeServices(test_host_port_pair);
+ ASSERT_EQ(1u, alternative_service_vector.size());
+ EXPECT_EQ(qux_alternative_service, alternative_service_vector[0]);
}
TEST_F(AlternateProtocolServerPropertiesTest, ClearWithCanonical) {
HostPortPair test_host_port_pair("foo.c.youtube.com", 80);
- HostPortPair canonical_port_pair("bar.c.youtube.com", 80);
- AlternativeService canonical_altsvc(QUIC, "bar.c.youtube.com", 1234);
+ HostPortPair canonical_host_port_pair("bar.c.youtube.com", 80);
+ AlternativeService canonical_alternative_service(QUIC, "bar.c.youtube.com",
+ 1234);
- impl_.SetAlternativeService(canonical_port_pair, canonical_altsvc, 1.0);
+ impl_.SetAlternativeService(canonical_host_port_pair,
+ canonical_alternative_service, 1.0);
impl_.Clear();
EXPECT_FALSE(HasAlternativeService(test_host_port_pair));
}
« no previous file with comments | « net/http/http_server_properties_impl.cc ('k') | net/http/http_server_properties_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698