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 |