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

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: Nits. Created 6 years, 1 month 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
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 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
236 ASSERT_EQ(spdy_server_g, string_value_g); 236 ASSERT_EQ(spdy_server_g, string_value_g);
237 ASSERT_TRUE(spdy_server_list.GetString(1, &string_value_m)); 237 ASSERT_TRUE(spdy_server_list.GetString(1, &string_value_m));
238 ASSERT_EQ(spdy_server_m, string_value_m); 238 ASSERT_EQ(spdy_server_m, string_value_m);
239 } 239 }
240 240
241 typedef HttpServerPropertiesImplTest AlternateProtocolServerPropertiesTest; 241 typedef HttpServerPropertiesImplTest AlternateProtocolServerPropertiesTest;
242 242
243 TEST_F(AlternateProtocolServerPropertiesTest, Basic) { 243 TEST_F(AlternateProtocolServerPropertiesTest, Basic) {
244 HostPortPair test_host_port_pair("foo", 80); 244 HostPortPair test_host_port_pair("foo", 80);
245 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); 245 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair));
246 impl_.SetAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, 1); 246 impl_.AddAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, 1);
247 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair)); 247 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair));
248 const AlternateProtocolInfo alternate = 248 const AlternateProtocols alternate_protocols =
249 impl_.GetAlternateProtocol(test_host_port_pair); 249 impl_.GetAlternateProtocols(test_host_port_pair);
250 ASSERT_EQ(1u, alternate_protocols.size());
251 const AlternateProtocolInfo alternate = alternate_protocols[0];
250 EXPECT_EQ(443, alternate.port); 252 EXPECT_EQ(443, alternate.port);
251 EXPECT_EQ(NPN_SPDY_3, alternate.protocol); 253 EXPECT_EQ(NPN_SPDY_3, alternate.protocol);
252 254
253 impl_.Clear(); 255 impl_.Clear();
254 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); 256 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair));
255 } 257 }
256 258
257 TEST_F(AlternateProtocolServerPropertiesTest, DefaultProbabilityExcluded) { 259 TEST_F(AlternateProtocolServerPropertiesTest, DefaultProbabilityExcluded) {
258 HostPortPair test_host_port_pair("foo", 80); 260 HostPortPair test_host_port_pair("foo", 80);
259 impl_.SetAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, .99); 261 impl_.AddAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, .99);
260 262
261 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); 263 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair));
262 } 264 }
263 265
264 TEST_F(AlternateProtocolServerPropertiesTest, Probability) { 266 TEST_F(AlternateProtocolServerPropertiesTest, Probability) {
265 impl_.SetAlternateProtocolProbabilityThreshold(.25); 267 impl_.SetAlternateProtocolProbabilityThreshold(.25);
266 268
267 HostPortPair test_host_port_pair("foo", 80); 269 HostPortPair test_host_port_pair("foo", 80);
268 impl_.SetAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, .5); 270 impl_.AddAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, .5);
269 271
270 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair)); 272 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair));
271 const AlternateProtocolInfo alternate = 273 const AlternateProtocols alternate_protocols =
272 impl_.GetAlternateProtocol(test_host_port_pair); 274 impl_.GetAlternateProtocols(test_host_port_pair);
275 ASSERT_EQ(1u, alternate_protocols.size());
276 const AlternateProtocolInfo alternate = alternate_protocols[0];
273 EXPECT_EQ(443, alternate.port); 277 EXPECT_EQ(443, alternate.port);
274 EXPECT_EQ(NPN_SPDY_3, alternate.protocol); 278 EXPECT_EQ(NPN_SPDY_3, alternate.protocol);
275 EXPECT_EQ(.5, alternate.probability); 279 EXPECT_EQ(.5, alternate.probability);
276 } 280 }
277 281
278 TEST_F(AlternateProtocolServerPropertiesTest, ProbabilityExcluded) { 282 TEST_F(AlternateProtocolServerPropertiesTest, ProbabilityExcluded) {
279 impl_.SetAlternateProtocolProbabilityThreshold(.75); 283 impl_.SetAlternateProtocolProbabilityThreshold(.75);
280 284
281 HostPortPair test_host_port_pair("foo", 80); 285 HostPortPair test_host_port_pair("foo", 80);
282 286
283 impl_.SetAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, .5); 287 impl_.AddAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, .5);
284 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); 288 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair));
285 } 289 }
286 290
287 TEST_F(AlternateProtocolServerPropertiesTest, Initialize) { 291 TEST_F(AlternateProtocolServerPropertiesTest, Initialize) {
288 HostPortPair test_host_port_pair1("foo1", 80); 292 HostPortPair test_host_port_pair1("foo1", 80);
289 impl_.SetBrokenAlternateProtocol(test_host_port_pair1); 293 impl_.AddAlternateProtocol(test_host_port_pair1, 123, NPN_SPDY_3, 1);
294 AlternateProtocolInfo alternate_protocol(123, NPN_SPDY_3, 1);
295 impl_.SetBrokenAlternateProtocol(test_host_port_pair1, alternate_protocol);
290 HostPortPair test_host_port_pair2("foo2", 80); 296 HostPortPair test_host_port_pair2("foo2", 80);
291 impl_.SetAlternateProtocol(test_host_port_pair2, 443, NPN_SPDY_3, 1); 297 impl_.AddAlternateProtocol(test_host_port_pair2, 443, NPN_SPDY_3, 1);
292 298
293 AlternateProtocolMap alternate_protocol_map( 299 AlternateProtocolMap alternate_protocol_map(
294 AlternateProtocolMap::NO_AUTO_EVICT); 300 AlternateProtocolMap::NO_AUTO_EVICT);
295 AlternateProtocolInfo port_alternate_protocol_pair(123, NPN_SPDY_3, 1); 301 AlternateProtocolInfo port_alternate_protocol_pair(123, NPN_SPDY_3, 1);
296 alternate_protocol_map.Put(test_host_port_pair2, 302 alternate_protocol_map.Put(
297 port_alternate_protocol_pair); 303 test_host_port_pair2,
304 AlternateProtocols(/*size=*/ 1, port_alternate_protocol_pair));
298 HostPortPair test_host_port_pair3("foo3", 80); 305 HostPortPair test_host_port_pair3("foo3", 80);
299 port_alternate_protocol_pair.port = 1234; 306 port_alternate_protocol_pair.port = 1234;
300 alternate_protocol_map.Put(test_host_port_pair3, 307 alternate_protocol_map.Put(
301 port_alternate_protocol_pair); 308 test_host_port_pair3,
309 AlternateProtocols(/*size=*/ 1, port_alternate_protocol_pair));
302 impl_.InitializeAlternateProtocolServers(&alternate_protocol_map); 310 impl_.InitializeAlternateProtocolServers(&alternate_protocol_map);
303 311
304 // Verify test_host_port_pair3 is the MRU server. 312 // Verify test_host_port_pair3 is the MRU server.
305 const net::AlternateProtocolMap& map = impl_.alternate_protocol_map(); 313 const net::AlternateProtocolMap& map = impl_.alternate_protocol_map();
306 net::AlternateProtocolMap::const_iterator it = map.begin(); 314 net::AlternateProtocolMap::const_iterator it = map.begin();
307 it = map.begin();
308 EXPECT_TRUE(it->first.Equals(test_host_port_pair3)); 315 EXPECT_TRUE(it->first.Equals(test_host_port_pair3));
309 EXPECT_EQ(1234, it->second.port); 316 ASSERT_EQ(1u, it->second.size());
310 EXPECT_EQ(NPN_SPDY_3, it->second.protocol); 317 EXPECT_EQ(1234, it->second[0].port);
318 EXPECT_EQ(NPN_SPDY_3, it->second[0].protocol);
311 319
312 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair1)); 320 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair1));
313 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair2)); 321 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair2));
314 port_alternate_protocol_pair = 322 AlternateProtocols alternate_protocols =
315 impl_.GetAlternateProtocol(test_host_port_pair1); 323 impl_.GetAlternateProtocols(test_host_port_pair1);
316 EXPECT_EQ(ALTERNATE_PROTOCOL_BROKEN, port_alternate_protocol_pair.protocol); 324 ASSERT_EQ(1u, alternate_protocols.size());
317 port_alternate_protocol_pair = 325 EXPECT_EQ(ALTERNATE_PROTOCOL_BROKEN, alternate_protocols[0].protocol);
318 impl_.GetAlternateProtocol(test_host_port_pair2); 326 alternate_protocols = impl_.GetAlternateProtocols(test_host_port_pair2);
319 EXPECT_EQ(123, port_alternate_protocol_pair.port); 327 ASSERT_EQ(1u, alternate_protocols.size());
320 EXPECT_EQ(NPN_SPDY_3, port_alternate_protocol_pair.protocol); 328 EXPECT_EQ(123, alternate_protocols[0].port);
329 EXPECT_EQ(NPN_SPDY_3, alternate_protocols[0].protocol);
321 } 330 }
322 331
323 TEST_F(AlternateProtocolServerPropertiesTest, MRUOfHasAlternateProtocol) { 332 TEST_F(AlternateProtocolServerPropertiesTest, MRUOfHasAlternateProtocol) {
324 HostPortPair test_host_port_pair1("foo1", 80); 333 HostPortPair test_host_port_pair1("foo1", 80);
325 impl_.SetAlternateProtocol(test_host_port_pair1, 443, NPN_SPDY_3, 1); 334 impl_.AddAlternateProtocol(test_host_port_pair1, 443, NPN_SPDY_3, 1);
326 HostPortPair test_host_port_pair2("foo2", 80); 335 HostPortPair test_host_port_pair2("foo2", 80);
327 impl_.SetAlternateProtocol(test_host_port_pair2, 1234, NPN_SPDY_3, 1); 336 impl_.AddAlternateProtocol(test_host_port_pair2, 1234, NPN_SPDY_3, 1);
328 337
329 const net::AlternateProtocolMap& map = impl_.alternate_protocol_map(); 338 const net::AlternateProtocolMap& map = impl_.alternate_protocol_map();
330 net::AlternateProtocolMap::const_iterator it = map.begin(); 339 net::AlternateProtocolMap::const_iterator it = map.begin();
331 EXPECT_TRUE(it->first.Equals(test_host_port_pair2)); 340 EXPECT_TRUE(it->first.Equals(test_host_port_pair2));
332 EXPECT_EQ(1234, it->second.port); 341 ASSERT_EQ(1u, it->second.size());
333 EXPECT_EQ(NPN_SPDY_3, it->second.protocol); 342 EXPECT_EQ(1234, it->second[0].port);
343 EXPECT_EQ(NPN_SPDY_3, it->second[0].protocol);
334 344
335 // HasAlternateProtocol should reoder the AlternateProtocol map. 345 // HasAlternateProtocol should reoder the AlternateProtocol map.
336 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair1)); 346 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair1));
337 it = map.begin(); 347 it = map.begin();
338 EXPECT_TRUE(it->first.Equals(test_host_port_pair1)); 348 EXPECT_TRUE(it->first.Equals(test_host_port_pair1));
339 EXPECT_EQ(443, it->second.port); 349 ASSERT_EQ(1u, it->second.size());
340 EXPECT_EQ(NPN_SPDY_3, it->second.protocol); 350 EXPECT_EQ(443, it->second[0].port);
351 EXPECT_EQ(NPN_SPDY_3, it->second[0].protocol);
341 } 352 }
342 353
343 TEST_F(AlternateProtocolServerPropertiesTest, MRUOfGetAlternateProtocol) { 354 TEST_F(AlternateProtocolServerPropertiesTest, MRUOfGetAlternateProtocol) {
344 HostPortPair test_host_port_pair1("foo1", 80); 355 HostPortPair test_host_port_pair1("foo1", 80);
345 impl_.SetAlternateProtocol(test_host_port_pair1, 443, NPN_SPDY_3, 1); 356 impl_.AddAlternateProtocol(test_host_port_pair1, 443, NPN_SPDY_3, 1);
346 HostPortPair test_host_port_pair2("foo2", 80); 357 HostPortPair test_host_port_pair2("foo2", 80);
347 impl_.SetAlternateProtocol(test_host_port_pair2, 1234, NPN_SPDY_3, 1); 358 impl_.AddAlternateProtocol(test_host_port_pair2, 1234, NPN_SPDY_3, 1);
348 359
349 const net::AlternateProtocolMap& map = impl_.alternate_protocol_map(); 360 const net::AlternateProtocolMap& map = impl_.alternate_protocol_map();
350 net::AlternateProtocolMap::const_iterator it = map.begin(); 361 net::AlternateProtocolMap::const_iterator it = map.begin();
351 EXPECT_TRUE(it->first.Equals(test_host_port_pair2)); 362 EXPECT_TRUE(it->first.Equals(test_host_port_pair2));
352 EXPECT_EQ(1234, it->second.port); 363 ASSERT_EQ(1u, it->second.size());
353 EXPECT_EQ(NPN_SPDY_3, it->second.protocol); 364 EXPECT_EQ(1234, it->second[0].port);
365 EXPECT_EQ(NPN_SPDY_3, it->second[0].protocol);
354 366
355 // GetAlternateProtocol should reoder the AlternateProtocol map. 367 // GetAlternateProtocols should reorder the AlternateProtocol map.
356 AlternateProtocolInfo alternate = 368 const AlternateProtocols alternate_protocols =
357 impl_.GetAlternateProtocol(test_host_port_pair1); 369 impl_.GetAlternateProtocols(test_host_port_pair1);
370 ASSERT_EQ(1u, alternate_protocols.size());
371 const AlternateProtocolInfo alternate = alternate_protocols[0];
358 EXPECT_EQ(443, alternate.port); 372 EXPECT_EQ(443, alternate.port);
359 EXPECT_EQ(NPN_SPDY_3, alternate.protocol); 373 EXPECT_EQ(NPN_SPDY_3, alternate.protocol);
360 it = map.begin(); 374 it = map.begin();
361 EXPECT_TRUE(it->first.Equals(test_host_port_pair1)); 375 EXPECT_TRUE(it->first.Equals(test_host_port_pair1));
362 EXPECT_EQ(443, it->second.port); 376 ASSERT_EQ(1u, it->second.size());
363 EXPECT_EQ(NPN_SPDY_3, it->second.protocol); 377 EXPECT_EQ(443, it->second[0].port);
378 EXPECT_EQ(NPN_SPDY_3, it->second[0].protocol);
379 }
380
381 TEST_F(AlternateProtocolServerPropertiesTest, RemoveForSingleHost) {
382 HostPortPair test_host_port_pair("foo", 80);
383 impl_.AddAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, 1);
384 impl_.AddAlternateProtocol(test_host_port_pair, 1234, NPN_SPDY_3, 1);
385
386 const net::AlternateProtocolMap& map = impl_.alternate_protocol_map();
387 net::AlternateProtocolMap::const_iterator it = map.begin();
388 EXPECT_TRUE(it->first.Equals(test_host_port_pair));
389 ASSERT_EQ(2u, it->second.size());
390 EXPECT_EQ(443, it->second[0].port);
391 EXPECT_EQ(1234, it->second[1].port);
392
393 // Adding an identical entry does nothing.
394 impl_.AddAlternateProtocol(test_host_port_pair, 1234, NPN_SPDY_3, 1);
395 it = map.begin();
396 ASSERT_EQ(2u, it->second.size());
397
398 // Add a third one.
399 impl_.AddAlternateProtocol(test_host_port_pair, 123, NPN_SPDY_3, 1);
400 it = map.begin();
401 ASSERT_EQ(3u, it->second.size());
402 EXPECT_EQ(123, it->second[2].port);
403
404 // Remove one by one.
405 impl_.RemoveAlternateProtocol(test_host_port_pair,
406 AlternateProtocolInfo(1234, NPN_SPDY_3, 1));
407 it = map.begin();
408 ASSERT_EQ(2u, it->second.size());
409 EXPECT_EQ(443, it->second[0].port);
410 EXPECT_EQ(123, it->second[1].port);
411
412 impl_.RemoveAlternateProtocol(test_host_port_pair,
413 AlternateProtocolInfo(443, NPN_SPDY_3, 1));
414 it = map.begin();
415 ASSERT_EQ(1u, it->second.size());
416 EXPECT_EQ(123, it->second[0].port);
417
418 impl_.RemoveAlternateProtocol(test_host_port_pair,
419 AlternateProtocolInfo(123, NPN_SPDY_3, 1));
420 ASSERT_EQ(0u, impl_.alternate_protocol_map().size());
421 }
422
423 TEST_F(AlternateProtocolServerPropertiesTest, ClearAlternateProtocol) {
424 HostPortPair test_host_port_pair("foo", 80);
425 impl_.AddAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, 1);
426 impl_.AddAlternateProtocol(test_host_port_pair, 1234, NPN_SPDY_3, 1);
427
428 const net::AlternateProtocolMap& map = impl_.alternate_protocol_map();
429 net::AlternateProtocolMap::const_iterator it = map.begin();
430 EXPECT_TRUE(it->first.Equals(test_host_port_pair));
431 ASSERT_EQ(2u, it->second.size());
432 EXPECT_EQ(443, it->second[0].port);
433 EXPECT_EQ(1234, it->second[1].port);
434
435 impl_.ClearAlternateProtocol(test_host_port_pair);
436 ASSERT_EQ(0u, impl_.alternate_protocol_map().size());
364 } 437 }
365 438
366 TEST_F(AlternateProtocolServerPropertiesTest, SetBroken) { 439 TEST_F(AlternateProtocolServerPropertiesTest, SetBroken) {
367 HostPortPair test_host_port_pair("foo", 80); 440 HostPortPair test_host_port_pair("foo", 80);
368 impl_.SetBrokenAlternateProtocol(test_host_port_pair); 441 impl_.AddAlternateProtocol(test_host_port_pair, 123, NPN_SPDY_3, 1);
442 AlternateProtocolInfo alternate(123, NPN_SPDY_3, 1);
443 impl_.SetBrokenAlternateProtocol(test_host_port_pair, alternate);
369 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair)); 444 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair));
370 AlternateProtocolInfo alternate = 445 AlternateProtocols alternate_protocols =
371 impl_.GetAlternateProtocol(test_host_port_pair); 446 impl_.GetAlternateProtocols(test_host_port_pair);
372 EXPECT_EQ(ALTERNATE_PROTOCOL_BROKEN, alternate.protocol); 447 ASSERT_EQ(1u, alternate_protocols.size());
448 EXPECT_EQ(ALTERNATE_PROTOCOL_BROKEN, alternate_protocols[0].protocol);
373 449
374 impl_.SetAlternateProtocol( 450 impl_.AddAlternateProtocol(test_host_port_pair, 123, NPN_SPDY_3, 1);
375 test_host_port_pair, 451 alternate_protocols = impl_.GetAlternateProtocols(test_host_port_pair);
376 1234, 452 ASSERT_EQ(1u, alternate_protocols.size())
377 NPN_SPDY_3,
378 1);
379 alternate = impl_.GetAlternateProtocol(test_host_port_pair);
380 EXPECT_EQ(ALTERNATE_PROTOCOL_BROKEN, alternate.protocol)
381 << "Second attempt should be ignored."; 453 << "Second attempt should be ignored.";
454 EXPECT_EQ(ALTERNATE_PROTOCOL_BROKEN, alternate_protocols[0].protocol);
455
456 impl_.AddAlternateProtocol(test_host_port_pair, 1234, NPN_SPDY_3, 1);
457 alternate_protocols = impl_.GetAlternateProtocols(test_host_port_pair);
458 ASSERT_EQ(2u, alternate_protocols.size()) << "Different port should be fine.";
382 } 459 }
383 460
384 TEST_F(AlternateProtocolServerPropertiesTest, ClearBroken) { 461 TEST_F(AlternateProtocolServerPropertiesTest, ClearBroken) {
385 HostPortPair test_host_port_pair("foo", 80); 462 HostPortPair test_host_port_pair("foo", 80);
386 impl_.SetBrokenAlternateProtocol(test_host_port_pair); 463 impl_.AddAlternateProtocol(test_host_port_pair, 123, NPN_SPDY_3, 1);
464 AlternateProtocolInfo alternate(123, NPN_SPDY_3, 1);
465 impl_.SetBrokenAlternateProtocol(test_host_port_pair, alternate);
387 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair)); 466 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair));
388 AlternateProtocolInfo alternate = 467 AlternateProtocols alternate_protocols =
389 impl_.GetAlternateProtocol(test_host_port_pair); 468 impl_.GetAlternateProtocols(test_host_port_pair);
390 EXPECT_EQ(ALTERNATE_PROTOCOL_BROKEN, alternate.protocol); 469 ASSERT_EQ(1u, alternate_protocols.size());
470 EXPECT_EQ(ALTERNATE_PROTOCOL_BROKEN, alternate_protocols[0].protocol);
391 impl_.ClearAlternateProtocol(test_host_port_pair); 471 impl_.ClearAlternateProtocol(test_host_port_pair);
392 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); 472 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair));
393 } 473 }
394 474
395 TEST_F(AlternateProtocolServerPropertiesTest, Forced) { 475 TEST_F(AlternateProtocolServerPropertiesTest, Forced) {
396 // Test forced alternate protocols. 476 // Test forced alternate protocols.
397 477
398 AlternateProtocolInfo default_protocol(1234, NPN_SPDY_3, 1); 478 AlternateProtocolInfo default_protocol(1234, NPN_SPDY_3, 1);
399 HttpServerPropertiesImpl::ForceAlternateProtocol(default_protocol); 479 HttpServerPropertiesImpl::ForceAlternateProtocol(default_protocol);
400 480
401 // Verify the forced protocol. 481 // Verify the forced protocol.
402 HostPortPair test_host_port_pair("foo", 80); 482 HostPortPair test_host_port_pair("foo", 80);
403 EXPECT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair)); 483 EXPECT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair));
404 AlternateProtocolInfo alternate = 484 AlternateProtocols alternate_protocols =
405 impl_.GetAlternateProtocol(test_host_port_pair); 485 impl_.GetAlternateProtocols(test_host_port_pair);
406 EXPECT_EQ(default_protocol.port, alternate.port); 486 ASSERT_EQ(1u, alternate_protocols.size());
407 EXPECT_EQ(default_protocol.protocol, alternate.protocol); 487 EXPECT_EQ(default_protocol.port, alternate_protocols[0].port);
488 EXPECT_EQ(default_protocol.protocol, alternate_protocols[0].protocol);
408 489
409 // Verify the real protocol overrides the forced protocol. 490 // Verify the real protocol overrides the forced protocol.
410 impl_.SetAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, 1); 491 impl_.AddAlternateProtocol(test_host_port_pair, 443, NPN_SPDY_3, 1);
411 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair)); 492 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair));
412 alternate = impl_.GetAlternateProtocol(test_host_port_pair); 493 alternate_protocols = impl_.GetAlternateProtocols(test_host_port_pair);
413 EXPECT_EQ(443, alternate.port); 494 ASSERT_EQ(1u, alternate_protocols.size());
414 EXPECT_EQ(NPN_SPDY_3, alternate.protocol); 495 EXPECT_EQ(443, alternate_protocols[0].port);
496 EXPECT_EQ(NPN_SPDY_3, alternate_protocols[0].protocol);
415 497
416 // Turn off the static, forced alternate protocol so that tests don't 498 // Turn off the static, forced alternate protocol so that tests don't
417 // have this state. 499 // have this state.
418 HttpServerPropertiesImpl::DisableForcedAlternateProtocol(); 500 HttpServerPropertiesImpl::DisableForcedAlternateProtocol();
419 501
420 // Verify the forced protocol is off. 502 // Verify the forced protocol is off.
421 HostPortPair test_host_port_pair2("bar", 80); 503 HostPortPair test_host_port_pair2("bar", 80);
422 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair2)); 504 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair2));
423 } 505 }
424 506
425 TEST_F(AlternateProtocolServerPropertiesTest, Canonical) { 507 TEST_F(AlternateProtocolServerPropertiesTest, Canonical) {
426 HostPortPair test_host_port_pair("foo.c.youtube.com", 80); 508 HostPortPair test_host_port_pair("foo.c.youtube.com", 80);
427 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); 509 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair));
428 510
429 HostPortPair canonical_port_pair("bar.c.youtube.com", 80); 511 HostPortPair canonical_port_pair("bar.c.youtube.com", 80);
430 EXPECT_FALSE(impl_.HasAlternateProtocol(canonical_port_pair)); 512 EXPECT_FALSE(impl_.HasAlternateProtocol(canonical_port_pair));
431 513
432 AlternateProtocolInfo canonical_protocol(1234, QUIC, 1); 514 AlternateProtocolInfo canonical_protocol(1234, QUIC, 1);
433 515
434 impl_.SetAlternateProtocol(canonical_port_pair, 516 impl_.AddAlternateProtocol(canonical_port_pair,
435 canonical_protocol.port, 517 canonical_protocol.port,
436 canonical_protocol.protocol, 518 canonical_protocol.protocol,
437 1); 519 1);
438 // Verify the forced protocol. 520 // Verify the forced protocol.
439 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair)); 521 ASSERT_TRUE(impl_.HasAlternateProtocol(test_host_port_pair));
440 AlternateProtocolInfo alternate = 522 AlternateProtocols alternate_protocols =
441 impl_.GetAlternateProtocol(test_host_port_pair); 523 impl_.GetAlternateProtocols(test_host_port_pair);
442 EXPECT_EQ(canonical_protocol.port, alternate.port); 524 ASSERT_EQ(1u, alternate_protocols.size());
443 EXPECT_EQ(canonical_protocol.protocol, alternate.protocol); 525 EXPECT_EQ(canonical_protocol.port, alternate_protocols[0].port);
526 EXPECT_EQ(canonical_protocol.protocol, alternate_protocols[0].protocol);
444 527
445 // Verify the canonical suffix. 528 // Verify the canonical suffix.
446 EXPECT_EQ(".c.youtube.com", impl_.GetCanonicalSuffix(test_host_port_pair)); 529 EXPECT_EQ(".c.youtube.com", impl_.GetCanonicalSuffix(test_host_port_pair));
447 EXPECT_EQ(".c.youtube.com", impl_.GetCanonicalSuffix(canonical_port_pair)); 530 EXPECT_EQ(".c.youtube.com", impl_.GetCanonicalSuffix(canonical_port_pair));
448 } 531 }
449 532
450 TEST_F(AlternateProtocolServerPropertiesTest, ClearCanonical) { 533 TEST_F(AlternateProtocolServerPropertiesTest, ClearCanonical) {
451 HostPortPair test_host_port_pair("foo.c.youtube.com", 80); 534 HostPortPair test_host_port_pair("foo.c.youtube.com", 80);
452 HostPortPair canonical_port_pair("bar.c.youtube.com", 80); 535 HostPortPair canonical_port_pair("bar.c.youtube.com", 80);
453 536
454 AlternateProtocolInfo canonical_protocol(1234, QUIC, 1); 537 AlternateProtocolInfo canonical_protocol(1234, QUIC, 1);
455 538
456 impl_.SetAlternateProtocol(canonical_port_pair, 539 impl_.AddAlternateProtocol(canonical_port_pair,
457 canonical_protocol.port, 540 canonical_protocol.port,
458 canonical_protocol.protocol, 541 canonical_protocol.protocol,
459 canonical_protocol.probability); 542 canonical_protocol.probability);
460 543
461 impl_.ClearAlternateProtocol(canonical_port_pair); 544 impl_.ClearAlternateProtocol(canonical_port_pair);
462 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); 545 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair));
463 } 546 }
464 547
465 TEST_F(AlternateProtocolServerPropertiesTest, CanonicalBroken) { 548 TEST_F(AlternateProtocolServerPropertiesTest, CanonicalBroken) {
466 HostPortPair test_host_port_pair("foo.c.youtube.com", 80); 549 HostPortPair test_host_port_pair("foo.c.youtube.com", 80);
467 HostPortPair canonical_port_pair("bar.c.youtube.com", 80); 550 HostPortPair canonical_port_pair("bar.c.youtube.com", 80);
468 551
469 AlternateProtocolInfo canonical_protocol(1234, QUIC, 1); 552 AlternateProtocolInfo canonical_protocol(1234, QUIC, 1);
470 553
471 impl_.SetAlternateProtocol(canonical_port_pair, 554 impl_.AddAlternateProtocol(canonical_port_pair,
472 canonical_protocol.port, 555 canonical_protocol.port,
473 canonical_protocol.protocol, 556 canonical_protocol.protocol,
474 canonical_protocol.probability); 557 canonical_protocol.probability);
475 558
476 impl_.SetBrokenAlternateProtocol(canonical_port_pair); 559 impl_.SetBrokenAlternateProtocol(canonical_port_pair, canonical_protocol);
477 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); 560 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair));
478 } 561 }
479 562
480 TEST_F(AlternateProtocolServerPropertiesTest, ClearWithCanonical) { 563 TEST_F(AlternateProtocolServerPropertiesTest, ClearWithCanonical) {
481 HostPortPair test_host_port_pair("foo.c.youtube.com", 80); 564 HostPortPair test_host_port_pair("foo.c.youtube.com", 80);
482 HostPortPair canonical_port_pair("bar.c.youtube.com", 80); 565 HostPortPair canonical_port_pair("bar.c.youtube.com", 80);
483 566
484 AlternateProtocolInfo canonical_protocol(1234, QUIC, 1); 567 AlternateProtocolInfo canonical_protocol(1234, QUIC, 1);
485 568
486 impl_.SetAlternateProtocol(canonical_port_pair, 569 impl_.AddAlternateProtocol(canonical_port_pair,
487 canonical_protocol.port, 570 canonical_protocol.port,
488 canonical_protocol.protocol, 571 canonical_protocol.protocol,
489 canonical_protocol.probability); 572 canonical_protocol.probability);
490 573
491 impl_.Clear(); 574 impl_.Clear();
492 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair)); 575 EXPECT_FALSE(impl_.HasAlternateProtocol(test_host_port_pair));
493 } 576 }
494 577
495 typedef HttpServerPropertiesImplTest SpdySettingsServerPropertiesTest; 578 typedef HttpServerPropertiesImplTest SpdySettingsServerPropertiesTest;
496 579
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
712 EXPECT_EQ("foo", supports_quic1.address); 795 EXPECT_EQ("foo", supports_quic1.address);
713 796
714 impl_.Clear(); 797 impl_.Clear();
715 SupportsQuic supports_quic2 = impl_.GetSupportsQuic(test_host_port_pair); 798 SupportsQuic supports_quic2 = impl_.GetSupportsQuic(test_host_port_pair);
716 EXPECT_FALSE(supports_quic2.used_quic); 799 EXPECT_FALSE(supports_quic2.used_quic);
717 EXPECT_EQ("", supports_quic2.address); 800 EXPECT_EQ("", supports_quic2.address);
718 } 801 }
719 } // namespace 802 } // namespace
720 803
721 } // namespace net 804 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698