| Index: net/http/http_alternate_protocols_unittest.cc
|
| ===================================================================
|
| --- net/http/http_alternate_protocols_unittest.cc (revision 57015)
|
| +++ net/http/http_alternate_protocols_unittest.cc (working copy)
|
| @@ -44,5 +44,42 @@
|
| << "Second attempt should be ignored.";
|
| }
|
|
|
| +TEST(HttpAlternateProtocols, Forced) {
|
| + // Test forced alternate protocols.
|
| +
|
| + HttpAlternateProtocols::PortProtocolPair default_protocol;
|
| + default_protocol.port = 1234;
|
| + default_protocol.protocol = HttpAlternateProtocols::NPN_SPDY_2;
|
| + HttpAlternateProtocols::ForceAlternateProtocol(default_protocol);
|
| +
|
| + HttpAlternateProtocols alternate_protocols;
|
| +
|
| + // Verify the forced protocol.
|
| + HostPortPair test_host_port_pair("foo", 80);
|
| + EXPECT_TRUE(
|
| + alternate_protocols.HasAlternateProtocolFor(test_host_port_pair));
|
| + HttpAlternateProtocols::PortProtocolPair alternate =
|
| + alternate_protocols.GetAlternateProtocolFor(test_host_port_pair);
|
| + EXPECT_EQ(default_protocol.port, alternate.port);
|
| + EXPECT_EQ(default_protocol.protocol, alternate.protocol);
|
| +
|
| + // Verify the real protocol overrides the forced protocol.
|
| + alternate_protocols.SetAlternateProtocolFor(
|
| + test_host_port_pair, 443, HttpAlternateProtocols::NPN_SPDY_1);
|
| + ASSERT_TRUE(alternate_protocols.HasAlternateProtocolFor(test_host_port_pair));
|
| + alternate = alternate_protocols.GetAlternateProtocolFor(test_host_port_pair);
|
| + EXPECT_EQ(443, alternate.port);
|
| + EXPECT_EQ(HttpAlternateProtocols::NPN_SPDY_1, alternate.protocol);
|
| +
|
| + // Turn off the static, forced alternate protocol so that tests don't
|
| + // have this state.
|
| + HttpAlternateProtocols::DisableForcedAlternateProtocol();
|
| +
|
| + // Verify the forced protocol is off.
|
| + HostPortPair test_host_port_pair2("bar", 80);
|
| + EXPECT_FALSE(
|
| + alternate_protocols.HasAlternateProtocolFor(test_host_port_pair2));
|
| +}
|
| +
|
| } // namespace
|
| } // namespace net
|
|
|