| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/http/http_server_properties_impl.h" | 5 #include "net/http/http_server_properties_impl.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| (...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 279 impl_.SetAlternateProtocolProbabilityThreshold(.75); | 279 impl_.SetAlternateProtocolProbabilityThreshold(.75); |
| 280 | 280 |
| 281 HostPortPair test_host_port_pair("foo", 80); | 281 HostPortPair test_host_port_pair("foo", 80); |
| 282 | 282 |
| 283 impl_.SetAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, .5); | 283 impl_.SetAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, .5); |
| 284 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); | 284 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); |
| 285 } | 285 } |
| 286 | 286 |
| 287 TEST_F(AlternateProtocolServerPropertiesTest, Initialize) { | 287 TEST_F(AlternateProtocolServerPropertiesTest, Initialize) { |
| 288 HostPortPair test_host_port_pair1("foo1", 80); | 288 HostPortPair test_host_port_pair1("foo1", 80); |
| 289 impl_.SetAlternateProtocol(test_host_port_pair1, 443, NPN_SPDY_3, 1); |
| 289 impl_.SetBrokenAlternateProtocol(test_host_port_pair1); | 290 impl_.SetBrokenAlternateProtocol(test_host_port_pair1); |
| 290 HostPortPair test_host_port_pair2("foo2", 80); | 291 HostPortPair test_host_port_pair2("foo2", 80); |
| 291 impl_.SetAlternateProtocol(test_host_port_pair2, 443, NPN_SPDY_3, 1); | 292 impl_.SetAlternateProtocol(test_host_port_pair2, 443, NPN_SPDY_3, 1); |
| 292 | 293 |
| 293 AlternateProtocolMap alternate_protocol_map( | 294 AlternateProtocolMap alternate_protocol_map( |
| 294 AlternateProtocolMap::NO_AUTO_EVICT); | 295 AlternateProtocolMap::NO_AUTO_EVICT); |
| 295 AlternateProtocolInfo port_alternate_protocol_pair(123, NPN_SPDY_3, 1); | 296 AlternateProtocolInfo alternate(123, NPN_SPDY_3, 1); |
| 296 alternate_protocol_map.Put(test_host_port_pair2, | 297 alternate_protocol_map.Put(test_host_port_pair2, alternate); |
| 297 port_alternate_protocol_pair); | |
| 298 HostPortPair test_host_port_pair3("foo3", 80); | 298 HostPortPair test_host_port_pair3("foo3", 80); |
| 299 port_alternate_protocol_pair.port = 1234; | 299 alternate.port = 1234; |
| 300 alternate_protocol_map.Put(test_host_port_pair3, | 300 alternate_protocol_map.Put(test_host_port_pair3, alternate); |
| 301 port_alternate_protocol_pair); | |
| 302 impl_.InitializeAlternateProtocolServers(&alternate_protocol_map); | 301 impl_.InitializeAlternateProtocolServers(&alternate_protocol_map); |
| 303 | 302 |
| 304 // Verify test_host_port_pair3 is the MRU server. | 303 // Verify test_host_port_pair3 is the MRU server. |
| 305 const net::AlternateProtocolMap& map = impl_.alternate_protocol_map(); | 304 const net::AlternateProtocolMap& map = impl_.alternate_protocol_map(); |
| 306 net::AlternateProtocolMap::const_iterator it = map.begin(); | 305 net::AlternateProtocolMap::const_iterator it = map.begin(); |
| 307 it = map.begin(); | 306 it = map.begin(); |
| 308 EXPECT_TRUE(it->first.Equals(test_host_port_pair3)); | 307 EXPECT_TRUE(it->first.Equals(test_host_port_pair3)); |
| 309 EXPECT_EQ(1234, it->second.port); | 308 EXPECT_EQ(1234, it->second.port); |
| 310 EXPECT_EQ(NPN_SPDY_3, it->second.protocol); | 309 EXPECT_EQ(NPN_SPDY_3, it->second.protocol); |
| 311 | 310 |
| 312 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair1)); | 311 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair1)); |
| 313 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair2)); | 312 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair2)); |
| 314 port_alternate_protocol_pair = | 313 alternate = impl_.GetAlternateProtocol(test_host_port_pair1); |
| 315 impl_.GetAlternateProtocol(test_host_port_pair1); | 314 EXPECT_TRUE(alternate.is_broken); |
| 316 EXPECT_EQ(ALTERNATE_PROTOCOL_BROKEN, port_alternate_protocol_pair.protocol); | 315 alternate = impl_.GetAlternateProtocol(test_host_port_pair2); |
| 317 port_alternate_protocol_pair = | 316 EXPECT_EQ(123, alternate.port); |
| 318 impl_.GetAlternateProtocol(test_host_port_pair2); | 317 EXPECT_EQ(NPN_SPDY_3, alternate.protocol); |
| 319 EXPECT_EQ(123, port_alternate_protocol_pair.port); | |
| 320 EXPECT_EQ(NPN_SPDY_3, port_alternate_protocol_pair.protocol); | |
| 321 } | 318 } |
| 322 | 319 |
| 323 TEST_F(AlternateProtocolServerPropertiesTest, MRUOfHasAlternateProtocol) { | 320 TEST_F(AlternateProtocolServerPropertiesTest, MRUOfHasAlternateProtocol) { |
| 324 HostPortPair test_host_port_pair1("foo1", 80); | 321 HostPortPair test_host_port_pair1("foo1", 80); |
| 325 impl_.SetAlternateProtocol(test_host_port_pair1, 443, NPN_SPDY_3, 1); | 322 impl_.SetAlternateProtocol(test_host_port_pair1, 443, NPN_SPDY_3, 1); |
| 326 HostPortPair test_host_port_pair2("foo2", 80); | 323 HostPortPair test_host_port_pair2("foo2", 80); |
| 327 impl_.SetAlternateProtocol(test_host_port_pair2, 1234, NPN_SPDY_3, 1); | 324 impl_.SetAlternateProtocol(test_host_port_pair2, 1234, NPN_SPDY_3, 1); |
| 328 | 325 |
| 329 const net::AlternateProtocolMap& map = impl_.alternate_protocol_map(); | 326 const net::AlternateProtocolMap& map = impl_.alternate_protocol_map(); |
| 330 net::AlternateProtocolMap::const_iterator it = map.begin(); | 327 net::AlternateProtocolMap::const_iterator it = map.begin(); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 358 EXPECT_EQ(443, alternate.port); | 355 EXPECT_EQ(443, alternate.port); |
| 359 EXPECT_EQ(NPN_SPDY_3, alternate.protocol); | 356 EXPECT_EQ(NPN_SPDY_3, alternate.protocol); |
| 360 it = map.begin(); | 357 it = map.begin(); |
| 361 EXPECT_TRUE(it->first.Equals(test_host_port_pair1)); | 358 EXPECT_TRUE(it->first.Equals(test_host_port_pair1)); |
| 362 EXPECT_EQ(443, it->second.port); | 359 EXPECT_EQ(443, it->second.port); |
| 363 EXPECT_EQ(NPN_SPDY_3, it->second.protocol); | 360 EXPECT_EQ(NPN_SPDY_3, it->second.protocol); |
| 364 } | 361 } |
| 365 | 362 |
| 366 TEST_F(AlternateProtocolServerPropertiesTest, SetBroken) { | 363 TEST_F(AlternateProtocolServerPropertiesTest, SetBroken) { |
| 367 HostPortPair test_host_port_pair("foo", 80); | 364 HostPortPair test_host_port_pair("foo", 80); |
| 365 impl_.SetAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, 1); |
| 368 impl_.SetBrokenAlternateProtocol(test_host_port_pair); | 366 impl_.SetBrokenAlternateProtocol(test_host_port_pair); |
| 369 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair)); | 367 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair)); |
| 370 AlternateProtocolInfo alternate = | 368 AlternateProtocolInfo alternate = |
| 371 impl_.GetAlternateProtocol(test_host_port_pair); | 369 impl_.GetAlternateProtocol(test_host_port_pair); |
| 372 EXPECT_EQ(ALTERNATE_PROTOCOL_BROKEN, alternate.protocol); | 370 EXPECT_TRUE(alternate.is_broken); |
| 373 | 371 |
| 374 impl_.SetAlternateProtocol( | 372 impl_.SetAlternateProtocol( |
| 375 test_host_port_pair, | 373 test_host_port_pair, |
| 376 1234, | 374 1234, |
| 377 NPN_SPDY_3, | 375 NPN_SPDY_3, |
| 378 1); | 376 1); |
| 379 alternate = impl_.GetAlternateProtocol(test_host_port_pair); | 377 alternate = impl_.GetAlternateProtocol(test_host_port_pair); |
| 380 EXPECT_EQ(ALTERNATE_PROTOCOL_BROKEN, alternate.protocol) | 378 EXPECT_TRUE(alternate.is_broken) << "Second attempt should be ignored."; |
| 381 << "Second attempt should be ignored."; | |
| 382 } | 379 } |
| 383 | 380 |
| 384 TEST_F(AlternateProtocolServerPropertiesTest, ClearBroken) { | 381 TEST_F(AlternateProtocolServerPropertiesTest, ClearBroken) { |
| 385 HostPortPair test_host_port_pair("foo", 80); | 382 HostPortPair test_host_port_pair("foo", 80); |
| 383 impl_.SetAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, 1); |
| 386 impl_.SetBrokenAlternateProtocol(test_host_port_pair); | 384 impl_.SetBrokenAlternateProtocol(test_host_port_pair); |
| 387 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair)); | 385 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair)); |
| 388 AlternateProtocolInfo alternate = | 386 AlternateProtocolInfo alternate = |
| 389 impl_.GetAlternateProtocol(test_host_port_pair); | 387 impl_.GetAlternateProtocol(test_host_port_pair); |
| 390 EXPECT_EQ(ALTERNATE_PROTOCOL_BROKEN, alternate.protocol); | 388 EXPECT_TRUE(alternate.is_broken); |
| 391 impl_.ClearAlternateProtocol(test_host_port_pair); | 389 impl_.ClearAlternateProtocol(test_host_port_pair); |
| 392 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); | 390 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); |
| 393 } | 391 } |
| 394 | 392 |
| 395 TEST_F(AlternateProtocolServerPropertiesTest, Forced) { | 393 TEST_F(AlternateProtocolServerPropertiesTest, Forced) { |
| 396 // Test forced alternate protocols. | 394 // Test forced alternate protocols. |
| 397 | 395 |
| 398 AlternateProtocolInfo default_protocol(1234, NPN_SPDY_3, 1); | 396 AlternateProtocolInfo default_protocol(1234, NPN_SPDY_3, 1); |
| 399 HttpServerPropertiesImpl::ForceAlternateProtocol(default_protocol); | 397 HttpServerPropertiesImpl::ForceAlternateProtocol(default_protocol); |
| 400 | 398 |
| (...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 712 EXPECT_EQ("foo", supports_quic1.address); | 710 EXPECT_EQ("foo", supports_quic1.address); |
| 713 | 711 |
| 714 impl_.Clear(); | 712 impl_.Clear(); |
| 715 SupportsQuic supports_quic2 = impl_.GetSupportsQuic(test_host_port_pair); | 713 SupportsQuic supports_quic2 = impl_.GetSupportsQuic(test_host_port_pair); |
| 716 EXPECT_FALSE(supports_quic2.used_quic); | 714 EXPECT_FALSE(supports_quic2.used_quic); |
| 717 EXPECT_EQ("", supports_quic2.address); | 715 EXPECT_EQ("", supports_quic2.address); |
| 718 } | 716 } |
| 719 } // namespace | 717 } // namespace |
| 720 | 718 |
| 721 } // namespace net | 719 } // namespace net |
| OLD | NEW |