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

Side by Side Diff: net/http/http_server_properties_impl_unittest.cc

Issue 665083009: ABANDONED Handle multiple AlternateProtocols for each HostPortPair. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Custom entries for broken_alternate_protocol_list_ and map_. Created 5 years, 10 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 unified diff | 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 »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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_.AddAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, 1);
241 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair));
242 const AlternateProtocolInfo alternate = 241 const AlternateProtocolInfo alternate =
243 impl_.GetAlternateProtocol(test_host_port_pair); 242 impl_.GetAlternateProtocol(test_host_port_pair);
244 EXPECT_EQ(443, alternate.port); 243 EXPECT_EQ(443, alternate.port);
245 EXPECT_EQ(NPN_SPDY_3, alternate.protocol); 244 EXPECT_EQ(NPN_SPDY_3, alternate.protocol);
246 245
247 impl_.Clear(); 246 impl_.Clear();
248 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); 247 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair));
249 } 248 }
250 249
251 TEST_F(AlternateProtocolServerPropertiesTest, DefaultProbabilityExcluded) { 250 TEST_F(AlternateProtocolServerPropertiesTest, DefaultProbabilityExcluded) {
252 HostPortPair test_host_port_pair("foo", 80); 251 HostPortPair test_host_port_pair("foo", 80);
253 impl_.SetAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, .99); 252 impl_.AddAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, .99);
254 253
255 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); 254 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair));
256 } 255 }
257 256
258 TEST_F(AlternateProtocolServerPropertiesTest, Probability) { 257 TEST_F(AlternateProtocolServerPropertiesTest, Probability) {
259 impl_.SetAlternateProtocolProbabilityThreshold(.25); 258 impl_.SetAlternateProtocolProbabilityThreshold(.25);
260 259
261 HostPortPair test_host_port_pair("foo", 80); 260 HostPortPair test_host_port_pair("foo", 80);
262 impl_.SetAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, .5); 261 impl_.AddAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, .5);
263 262
264 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair));
265 const AlternateProtocolInfo alternate = 263 const AlternateProtocolInfo alternate =
266 impl_.GetAlternateProtocol(test_host_port_pair); 264 impl_.GetAlternateProtocol(test_host_port_pair);
267 EXPECT_EQ(443, alternate.port); 265 EXPECT_EQ(443, alternate.port);
268 EXPECT_EQ(NPN_SPDY_3, alternate.protocol); 266 EXPECT_EQ(NPN_SPDY_3, alternate.protocol);
269 EXPECT_EQ(.5, alternate.probability); 267 EXPECT_EQ(.5, alternate.probability);
270 } 268 }
271 269
272 TEST_F(AlternateProtocolServerPropertiesTest, ProbabilityExcluded) { 270 TEST_F(AlternateProtocolServerPropertiesTest, ProbabilityExcluded) {
273 impl_.SetAlternateProtocolProbabilityThreshold(.75); 271 impl_.SetAlternateProtocolProbabilityThreshold(.75);
274 272
275 HostPortPair test_host_port_pair("foo", 80); 273 HostPortPair test_host_port_pair("foo", 80);
276 274
277 impl_.SetAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, .5); 275 impl_.AddAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, .5);
278 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); 276 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair));
279 } 277 }
280 278
281 TEST_F(AlternateProtocolServerPropertiesTest, Initialize) { 279 TEST_F(AlternateProtocolServerPropertiesTest, Initialize) {
282 HostPortPair test_host_port_pair1("foo1", 80); 280 HostPortPair test_host_port_pair1("foo1", 80);
283 impl_.SetAlternateProtocol(test_host_port_pair1, 443, NPN_SPDY_3, 1); 281 impl_.AddAlternateProtocol(test_host_port_pair1, 443, NPN_SPDY_3, 1);
284 impl_.SetBrokenAlternateProtocol(test_host_port_pair1); 282 impl_.AddAlternateProtocol(test_host_port_pair1, 123, NPN_SPDY_3, 1);
283 AlternateProtocolInfo alternate_protocol(123, NPN_SPDY_3, 1);
284 impl_.SetBrokenAlternateProtocol(test_host_port_pair1, alternate_protocol);
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_.AddAlternateProtocol(test_host_port_pair2, 443, NPN_SPDY_3, 1);
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,
292 AlternateProtocols(/*size=*/1, alternate));
292 HostPortPair test_host_port_pair3("foo3", 80); 293 HostPortPair test_host_port_pair3("foo3", 80);
293 alternate.port = 1234; 294 alternate.port = 1234;
294 alternate_protocol_map.Put(test_host_port_pair3, alternate); 295 alternate_protocol_map.Put(test_host_port_pair3,
296 AlternateProtocols(/*size=*/1, alternate));
295 impl_.InitializeAlternateProtocolServers(&alternate_protocol_map); 297 impl_.InitializeAlternateProtocolServers(&alternate_protocol_map);
296 298
297 // Verify test_host_port_pair3 is the MRU server. 299 // Verify test_host_port_pair3 is the MRU server.
298 const AlternateProtocolMap& map = impl_.alternate_protocol_map(); 300 const AlternateProtocolMap& map = impl_.alternate_protocol_map();
299 AlternateProtocolMap::const_iterator it = map.begin(); 301 AlternateProtocolMap::const_iterator it = map.begin();
300 it = map.begin();
301 EXPECT_TRUE(it->first.Equals(test_host_port_pair3)); 302 EXPECT_TRUE(it->first.Equals(test_host_port_pair3));
302 EXPECT_EQ(1234, it->second.port); 303 ASSERT_EQ(1u, it->second.size());
303 EXPECT_EQ(NPN_SPDY_3, it->second.protocol); 304 EXPECT_EQ(1234, it->second[0].port);
305 EXPECT_EQ(NPN_SPDY_3, it->second[0].protocol);
304 306
305 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair1)); 307 ASSERT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair1));
306 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair2));
307 alternate = impl_.GetAlternateProtocol(test_host_port_pair1);
308 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_.AddAlternateProtocol(test_host_port_pair1, 443, NPN_SPDY_3, 1);
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_.AddAlternateProtocol(test_host_port_pair2, 1234, NPN_SPDY_3, 1);
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 ASSERT_EQ(1u, it->second.size());
324 EXPECT_EQ(NPN_SPDY_3, it->second.protocol); 323 EXPECT_EQ(1234, it->second[0].port);
324 EXPECT_EQ(NPN_SPDY_3, it->second[0].protocol);
325 325
326 // HasAlternateProtocol should reoder the AlternateProtocol map. 326 // HasAlternateProtocol should reoder the AlternateProtocol map.
327 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair1)); 327 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair1));
328 it = map.begin(); 328 it = map.begin();
329 EXPECT_TRUE(it->first.Equals(test_host_port_pair1)); 329 EXPECT_TRUE(it->first.Equals(test_host_port_pair1));
330 EXPECT_EQ(443, it->second.port); 330 ASSERT_EQ(1u, it->second.size());
331 EXPECT_EQ(NPN_SPDY_3, it->second.protocol); 331 EXPECT_EQ(443, it->second[0].port);
332 EXPECT_EQ(NPN_SPDY_3, it->second[0].protocol);
332 } 333 }
333 334
334 TEST_F(AlternateProtocolServerPropertiesTest, MRUOfGetAlternateProtocol) { 335 TEST_F(AlternateProtocolServerPropertiesTest, MRUOfGetAlternateProtocol) {
335 HostPortPair test_host_port_pair1("foo1", 80); 336 HostPortPair test_host_port_pair1("foo1", 80);
336 impl_.SetAlternateProtocol(test_host_port_pair1, 443, NPN_SPDY_3, 1); 337 impl_.AddAlternateProtocol(test_host_port_pair1, 443, NPN_SPDY_3, 1);
337 HostPortPair test_host_port_pair2("foo2", 80); 338 HostPortPair test_host_port_pair2("foo2", 80);
338 impl_.SetAlternateProtocol(test_host_port_pair2, 1234, NPN_SPDY_3, 1); 339 impl_.AddAlternateProtocol(test_host_port_pair2, 1234, NPN_SPDY_3, 1);
339 340
340 const AlternateProtocolMap& map = impl_.alternate_protocol_map(); 341 const AlternateProtocolMap& map = impl_.alternate_protocol_map();
341 AlternateProtocolMap::const_iterator it = map.begin(); 342 AlternateProtocolMap::const_iterator it = map.begin();
342 EXPECT_TRUE(it->first.Equals(test_host_port_pair2)); 343 EXPECT_TRUE(it->first.Equals(test_host_port_pair2));
343 EXPECT_EQ(1234, it->second.port); 344 ASSERT_EQ(1u, it->second.size());
344 EXPECT_EQ(NPN_SPDY_3, it->second.protocol); 345 EXPECT_EQ(1234, it->second[0].port);
346 EXPECT_EQ(NPN_SPDY_3, it->second[0].protocol);
345 347
346 // GetAlternateProtocol should reoder the AlternateProtocol map. 348 // GetAlternateProtocol should reorder the AlternateProtocol map.
347 AlternateProtocolInfo alternate = 349 AlternateProtocolInfo alternate =
348 impl_.GetAlternateProtocol(test_host_port_pair1); 350 impl_.GetAlternateProtocol(test_host_port_pair1);
349 EXPECT_EQ(443, alternate.port); 351 EXPECT_EQ(443, alternate.port);
350 EXPECT_EQ(NPN_SPDY_3, alternate.protocol); 352 EXPECT_EQ(NPN_SPDY_3, alternate.protocol);
351 it = map.begin(); 353 it = map.begin();
352 EXPECT_TRUE(it->first.Equals(test_host_port_pair1)); 354 EXPECT_TRUE(it->first.Equals(test_host_port_pair1));
353 EXPECT_EQ(443, it->second.port); 355 ASSERT_EQ(1u, it->second.size());
354 EXPECT_EQ(NPN_SPDY_3, it->second.protocol); 356 EXPECT_EQ(443, it->second[0].port);
357 EXPECT_EQ(NPN_SPDY_3, it->second[0].protocol);
358 }
359
360 TEST_F(AlternateProtocolServerPropertiesTest, RemoveForSingleHost) {
361 HostPortPair test_host_port_pair("foo", 80);
362 impl_.AddAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, 1);
363 impl_.AddAlternateProtocol(test_host_port_pair, 1234, NPN_SPDY_3, 1);
364
365 const net::AlternateProtocolMap& map = impl_.alternate_protocol_map();
366 net::AlternateProtocolMap::const_iterator it = map.begin();
367 EXPECT_TRUE(it->first.Equals(test_host_port_pair));
368 ASSERT_EQ(2u, it->second.size());
369 EXPECT_EQ(443, it->second[0].port);
370 EXPECT_EQ(1234, it->second[1].port);
371
372 // Adding an identical entry does nothing.
373 impl_.AddAlternateProtocol(test_host_port_pair, 1234, NPN_SPDY_3, 1);
374 it = map.begin();
375 ASSERT_EQ(2u, it->second.size());
376
377 // Add a third one.
378 impl_.AddAlternateProtocol(test_host_port_pair, 123, NPN_SPDY_3, 1);
379 it = map.begin();
380 ASSERT_EQ(3u, it->second.size());
381 EXPECT_EQ(123, it->second[2].port);
382
383 // Remove one by one.
384 impl_.RemoveAlternateProtocol(test_host_port_pair,
385 AlternateProtocolInfo(1234, NPN_SPDY_3, 1));
386 it = map.begin();
387 ASSERT_EQ(2u, it->second.size());
388 EXPECT_EQ(443, it->second[0].port);
389 EXPECT_EQ(123, it->second[1].port);
390
391 impl_.RemoveAlternateProtocol(test_host_port_pair,
392 AlternateProtocolInfo(443, NPN_SPDY_3, 1));
393 it = map.begin();
394 ASSERT_EQ(1u, it->second.size());
395 EXPECT_EQ(123, it->second[0].port);
396
397 impl_.RemoveAlternateProtocol(test_host_port_pair,
398 AlternateProtocolInfo(123, NPN_SPDY_3, 1));
399 ASSERT_EQ(0u, impl_.alternate_protocol_map().size());
400 }
401
402 TEST_F(AlternateProtocolServerPropertiesTest, ClearAlternateProtocol) {
403 HostPortPair test_host_port_pair("foo", 80);
404 impl_.AddAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, 1);
405 impl_.AddAlternateProtocol(test_host_port_pair, 1234, NPN_SPDY_3, 1);
406
407 const net::AlternateProtocolMap& map = impl_.alternate_protocol_map();
408 net::AlternateProtocolMap::const_iterator it = map.begin();
409 EXPECT_TRUE(it->first.Equals(test_host_port_pair));
410 ASSERT_EQ(2u, it->second.size());
411 EXPECT_EQ(443, it->second[0].port);
412 EXPECT_EQ(1234, it->second[1].port);
413
414 impl_.ClearAlternateProtocol(test_host_port_pair);
415 EXPECT_EQ(0u, impl_.alternate_protocol_map().size());
355 } 416 }
356 417
357 TEST_F(AlternateProtocolServerPropertiesTest, SetBroken) { 418 TEST_F(AlternateProtocolServerPropertiesTest, SetBroken) {
358 HostPortPair test_host_port_pair("foo", 80); 419 HostPortPair test_host_port_pair("foo", 80);
359 impl_.SetAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, 1); 420 impl_.AddAlternateProtocol(test_host_port_pair, 123, NPN_SPDY_3, 1);
360 impl_.SetBrokenAlternateProtocol(test_host_port_pair); 421 AlternateProtocolInfo alternate(123, NPN_SPDY_3, 1);
361 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair)); 422 impl_.SetBrokenAlternateProtocol(test_host_port_pair, alternate);
362 AlternateProtocolInfo alternate = 423 ASSERT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair));
363 impl_.GetAlternateProtocol(test_host_port_pair);
364 EXPECT_TRUE(alternate.is_broken);
365 424
366 impl_.SetAlternateProtocol( 425 impl_.AddAlternateProtocol(test_host_port_pair, 123, NPN_SPDY_3, 1);
367 test_host_port_pair,
368 1234,
369 NPN_SPDY_3,
370 1);
371 alternate = impl_.GetAlternateProtocol(test_host_port_pair); 426 alternate = impl_.GetAlternateProtocol(test_host_port_pair);
372 EXPECT_TRUE(alternate.is_broken) << "Second attempt should be ignored."; 427 ASSERT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair))
428 << "Second attempt should be ignored.";
373 } 429 }
374 430
375 TEST_F(AlternateProtocolServerPropertiesTest, ClearBroken) { 431 TEST_F(AlternateProtocolServerPropertiesTest, ClearBroken) {
376 HostPortPair test_host_port_pair("foo", 80); 432 HostPortPair test_host_port_pair("foo", 80);
377 impl_.SetAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, 1); 433 impl_.AddAlternateProtocol(test_host_port_pair, 123, NPN_SPDY_3, 1);
378 impl_.SetBrokenAlternateProtocol(test_host_port_pair); 434 AlternateProtocolInfo alternate(123, NPN_SPDY_3, 1);
379 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair)); 435 impl_.SetBrokenAlternateProtocol(test_host_port_pair, alternate);
380 AlternateProtocolInfo alternate = 436 ASSERT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair));
381 impl_.GetAlternateProtocol(test_host_port_pair);
382 EXPECT_TRUE(alternate.is_broken);
383 impl_.ClearAlternateProtocol(test_host_port_pair); 437 impl_.ClearAlternateProtocol(test_host_port_pair);
384 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); 438 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair));
439 impl_.AddAlternateProtocol(test_host_port_pair, 123, NPN_SPDY_3, 1);
440 alternate = impl_.GetAlternateProtocol(test_host_port_pair);
441 EXPECT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair));
385 } 442 }
386 443
387 TEST_F(AlternateProtocolServerPropertiesTest, Forced) { 444 TEST_F(AlternateProtocolServerPropertiesTest, Forced) {
388 // Test forced alternate protocols. 445 // Test forced alternate protocols.
389 446
390 AlternateProtocolInfo default_protocol(1234, NPN_SPDY_3, 1); 447 AlternateProtocolInfo default_protocol(1234, NPN_SPDY_3, 1);
391 HttpServerPropertiesImpl::ForceAlternateProtocol(default_protocol); 448 HttpServerPropertiesImpl::ForceAlternateProtocol(default_protocol);
392 449
393 // Verify the forced protocol. 450 // Verify the forced protocol.
394 HostPortPair test_host_port_pair("foo", 80); 451 HostPortPair test_host_port_pair("foo", 80);
395 EXPECT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair));
396 AlternateProtocolInfo alternate = 452 AlternateProtocolInfo alternate =
397 impl_.GetAlternateProtocol(test_host_port_pair); 453 impl_.GetAlternateProtocol(test_host_port_pair);
398 EXPECT_EQ(default_protocol.port, alternate.port); 454 EXPECT_EQ(default_protocol.port, alternate.port);
399 EXPECT_EQ(default_protocol.protocol, alternate.protocol); 455 EXPECT_EQ(default_protocol.protocol, alternate.protocol);
400 456
401 // Verify the real protocol overrides the forced protocol. 457 // Verify the real protocol overrides the forced protocol.
402 impl_.SetAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, 1); 458 impl_.AddAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, 1);
403 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair));
404 alternate = impl_.GetAlternateProtocol(test_host_port_pair); 459 alternate = impl_.GetAlternateProtocol(test_host_port_pair);
405 EXPECT_EQ(443, alternate.port); 460 EXPECT_EQ(443, alternate.port);
406 EXPECT_EQ(NPN_SPDY_3, alternate.protocol); 461 EXPECT_EQ(NPN_SPDY_3, alternate.protocol);
407 462
408 // Turn off the static, forced alternate protocol so that tests don't 463 // Turn off the static, forced alternate protocol so that tests don't
409 // have this state. 464 // have this state.
410 HttpServerPropertiesImpl::DisableForcedAlternateProtocol(); 465 HttpServerPropertiesImpl::DisableForcedAlternateProtocol();
411 466
412 // Verify the forced protocol is off. 467 // Verify the forced protocol is off.
413 HostPortPair test_host_port_pair2("bar", 80); 468 HostPortPair test_host_port_pair2("bar", 80);
414 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair2)); 469 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair2));
415 } 470 }
416 471
417 TEST_F(AlternateProtocolServerPropertiesTest, Canonical) { 472 TEST_F(AlternateProtocolServerPropertiesTest, Canonical) {
418 HostPortPair test_host_port_pair("foo.c.youtube.com", 80); 473 HostPortPair test_host_port_pair("foo.c.youtube.com", 80);
419 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); 474 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair));
420 475
421 HostPortPair canonical_port_pair("bar.c.youtube.com", 80); 476 HostPortPair canonical_port_pair("bar.c.youtube.com", 80);
422 EXPECT_FALSE(impl_.HasAlternateProtocol(canonical_port_pair)); 477 EXPECT_FALSE(impl_.HasAlternateProtocol(canonical_port_pair));
423 478
424 AlternateProtocolInfo canonical_protocol(1234, QUIC, 1); 479 AlternateProtocolInfo canonical_protocol(1234, QUIC, 1);
425 480
426 impl_.SetAlternateProtocol(canonical_port_pair, 481 impl_.AddAlternateProtocol(canonical_port_pair, canonical_protocol.port,
427 canonical_protocol.port, 482 canonical_protocol.protocol, 1);
428 canonical_protocol.protocol,
429 1);
430 // Verify the forced protocol. 483 // Verify the forced protocol.
431 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair));
432 AlternateProtocolInfo alternate = 484 AlternateProtocolInfo alternate =
433 impl_.GetAlternateProtocol(test_host_port_pair); 485 impl_.GetAlternateProtocol(test_host_port_pair);
434 EXPECT_EQ(canonical_protocol.port, alternate.port); 486 EXPECT_EQ(canonical_protocol.port, alternate.port);
435 EXPECT_EQ(canonical_protocol.protocol, alternate.protocol); 487 EXPECT_EQ(canonical_protocol.protocol, alternate.protocol);
436 488
437 // Verify the canonical suffix. 489 // Verify the canonical suffix.
438 EXPECT_EQ(".c.youtube.com", impl_.GetCanonicalSuffix(test_host_port_pair)); 490 EXPECT_EQ(".c.youtube.com", impl_.GetCanonicalSuffix(test_host_port_pair));
439 EXPECT_EQ(".c.youtube.com", impl_.GetCanonicalSuffix(canonical_port_pair)); 491 EXPECT_EQ(".c.youtube.com", impl_.GetCanonicalSuffix(canonical_port_pair));
440 } 492 }
441 493
442 TEST_F(AlternateProtocolServerPropertiesTest, CanonicalBelowThreshold) { 494 TEST_F(AlternateProtocolServerPropertiesTest, CanonicalBelowThreshold) {
443 impl_.SetAlternateProtocolProbabilityThreshold(0.02); 495 impl_.SetAlternateProtocolProbabilityThreshold(0.02);
444 496
445 HostPortPair test_host_port_pair("foo.c.youtube.com", 80); 497 HostPortPair test_host_port_pair("foo.c.youtube.com", 80);
446 HostPortPair canonical_port_pair("bar.c.youtube.com", 80); 498 HostPortPair canonical_port_pair("bar.c.youtube.com", 80);
447 AlternateProtocolInfo canonical_protocol(1234, QUIC, 0.01); 499 AlternateProtocolInfo canonical_protocol(1234, QUIC, 0.01);
448 500
449 impl_.SetAlternateProtocol(canonical_port_pair, 501 impl_.AddAlternateProtocol(canonical_port_pair, canonical_protocol.port,
450 canonical_protocol.port,
451 canonical_protocol.protocol, 502 canonical_protocol.protocol,
452 canonical_protocol.probability); 503 canonical_protocol.probability);
453 EXPECT_FALSE(impl_.HasAlternateProtocol(canonical_port_pair)); 504 EXPECT_FALSE(impl_.HasAlternateProtocol(canonical_port_pair));
454 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); 505 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair));
455 } 506 }
456 507
457 TEST_F(AlternateProtocolServerPropertiesTest, CanonicalAboveThreshold) { 508 TEST_F(AlternateProtocolServerPropertiesTest, CanonicalAboveThreshold) {
458 impl_.SetAlternateProtocolProbabilityThreshold(0.02); 509 impl_.SetAlternateProtocolProbabilityThreshold(0.02);
459 510
460 HostPortPair test_host_port_pair("foo.c.youtube.com", 80); 511 HostPortPair test_host_port_pair("foo.c.youtube.com", 80);
461 HostPortPair canonical_port_pair("bar.c.youtube.com", 80); 512 HostPortPair canonical_port_pair("bar.c.youtube.com", 80);
462 AlternateProtocolInfo canonical_protocol(1234, QUIC, 0.03); 513 AlternateProtocolInfo canonical_protocol(1234, QUIC, 0.03);
463 514
464 impl_.SetAlternateProtocol(canonical_port_pair, 515 impl_.AddAlternateProtocol(canonical_port_pair, canonical_protocol.port,
465 canonical_protocol.port,
466 canonical_protocol.protocol, 516 canonical_protocol.protocol,
467 canonical_protocol.probability); 517 canonical_protocol.probability);
468 EXPECT_TRUE(impl_.HasAlternateProtocol(canonical_port_pair)); 518 EXPECT_TRUE(impl_.HasAlternateProtocol(canonical_port_pair));
469 EXPECT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair)); 519 EXPECT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair));
470 } 520 }
471 521
472 TEST_F(AlternateProtocolServerPropertiesTest, ClearCanonical) { 522 TEST_F(AlternateProtocolServerPropertiesTest, ClearCanonical) {
473 HostPortPair test_host_port_pair("foo.c.youtube.com", 80); 523 HostPortPair test_host_port_pair("foo.c.youtube.com", 80);
474 HostPortPair canonical_port_pair("bar.c.youtube.com", 80); 524 HostPortPair canonical_port_pair("bar.c.youtube.com", 80);
475 525
476 AlternateProtocolInfo canonical_protocol(1234, QUIC, 1); 526 AlternateProtocolInfo canonical_protocol(1234, QUIC, 1);
477 527
478 impl_.SetAlternateProtocol(canonical_port_pair, 528 impl_.AddAlternateProtocol(canonical_port_pair, canonical_protocol.port,
479 canonical_protocol.port,
480 canonical_protocol.protocol, 529 canonical_protocol.protocol,
481 canonical_protocol.probability); 530 canonical_protocol.probability);
482 531
483 impl_.ClearAlternateProtocol(canonical_port_pair); 532 impl_.ClearAlternateProtocol(canonical_port_pair);
484 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); 533 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair));
485 } 534 }
486 535
487 TEST_F(AlternateProtocolServerPropertiesTest, CanonicalBroken) { 536 TEST_F(AlternateProtocolServerPropertiesTest, CanonicalBroken) {
488 HostPortPair test_host_port_pair("foo.c.youtube.com", 80); 537 HostPortPair test_host_port_pair("foo.c.youtube.com", 80);
489 HostPortPair canonical_port_pair("bar.c.youtube.com", 80); 538 HostPortPair canonical_port_pair("bar.c.youtube.com", 80);
490 539
491 AlternateProtocolInfo canonical_protocol(1234, QUIC, 1); 540 AlternateProtocolInfo canonical_protocol(1234, QUIC, 1);
492 541
493 impl_.SetAlternateProtocol(canonical_port_pair, 542 impl_.AddAlternateProtocol(canonical_port_pair, canonical_protocol.port,
494 canonical_protocol.port,
495 canonical_protocol.protocol, 543 canonical_protocol.protocol,
496 canonical_protocol.probability); 544 canonical_protocol.probability);
497 545
498 impl_.SetBrokenAlternateProtocol(canonical_port_pair); 546 impl_.SetBrokenAlternateProtocol(canonical_port_pair, canonical_protocol);
499 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); 547 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair));
500 } 548 }
501 549
502 TEST_F(AlternateProtocolServerPropertiesTest, CanonicalBroken2) {
503 HostPortPair test_host_port_pair("foo.c.youtube.com", 80);
504 HostPortPair canonical_port_pair("bar.c.youtube.com", 80);
505
506 AlternateProtocolInfo canonical_protocol(1234, QUIC, 1);
507
508 impl_.SetAlternateProtocol(canonical_port_pair,
509 canonical_protocol.port,
510 canonical_protocol.protocol,
511 canonical_protocol.probability);
512
513 impl_.SetBrokenAlternateProtocol(test_host_port_pair);
514 AlternateProtocolInfo alternate =
515 impl_.GetAlternateProtocol(test_host_port_pair);
516 EXPECT_TRUE(alternate.is_broken);
517 }
518
519 TEST_F(AlternateProtocolServerPropertiesTest, ClearWithCanonical) { 550 TEST_F(AlternateProtocolServerPropertiesTest, ClearWithCanonical) {
520 HostPortPair test_host_port_pair("foo.c.youtube.com", 80); 551 HostPortPair test_host_port_pair("foo.c.youtube.com", 80);
521 HostPortPair canonical_port_pair("bar.c.youtube.com", 80); 552 HostPortPair canonical_port_pair("bar.c.youtube.com", 80);
522 553
523 AlternateProtocolInfo canonical_protocol(1234, QUIC, 1); 554 AlternateProtocolInfo canonical_protocol(1234, QUIC, 1);
524 555
525 impl_.SetAlternateProtocol(canonical_port_pair, 556 impl_.AddAlternateProtocol(canonical_port_pair, canonical_protocol.port,
526 canonical_protocol.port,
527 canonical_protocol.protocol, 557 canonical_protocol.protocol,
528 canonical_protocol.probability); 558 canonical_protocol.probability);
529 559
530 impl_.Clear(); 560 impl_.Clear();
531 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); 561 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair));
532 } 562 }
533 563
534 typedef HttpServerPropertiesImplTest SpdySettingsServerPropertiesTest; 564 typedef HttpServerPropertiesImplTest SpdySettingsServerPropertiesTest;
535 565
536 TEST_F(SpdySettingsServerPropertiesTest, Initialize) { 566 TEST_F(SpdySettingsServerPropertiesTest, Initialize) {
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
795 EXPECT_EQ(100, stats2->bandwidth_estimate.ToBitsPerSecond()); 825 EXPECT_EQ(100, stats2->bandwidth_estimate.ToBitsPerSecond());
796 826
797 impl_.Clear(); 827 impl_.Clear();
798 const ServerNetworkStats* stats3 = impl_.GetServerNetworkStats(foo_server); 828 const ServerNetworkStats* stats3 = impl_.GetServerNetworkStats(foo_server);
799 EXPECT_EQ(NULL, stats3); 829 EXPECT_EQ(NULL, stats3);
800 } 830 }
801 831
802 } // namespace 832 } // namespace
803 833
804 } // namespace net 834 } // namespace net
OLDNEW
« 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