| 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 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 230 ASSERT_EQ(spdy_server_g, string_value_g); | 230 ASSERT_EQ(spdy_server_g, string_value_g); |
| 231 ASSERT_TRUE(spdy_server_list.GetString(1, &string_value_m)); | 231 ASSERT_TRUE(spdy_server_list.GetString(1, &string_value_m)); |
| 232 ASSERT_EQ(spdy_server_m, string_value_m); | 232 ASSERT_EQ(spdy_server_m, string_value_m); |
| 233 } | 233 } |
| 234 | 234 |
| 235 typedef HttpServerPropertiesImplTest AlternateProtocolServerPropertiesTest; | 235 typedef HttpServerPropertiesImplTest AlternateProtocolServerPropertiesTest; |
| 236 | 236 |
| 237 TEST_F(AlternateProtocolServerPropertiesTest, Basic) { | 237 TEST_F(AlternateProtocolServerPropertiesTest, Basic) { |
| 238 HostPortPair test_host_port_pair("foo", 80); | 238 HostPortPair test_host_port_pair("foo", 80); |
| 239 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); | 239 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); |
| 240 impl_.SetAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, 1); | 240 impl_.SetAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, 1.0); |
| 241 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair)); | 241 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair)); |
| 242 const AlternateProtocolInfo alternate = | 242 const AlternateProtocolInfo alternate = |
| 243 impl_.GetAlternateProtocol(test_host_port_pair); | 243 impl_.GetAlternateProtocol(test_host_port_pair); |
| 244 EXPECT_EQ(443, alternate.port); | 244 EXPECT_EQ(443, alternate.port); |
| 245 EXPECT_EQ(NPN_SPDY_3, alternate.protocol); | 245 EXPECT_EQ(NPN_SPDY_3, alternate.protocol); |
| 246 | 246 |
| 247 impl_.Clear(); | 247 impl_.Clear(); |
| 248 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); | 248 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); |
| 249 } | 249 } |
| 250 | 250 |
| (...skipping 22 matching lines...) Expand all Loading... |
| 273 impl_.SetAlternateProtocolProbabilityThreshold(.75); | 273 impl_.SetAlternateProtocolProbabilityThreshold(.75); |
| 274 | 274 |
| 275 HostPortPair test_host_port_pair("foo", 80); | 275 HostPortPair test_host_port_pair("foo", 80); |
| 276 | 276 |
| 277 impl_.SetAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, .5); | 277 impl_.SetAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, .5); |
| 278 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); | 278 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); |
| 279 } | 279 } |
| 280 | 280 |
| 281 TEST_F(AlternateProtocolServerPropertiesTest, Initialize) { | 281 TEST_F(AlternateProtocolServerPropertiesTest, Initialize) { |
| 282 HostPortPair test_host_port_pair1("foo1", 80); | 282 HostPortPair test_host_port_pair1("foo1", 80); |
| 283 impl_.SetAlternateProtocol(test_host_port_pair1, 443, NPN_SPDY_3, 1); | 283 impl_.SetAlternateProtocol(test_host_port_pair1, 443, NPN_SPDY_3, 1.0); |
| 284 impl_.SetBrokenAlternateProtocol(test_host_port_pair1); | 284 impl_.SetBrokenAlternateProtocol(test_host_port_pair1); |
| 285 HostPortPair test_host_port_pair2("foo2", 80); | 285 HostPortPair test_host_port_pair2("foo2", 80); |
| 286 impl_.SetAlternateProtocol(test_host_port_pair2, 443, NPN_SPDY_3, 1); | 286 impl_.SetAlternateProtocol(test_host_port_pair2, 443, NPN_SPDY_3, 1.0); |
| 287 | 287 |
| 288 AlternateProtocolMap alternate_protocol_map( | 288 AlternateProtocolMap alternate_protocol_map( |
| 289 AlternateProtocolMap::NO_AUTO_EVICT); | 289 AlternateProtocolMap::NO_AUTO_EVICT); |
| 290 AlternateProtocolInfo alternate(123, NPN_SPDY_3, 1); | 290 AlternateProtocolInfo alternate(123, NPN_SPDY_3, 1); |
| 291 alternate_protocol_map.Put(test_host_port_pair2, alternate); | 291 alternate_protocol_map.Put(test_host_port_pair2, alternate); |
| 292 HostPortPair test_host_port_pair3("foo3", 80); | 292 HostPortPair test_host_port_pair3("foo3", 80); |
| 293 alternate.port = 1234; | 293 alternate.port = 1234; |
| 294 alternate_protocol_map.Put(test_host_port_pair3, alternate); | 294 alternate_protocol_map.Put(test_host_port_pair3, alternate); |
| 295 impl_.InitializeAlternateProtocolServers(&alternate_protocol_map); | 295 impl_.InitializeAlternateProtocolServers(&alternate_protocol_map); |
| 296 | 296 |
| 297 // Verify test_host_port_pair3 is the MRU server. | 297 // Verify test_host_port_pair3 is the MRU server. |
| 298 const AlternateProtocolMap& map = impl_.alternate_protocol_map(); | 298 const AlternateProtocolMap& map = impl_.alternate_protocol_map(); |
| 299 AlternateProtocolMap::const_iterator it = map.begin(); | 299 AlternateProtocolMap::const_iterator it = map.begin(); |
| 300 it = map.begin(); | |
| 301 EXPECT_TRUE(it->first.Equals(test_host_port_pair3)); | 300 EXPECT_TRUE(it->first.Equals(test_host_port_pair3)); |
| 302 EXPECT_EQ(1234, it->second.port); | 301 EXPECT_EQ(1234, it->second.port); |
| 303 EXPECT_EQ(NPN_SPDY_3, it->second.protocol); | 302 EXPECT_EQ(NPN_SPDY_3, it->second.protocol); |
| 304 | 303 |
| 305 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair1)); | 304 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair1)); |
| 306 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair2)); | 305 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair2)); |
| 307 alternate = impl_.GetAlternateProtocol(test_host_port_pair1); | 306 alternate = impl_.GetAlternateProtocol(test_host_port_pair1); |
| 308 EXPECT_TRUE(alternate.is_broken); | 307 EXPECT_TRUE(alternate.is_broken); |
| 309 alternate = impl_.GetAlternateProtocol(test_host_port_pair2); | 308 alternate = impl_.GetAlternateProtocol(test_host_port_pair2); |
| 310 EXPECT_EQ(123, alternate.port); | 309 EXPECT_EQ(123, alternate.port); |
| 311 EXPECT_EQ(NPN_SPDY_3, alternate.protocol); | 310 EXPECT_EQ(NPN_SPDY_3, alternate.protocol); |
| 312 } | 311 } |
| 313 | 312 |
| 314 TEST_F(AlternateProtocolServerPropertiesTest, MRUOfHasAlternateProtocol) { | 313 TEST_F(AlternateProtocolServerPropertiesTest, MRUOfHasAlternateProtocol) { |
| 315 HostPortPair test_host_port_pair1("foo1", 80); | 314 HostPortPair test_host_port_pair1("foo1", 80); |
| 316 impl_.SetAlternateProtocol(test_host_port_pair1, 443, NPN_SPDY_3, 1); | 315 impl_.SetAlternateProtocol(test_host_port_pair1, 443, NPN_SPDY_3, 1.0); |
| 317 HostPortPair test_host_port_pair2("foo2", 80); | 316 HostPortPair test_host_port_pair2("foo2", 80); |
| 318 impl_.SetAlternateProtocol(test_host_port_pair2, 1234, NPN_SPDY_3, 1); | 317 impl_.SetAlternateProtocol(test_host_port_pair2, 1234, NPN_SPDY_3, 1.0); |
| 319 | 318 |
| 320 const AlternateProtocolMap& map = impl_.alternate_protocol_map(); | 319 const AlternateProtocolMap& map = impl_.alternate_protocol_map(); |
| 321 AlternateProtocolMap::const_iterator it = map.begin(); | 320 AlternateProtocolMap::const_iterator it = map.begin(); |
| 322 EXPECT_TRUE(it->first.Equals(test_host_port_pair2)); | 321 EXPECT_TRUE(it->first.Equals(test_host_port_pair2)); |
| 323 EXPECT_EQ(1234, it->second.port); | 322 EXPECT_EQ(1234, it->second.port); |
| 324 EXPECT_EQ(NPN_SPDY_3, it->second.protocol); | 323 EXPECT_EQ(NPN_SPDY_3, it->second.protocol); |
| 325 | 324 |
| 326 // HasAlternateProtocol should reoder the AlternateProtocol map. | 325 // HasAlternateProtocol should reorder the AlternateProtocol map. |
| 327 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair1)); | 326 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair1)); |
| 328 it = map.begin(); | 327 it = map.begin(); |
| 329 EXPECT_TRUE(it->first.Equals(test_host_port_pair1)); | 328 EXPECT_TRUE(it->first.Equals(test_host_port_pair1)); |
| 330 EXPECT_EQ(443, it->second.port); | 329 EXPECT_EQ(443, it->second.port); |
| 331 EXPECT_EQ(NPN_SPDY_3, it->second.protocol); | 330 EXPECT_EQ(NPN_SPDY_3, it->second.protocol); |
| 332 } | 331 } |
| 333 | 332 |
| 334 TEST_F(AlternateProtocolServerPropertiesTest, MRUOfGetAlternateProtocol) { | 333 TEST_F(AlternateProtocolServerPropertiesTest, MRUOfGetAlternateProtocol) { |
| 335 HostPortPair test_host_port_pair1("foo1", 80); | 334 HostPortPair test_host_port_pair1("foo1", 80); |
| 336 impl_.SetAlternateProtocol(test_host_port_pair1, 443, NPN_SPDY_3, 1); | 335 impl_.SetAlternateProtocol(test_host_port_pair1, 443, NPN_SPDY_3, 1.0); |
| 337 HostPortPair test_host_port_pair2("foo2", 80); | 336 HostPortPair test_host_port_pair2("foo2", 80); |
| 338 impl_.SetAlternateProtocol(test_host_port_pair2, 1234, NPN_SPDY_3, 1); | 337 impl_.SetAlternateProtocol(test_host_port_pair2, 1234, NPN_SPDY_3, 1.0); |
| 339 | 338 |
| 340 const AlternateProtocolMap& map = impl_.alternate_protocol_map(); | 339 const AlternateProtocolMap& map = impl_.alternate_protocol_map(); |
| 341 AlternateProtocolMap::const_iterator it = map.begin(); | 340 AlternateProtocolMap::const_iterator it = map.begin(); |
| 342 EXPECT_TRUE(it->first.Equals(test_host_port_pair2)); | 341 EXPECT_TRUE(it->first.Equals(test_host_port_pair2)); |
| 343 EXPECT_EQ(1234, it->second.port); | 342 EXPECT_EQ(1234, it->second.port); |
| 344 EXPECT_EQ(NPN_SPDY_3, it->second.protocol); | 343 EXPECT_EQ(NPN_SPDY_3, it->second.protocol); |
| 345 | 344 |
| 346 // GetAlternateProtocol should reoder the AlternateProtocol map. | 345 // GetAlternateProtocol should reorder the AlternateProtocol map. |
| 347 AlternateProtocolInfo alternate = | 346 AlternateProtocolInfo alternate = |
| 348 impl_.GetAlternateProtocol(test_host_port_pair1); | 347 impl_.GetAlternateProtocol(test_host_port_pair1); |
| 349 EXPECT_EQ(443, alternate.port); | 348 EXPECT_EQ(443, alternate.port); |
| 350 EXPECT_EQ(NPN_SPDY_3, alternate.protocol); | 349 EXPECT_EQ(NPN_SPDY_3, alternate.protocol); |
| 351 it = map.begin(); | 350 it = map.begin(); |
| 352 EXPECT_TRUE(it->first.Equals(test_host_port_pair1)); | 351 EXPECT_TRUE(it->first.Equals(test_host_port_pair1)); |
| 353 EXPECT_EQ(443, it->second.port); | 352 EXPECT_EQ(443, it->second.port); |
| 354 EXPECT_EQ(NPN_SPDY_3, it->second.protocol); | 353 EXPECT_EQ(NPN_SPDY_3, it->second.protocol); |
| 355 } | 354 } |
| 356 | 355 |
| 357 TEST_F(AlternateProtocolServerPropertiesTest, SetBroken) { | 356 TEST_F(AlternateProtocolServerPropertiesTest, SetBroken) { |
| 358 HostPortPair test_host_port_pair("foo", 80); | 357 HostPortPair test_host_port_pair("foo", 80); |
| 359 impl_.SetAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, 1); | 358 impl_.SetAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, 1.0); |
| 360 impl_.SetBrokenAlternateProtocol(test_host_port_pair); | 359 impl_.SetBrokenAlternateProtocol(test_host_port_pair); |
| 361 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair)); | 360 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair)); |
| 362 AlternateProtocolInfo alternate = | 361 AlternateProtocolInfo alternate = |
| 363 impl_.GetAlternateProtocol(test_host_port_pair); | 362 impl_.GetAlternateProtocol(test_host_port_pair); |
| 364 EXPECT_TRUE(alternate.is_broken); | 363 EXPECT_TRUE(alternate.is_broken); |
| 365 | 364 |
| 366 impl_.SetAlternateProtocol( | 365 impl_.SetAlternateProtocol(test_host_port_pair, 1234, NPN_SPDY_3, 1.0); |
| 367 test_host_port_pair, | |
| 368 1234, | |
| 369 NPN_SPDY_3, | |
| 370 1); | |
| 371 alternate = impl_.GetAlternateProtocol(test_host_port_pair); | 366 alternate = impl_.GetAlternateProtocol(test_host_port_pair); |
| 372 EXPECT_TRUE(alternate.is_broken) << "Second attempt should be ignored."; | 367 EXPECT_TRUE(alternate.is_broken) << "Second attempt should be ignored."; |
| 373 } | 368 } |
| 374 | 369 |
| 375 TEST_F(AlternateProtocolServerPropertiesTest, ClearBroken) { | 370 TEST_F(AlternateProtocolServerPropertiesTest, ClearBroken) { |
| 376 HostPortPair test_host_port_pair("foo", 80); | 371 HostPortPair test_host_port_pair("foo", 80); |
| 377 impl_.SetAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, 1); | 372 impl_.SetAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, 1.0); |
| 378 impl_.SetBrokenAlternateProtocol(test_host_port_pair); | 373 impl_.SetBrokenAlternateProtocol(test_host_port_pair); |
| 379 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair)); | 374 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair)); |
| 380 AlternateProtocolInfo alternate = | 375 AlternateProtocolInfo alternate = |
| 381 impl_.GetAlternateProtocol(test_host_port_pair); | 376 impl_.GetAlternateProtocol(test_host_port_pair); |
| 382 EXPECT_TRUE(alternate.is_broken); | 377 EXPECT_TRUE(alternate.is_broken); |
| 383 impl_.ClearAlternateProtocol(test_host_port_pair); | 378 impl_.ClearAlternateProtocol(test_host_port_pair); |
| 384 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); | 379 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); |
| 385 } | 380 } |
| 386 | 381 |
| 387 TEST_F(AlternateProtocolServerPropertiesTest, Forced) { | 382 TEST_F(AlternateProtocolServerPropertiesTest, Forced) { |
| 388 // Test forced alternate protocols. | 383 // Test forced alternate protocols. |
| 389 | 384 |
| 390 AlternateProtocolInfo default_protocol(1234, NPN_SPDY_3, 1); | 385 AlternateProtocolInfo default_protocol(1234, NPN_SPDY_3, 1); |
| 391 HttpServerPropertiesImpl::ForceAlternateProtocol(default_protocol); | 386 HttpServerPropertiesImpl::ForceAlternateProtocol(default_protocol); |
| 392 | 387 |
| 393 // Verify the forced protocol. | 388 // Verify the forced protocol. |
| 394 HostPortPair test_host_port_pair("foo", 80); | 389 HostPortPair test_host_port_pair("foo", 80); |
| 395 EXPECT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair)); | 390 EXPECT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair)); |
| 396 AlternateProtocolInfo alternate = | 391 AlternateProtocolInfo alternate = |
| 397 impl_.GetAlternateProtocol(test_host_port_pair); | 392 impl_.GetAlternateProtocol(test_host_port_pair); |
| 398 EXPECT_EQ(default_protocol.port, alternate.port); | 393 EXPECT_EQ(default_protocol.port, alternate.port); |
| 399 EXPECT_EQ(default_protocol.protocol, alternate.protocol); | 394 EXPECT_EQ(default_protocol.protocol, alternate.protocol); |
| 400 | 395 |
| 401 // Verify the real protocol overrides the forced protocol. | 396 // Verify the real protocol overrides the forced protocol. |
| 402 impl_.SetAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, 1); | 397 impl_.SetAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, 1.0); |
| 403 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair)); | 398 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair)); |
| 404 alternate = impl_.GetAlternateProtocol(test_host_port_pair); | 399 alternate = impl_.GetAlternateProtocol(test_host_port_pair); |
| 405 EXPECT_EQ(443, alternate.port); | 400 EXPECT_EQ(443, alternate.port); |
| 406 EXPECT_EQ(NPN_SPDY_3, alternate.protocol); | 401 EXPECT_EQ(NPN_SPDY_3, alternate.protocol); |
| 407 | 402 |
| 408 // Turn off the static, forced alternate protocol so that tests don't | 403 // Turn off the static, forced alternate protocol so that tests don't |
| 409 // have this state. | 404 // have this state. |
| 410 HttpServerPropertiesImpl::DisableForcedAlternateProtocol(); | 405 HttpServerPropertiesImpl::DisableForcedAlternateProtocol(); |
| 411 | 406 |
| 412 // Verify the forced protocol is off. | 407 // Verify the forced protocol is off. |
| 413 HostPortPair test_host_port_pair2("bar", 80); | 408 HostPortPair test_host_port_pair2("bar", 80); |
| 414 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair2)); | 409 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair2)); |
| 415 } | 410 } |
| 416 | 411 |
| 417 TEST_F(AlternateProtocolServerPropertiesTest, Canonical) { | 412 TEST_F(AlternateProtocolServerPropertiesTest, Canonical) { |
| 418 HostPortPair test_host_port_pair("foo.c.youtube.com", 80); | 413 HostPortPair test_host_port_pair("foo.c.youtube.com", 80); |
| 419 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); | 414 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); |
| 420 | 415 |
| 421 HostPortPair canonical_port_pair("bar.c.youtube.com", 80); | 416 HostPortPair canonical_port_pair("bar.c.youtube.com", 80); |
| 422 EXPECT_FALSE(impl_.HasAlternateProtocol(canonical_port_pair)); | 417 EXPECT_FALSE(impl_.HasAlternateProtocol(canonical_port_pair)); |
| 423 | 418 |
| 424 AlternateProtocolInfo canonical_protocol(1234, QUIC, 1); | 419 AlternateProtocolInfo canonical_protocol(1234, QUIC, 1); |
| 425 | 420 |
| 426 impl_.SetAlternateProtocol(canonical_port_pair, | 421 impl_.SetAlternateProtocol(canonical_port_pair, canonical_protocol.port, |
| 427 canonical_protocol.port, | 422 canonical_protocol.protocol, 1.0); |
| 428 canonical_protocol.protocol, | |
| 429 1); | |
| 430 // Verify the forced protocol. | 423 // Verify the forced protocol. |
| 431 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair)); | 424 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair)); |
| 432 AlternateProtocolInfo alternate = | 425 AlternateProtocolInfo alternate = |
| 433 impl_.GetAlternateProtocol(test_host_port_pair); | 426 impl_.GetAlternateProtocol(test_host_port_pair); |
| 434 EXPECT_EQ(canonical_protocol.port, alternate.port); | 427 EXPECT_EQ(canonical_protocol.port, alternate.port); |
| 435 EXPECT_EQ(canonical_protocol.protocol, alternate.protocol); | 428 EXPECT_EQ(canonical_protocol.protocol, alternate.protocol); |
| 436 | 429 |
| 437 // Verify the canonical suffix. | 430 // Verify the canonical suffix. |
| 438 EXPECT_EQ(".c.youtube.com", impl_.GetCanonicalSuffix(test_host_port_pair)); | 431 EXPECT_EQ(".c.youtube.com", impl_.GetCanonicalSuffix(test_host_port_pair)); |
| 439 EXPECT_EQ(".c.youtube.com", impl_.GetCanonicalSuffix(canonical_port_pair)); | 432 EXPECT_EQ(".c.youtube.com", impl_.GetCanonicalSuffix(canonical_port_pair)); |
| 440 } | 433 } |
| 441 | 434 |
| 442 TEST_F(AlternateProtocolServerPropertiesTest, CanonicalBelowThreshold) { | 435 TEST_F(AlternateProtocolServerPropertiesTest, CanonicalBelowThreshold) { |
| 443 impl_.SetAlternateProtocolProbabilityThreshold(0.02); | 436 impl_.SetAlternateProtocolProbabilityThreshold(0.02); |
| 444 | 437 |
| 445 HostPortPair test_host_port_pair("foo.c.youtube.com", 80); | 438 HostPortPair test_host_port_pair("foo.c.youtube.com", 80); |
| 446 HostPortPair canonical_port_pair("bar.c.youtube.com", 80); | 439 HostPortPair canonical_port_pair("bar.c.youtube.com", 80); |
| 447 AlternateProtocolInfo canonical_protocol(1234, QUIC, 0.01); | 440 AlternateProtocolInfo canonical_protocol(1234, QUIC, 0.01); |
| 448 | 441 |
| 449 impl_.SetAlternateProtocol(canonical_port_pair, | 442 impl_.SetAlternateProtocol(canonical_port_pair, canonical_protocol.port, |
| 450 canonical_protocol.port, | |
| 451 canonical_protocol.protocol, | 443 canonical_protocol.protocol, |
| 452 canonical_protocol.probability); | 444 canonical_protocol.probability); |
| 453 EXPECT_FALSE(impl_.HasAlternateProtocol(canonical_port_pair)); | 445 EXPECT_FALSE(impl_.HasAlternateProtocol(canonical_port_pair)); |
| 454 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); | 446 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); |
| 455 } | 447 } |
| 456 | 448 |
| 457 TEST_F(AlternateProtocolServerPropertiesTest, CanonicalAboveThreshold) { | 449 TEST_F(AlternateProtocolServerPropertiesTest, CanonicalAboveThreshold) { |
| 458 impl_.SetAlternateProtocolProbabilityThreshold(0.02); | 450 impl_.SetAlternateProtocolProbabilityThreshold(0.02); |
| 459 | 451 |
| 460 HostPortPair test_host_port_pair("foo.c.youtube.com", 80); | 452 HostPortPair test_host_port_pair("foo.c.youtube.com", 80); |
| 461 HostPortPair canonical_port_pair("bar.c.youtube.com", 80); | 453 HostPortPair canonical_port_pair("bar.c.youtube.com", 80); |
| 462 AlternateProtocolInfo canonical_protocol(1234, QUIC, 0.03); | 454 AlternateProtocolInfo canonical_protocol(1234, QUIC, 0.03); |
| 463 | 455 |
| 464 impl_.SetAlternateProtocol(canonical_port_pair, | 456 impl_.SetAlternateProtocol(canonical_port_pair, canonical_protocol.port, |
| 465 canonical_protocol.port, | |
| 466 canonical_protocol.protocol, | 457 canonical_protocol.protocol, |
| 467 canonical_protocol.probability); | 458 canonical_protocol.probability); |
| 468 EXPECT_TRUE(impl_.HasAlternateProtocol(canonical_port_pair)); | 459 EXPECT_TRUE(impl_.HasAlternateProtocol(canonical_port_pair)); |
| 469 EXPECT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair)); | 460 EXPECT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair)); |
| 470 } | 461 } |
| 471 | 462 |
| 472 TEST_F(AlternateProtocolServerPropertiesTest, ClearCanonical) { | 463 TEST_F(AlternateProtocolServerPropertiesTest, ClearCanonical) { |
| 473 HostPortPair test_host_port_pair("foo.c.youtube.com", 80); | 464 HostPortPair test_host_port_pair("foo.c.youtube.com", 80); |
| 474 HostPortPair canonical_port_pair("bar.c.youtube.com", 80); | 465 HostPortPair canonical_port_pair("bar.c.youtube.com", 80); |
| 475 | 466 |
| 476 AlternateProtocolInfo canonical_protocol(1234, QUIC, 1); | 467 AlternateProtocolInfo canonical_protocol(1234, QUIC, 1); |
| 477 | 468 |
| 478 impl_.SetAlternateProtocol(canonical_port_pair, | 469 impl_.SetAlternateProtocol(canonical_port_pair, canonical_protocol.port, |
| 479 canonical_protocol.port, | |
| 480 canonical_protocol.protocol, | 470 canonical_protocol.protocol, |
| 481 canonical_protocol.probability); | 471 canonical_protocol.probability); |
| 482 | 472 |
| 483 impl_.ClearAlternateProtocol(canonical_port_pair); | 473 impl_.ClearAlternateProtocol(canonical_port_pair); |
| 484 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); | 474 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); |
| 485 } | 475 } |
| 486 | 476 |
| 487 TEST_F(AlternateProtocolServerPropertiesTest, CanonicalBroken) { | 477 TEST_F(AlternateProtocolServerPropertiesTest, CanonicalBroken) { |
| 488 HostPortPair test_host_port_pair("foo.c.youtube.com", 80); | 478 HostPortPair test_host_port_pair("foo.c.youtube.com", 80); |
| 489 HostPortPair canonical_port_pair("bar.c.youtube.com", 80); | 479 HostPortPair canonical_port_pair("bar.c.youtube.com", 80); |
| 490 | 480 |
| 491 AlternateProtocolInfo canonical_protocol(1234, QUIC, 1); | 481 AlternateProtocolInfo canonical_protocol(1234, QUIC, 1); |
| 492 | 482 |
| 493 impl_.SetAlternateProtocol(canonical_port_pair, | 483 impl_.SetAlternateProtocol(canonical_port_pair, canonical_protocol.port, |
| 494 canonical_protocol.port, | |
| 495 canonical_protocol.protocol, | 484 canonical_protocol.protocol, |
| 496 canonical_protocol.probability); | 485 canonical_protocol.probability); |
| 497 | 486 |
| 498 impl_.SetBrokenAlternateProtocol(canonical_port_pair); | 487 impl_.SetBrokenAlternateProtocol(canonical_port_pair); |
| 499 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); | 488 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); |
| 500 } | 489 } |
| 501 | 490 |
| 502 TEST_F(AlternateProtocolServerPropertiesTest, CanonicalBroken2) { | 491 TEST_F(AlternateProtocolServerPropertiesTest, CanonicalBroken2) { |
| 503 HostPortPair test_host_port_pair("foo.c.youtube.com", 80); | 492 HostPortPair test_host_port_pair("foo.c.youtube.com", 80); |
| 504 HostPortPair canonical_port_pair("bar.c.youtube.com", 80); | 493 HostPortPair canonical_port_pair("bar.c.youtube.com", 80); |
| 505 | 494 |
| 506 AlternateProtocolInfo canonical_protocol(1234, QUIC, 1); | 495 AlternateProtocolInfo canonical_protocol(1234, QUIC, 1); |
| 507 | 496 |
| 508 impl_.SetAlternateProtocol(canonical_port_pair, | 497 impl_.SetAlternateProtocol(canonical_port_pair, canonical_protocol.port, |
| 509 canonical_protocol.port, | |
| 510 canonical_protocol.protocol, | 498 canonical_protocol.protocol, |
| 511 canonical_protocol.probability); | 499 canonical_protocol.probability); |
| 512 | 500 |
| 513 impl_.SetBrokenAlternateProtocol(test_host_port_pair); | 501 impl_.SetBrokenAlternateProtocol(test_host_port_pair); |
| 514 AlternateProtocolInfo alternate = | 502 AlternateProtocolInfo alternate = |
| 515 impl_.GetAlternateProtocol(test_host_port_pair); | 503 impl_.GetAlternateProtocol(test_host_port_pair); |
| 516 EXPECT_TRUE(alternate.is_broken); | 504 EXPECT_TRUE(alternate.is_broken); |
| 517 } | 505 } |
| 518 | 506 |
| 519 TEST_F(AlternateProtocolServerPropertiesTest, ClearWithCanonical) { | 507 TEST_F(AlternateProtocolServerPropertiesTest, ClearWithCanonical) { |
| 520 HostPortPair test_host_port_pair("foo.c.youtube.com", 80); | 508 HostPortPair test_host_port_pair("foo.c.youtube.com", 80); |
| 521 HostPortPair canonical_port_pair("bar.c.youtube.com", 80); | 509 HostPortPair canonical_port_pair("bar.c.youtube.com", 80); |
| 522 | 510 |
| 523 AlternateProtocolInfo canonical_protocol(1234, QUIC, 1); | 511 AlternateProtocolInfo canonical_protocol(1234, QUIC, 1); |
| 524 | 512 |
| 525 impl_.SetAlternateProtocol(canonical_port_pair, | 513 impl_.SetAlternateProtocol(canonical_port_pair, canonical_protocol.port, |
| 526 canonical_protocol.port, | |
| 527 canonical_protocol.protocol, | 514 canonical_protocol.protocol, |
| 528 canonical_protocol.probability); | 515 canonical_protocol.probability); |
| 529 | 516 |
| 530 impl_.Clear(); | 517 impl_.Clear(); |
| 531 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); | 518 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); |
| 532 } | 519 } |
| 533 | 520 |
| 534 typedef HttpServerPropertiesImplTest SpdySettingsServerPropertiesTest; | 521 typedef HttpServerPropertiesImplTest SpdySettingsServerPropertiesTest; |
| 535 | 522 |
| 536 TEST_F(SpdySettingsServerPropertiesTest, Initialize) { | 523 TEST_F(SpdySettingsServerPropertiesTest, Initialize) { |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 689 SpdySettingsMap::const_iterator it = map.begin(); | 676 SpdySettingsMap::const_iterator it = map.begin(); |
| 690 EXPECT_TRUE(it->first.Equals(spdy_server_docs)); | 677 EXPECT_TRUE(it->first.Equals(spdy_server_docs)); |
| 691 const SettingsMap& settings_map2_ret = it->second; | 678 const SettingsMap& settings_map2_ret = it->second; |
| 692 ASSERT_EQ(1U, settings_map2_ret.size()); | 679 ASSERT_EQ(1U, settings_map2_ret.size()); |
| 693 SettingsMap::const_iterator it2_ret = settings_map2_ret.find(id2); | 680 SettingsMap::const_iterator it2_ret = settings_map2_ret.find(id2); |
| 694 EXPECT_TRUE(it2_ret != settings_map2_ret.end()); | 681 EXPECT_TRUE(it2_ret != settings_map2_ret.end()); |
| 695 SettingsFlagsAndValue flags_and_value2_ret = it2_ret->second; | 682 SettingsFlagsAndValue flags_and_value2_ret = it2_ret->second; |
| 696 EXPECT_EQ(SETTINGS_FLAG_PERSISTED, flags_and_value2_ret.first); | 683 EXPECT_EQ(SETTINGS_FLAG_PERSISTED, flags_and_value2_ret.first); |
| 697 EXPECT_EQ(value2, flags_and_value2_ret.second); | 684 EXPECT_EQ(value2, flags_and_value2_ret.second); |
| 698 | 685 |
| 699 // GetSpdySettings should reoder the SpdySettingsMap. | 686 // GetSpdySettings should reorder the SpdySettingsMap. |
| 700 const SettingsMap& settings_map1_ret = | 687 const SettingsMap& settings_map1_ret = |
| 701 impl_.GetSpdySettings(spdy_server_google); | 688 impl_.GetSpdySettings(spdy_server_google); |
| 702 ASSERT_EQ(1U, settings_map1_ret.size()); | 689 ASSERT_EQ(1U, settings_map1_ret.size()); |
| 703 SettingsMap::const_iterator it1_ret = settings_map1_ret.find(id1); | 690 SettingsMap::const_iterator it1_ret = settings_map1_ret.find(id1); |
| 704 EXPECT_TRUE(it1_ret != settings_map1_ret.end()); | 691 EXPECT_TRUE(it1_ret != settings_map1_ret.end()); |
| 705 SettingsFlagsAndValue flags_and_value1_ret = it1_ret->second; | 692 SettingsFlagsAndValue flags_and_value1_ret = it1_ret->second; |
| 706 EXPECT_EQ(SETTINGS_FLAG_PERSISTED, flags_and_value1_ret.first); | 693 EXPECT_EQ(SETTINGS_FLAG_PERSISTED, flags_and_value1_ret.first); |
| 707 EXPECT_EQ(value1, flags_and_value1_ret.second); | 694 EXPECT_EQ(value1, flags_and_value1_ret.second); |
| 708 | 695 |
| 709 // Check the first entry is spdy_server_google by accessing it via iterator. | 696 // Check the first entry is spdy_server_google by accessing it via iterator. |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 795 EXPECT_EQ(100, stats2->bandwidth_estimate.ToBitsPerSecond()); | 782 EXPECT_EQ(100, stats2->bandwidth_estimate.ToBitsPerSecond()); |
| 796 | 783 |
| 797 impl_.Clear(); | 784 impl_.Clear(); |
| 798 const ServerNetworkStats* stats3 = impl_.GetServerNetworkStats(foo_server); | 785 const ServerNetworkStats* stats3 = impl_.GetServerNetworkStats(foo_server); |
| 799 EXPECT_EQ(NULL, stats3); | 786 EXPECT_EQ(NULL, stats3); |
| 800 } | 787 } |
| 801 | 788 |
| 802 } // namespace | 789 } // namespace |
| 803 | 790 |
| 804 } // namespace net | 791 } // namespace net |
| OLD | NEW |