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

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

Issue 2884933002: Remove raw base::DictionaryValue::SetWithoutPathExpansion (Closed)
Patch Set: Include Created 3 years, 7 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_manager.cc ('k') | net/socket/client_socket_pool_base.cc » ('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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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_manager.h" 5 #include "net/http/http_server_properties_manager.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 HttpServerPropertiesManagerTest, 253 HttpServerPropertiesManagerTest,
254 ::testing::ValuesIn(kHttpServerPropertiesVersions)); 254 ::testing::ValuesIn(kHttpServerPropertiesVersions));
255 255
256 TEST_P(HttpServerPropertiesManagerTest, 256 TEST_P(HttpServerPropertiesManagerTest,
257 SingleUpdateForTwoSpdyServerPrefChanges) { 257 SingleUpdateForTwoSpdyServerPrefChanges) {
258 ExpectCacheUpdate(); 258 ExpectCacheUpdate();
259 259
260 // Set up the prefs for https://www.google.com and https://mail.google.com and 260 // Set up the prefs for https://www.google.com and https://mail.google.com and
261 // then set it twice. Only expect a single cache update. 261 // then set it twice. Only expect a single cache update.
262 262
263 base::DictionaryValue* server_pref_dict = new base::DictionaryValue; 263 auto server_pref_dict = base::MakeUnique<base::DictionaryValue>();
264 url::SchemeHostPort google_server("https", "www.google.com", 443); 264 url::SchemeHostPort google_server("https", "www.google.com", 443);
265 url::SchemeHostPort mail_server("https", "mail.google.com", 443); 265 url::SchemeHostPort mail_server("https", "mail.google.com", 443);
266 266
267 // Set supports_spdy for https://www.google.com:443. 267 // Set supports_spdy for https://www.google.com:443.
268 server_pref_dict->SetBoolean("supports_spdy", true); 268 server_pref_dict->SetBoolean("supports_spdy", true);
269 269
270 // Set up alternative_services for https://www.google.com. 270 // Set up alternative_services for https://www.google.com.
271 std::unique_ptr<base::DictionaryValue> alternative_service_dict0( 271 auto alternative_service_dict0 = base::MakeUnique<base::DictionaryValue>();
272 new base::DictionaryValue);
273 alternative_service_dict0->SetInteger("port", 443); 272 alternative_service_dict0->SetInteger("port", 443);
274 alternative_service_dict0->SetString("protocol_str", "h2"); 273 alternative_service_dict0->SetString("protocol_str", "h2");
275 std::unique_ptr<base::DictionaryValue> alternative_service_dict1( 274 auto alternative_service_dict1 = base::MakeUnique<base::DictionaryValue>();
276 new base::DictionaryValue);
277 alternative_service_dict1->SetInteger("port", 1234); 275 alternative_service_dict1->SetInteger("port", 1234);
278 alternative_service_dict1->SetString("protocol_str", "quic"); 276 alternative_service_dict1->SetString("protocol_str", "quic");
279 base::ListValue* alternative_service_list0 = new base::ListValue; 277 auto alternative_service_list0 = base::MakeUnique<base::ListValue>();
280 alternative_service_list0->Append(std::move(alternative_service_dict0)); 278 alternative_service_list0->Append(std::move(alternative_service_dict0));
281 alternative_service_list0->Append(std::move(alternative_service_dict1)); 279 alternative_service_list0->Append(std::move(alternative_service_dict1));
282 server_pref_dict->SetWithoutPathExpansion("alternative_service", 280 server_pref_dict->SetWithoutPathExpansion(
283 alternative_service_list0); 281 "alternative_service", std::move(alternative_service_list0));
284 282
285 // Set up ServerNetworkStats for https://www.google.com. 283 // Set up ServerNetworkStats for https://www.google.com.
286 base::DictionaryValue* stats = new base::DictionaryValue; 284 auto stats = base::MakeUnique<base::DictionaryValue>();
287 stats->SetInteger("srtt", 10); 285 stats->SetInteger("srtt", 10);
288 server_pref_dict->SetWithoutPathExpansion("network_stats", stats); 286 server_pref_dict->SetWithoutPathExpansion("network_stats", std::move(stats));
289 287
290 // Set the server preference for https://www.google.com. 288 // Set the server preference for https://www.google.com.
291 auto servers_dict = base::MakeUnique<base::DictionaryValue>(); 289 auto servers_dict = base::MakeUnique<base::DictionaryValue>();
292 servers_dict->SetWithoutPathExpansion( 290 servers_dict->SetWithoutPathExpansion(
293 GetParam() >= 5 ? "https://www.google.com" : "www.google.com:443", 291 GetParam() >= 5 ? "https://www.google.com" : "www.google.com:443",
294 server_pref_dict); 292 std::move(server_pref_dict));
295 base::ListValue* servers_list = nullptr; 293 std::unique_ptr<base::ListValue> servers_list;
296 if (GetParam() >= 4) { 294 if (GetParam() >= 4) {
297 servers_list = new base::ListValue; 295 servers_list = base::MakeUnique<base::ListValue>();
298 servers_list->AppendIfNotPresent(std::move(servers_dict)); 296 servers_list->Append(std::move(servers_dict));
299 servers_dict = base::MakeUnique<base::DictionaryValue>(); 297 servers_dict = base::MakeUnique<base::DictionaryValue>();
300 } 298 }
301 299
302 // Set the preference for mail.google.com server. 300 // Set the preference for mail.google.com server.
303 base::DictionaryValue* server_pref_dict1 = new base::DictionaryValue; 301 auto server_pref_dict1 = base::MakeUnique<base::DictionaryValue>();
304 302
305 // Set supports_spdy for https://mail.google.com. 303 // Set supports_spdy for https://mail.google.com.
306 server_pref_dict1->SetBoolean("supports_spdy", true); 304 server_pref_dict1->SetBoolean("supports_spdy", true);
307 305
308 // Set up alternative_services for https://mail.google.com. 306 // Set up alternative_services for https://mail.google.com.
309 std::unique_ptr<base::DictionaryValue> alternative_service_dict2( 307 auto alternative_service_dict2 = base::MakeUnique<base::DictionaryValue>();
310 new base::DictionaryValue);
311 alternative_service_dict2->SetString("protocol_str", "h2"); 308 alternative_service_dict2->SetString("protocol_str", "h2");
312 alternative_service_dict2->SetInteger("port", 444); 309 alternative_service_dict2->SetInteger("port", 444);
313 base::ListValue* alternative_service_list1 = new base::ListValue; 310 auto alternative_service_list1 = base::MakeUnique<base::ListValue>();
314 alternative_service_list1->Append(std::move(alternative_service_dict2)); 311 alternative_service_list1->Append(std::move(alternative_service_dict2));
315 server_pref_dict1->SetWithoutPathExpansion("alternative_service", 312 server_pref_dict1->SetWithoutPathExpansion(
316 alternative_service_list1); 313 "alternative_service", std::move(alternative_service_list1));
317 314
318 // Set up ServerNetworkStats for https://mail.google.com and it is the MRU 315 // Set up ServerNetworkStats for https://mail.google.com and it is the MRU
319 // server. 316 // server.
320 base::DictionaryValue* stats1 = new base::DictionaryValue; 317 auto stats1 = base::MakeUnique<base::DictionaryValue>();
321 stats1->SetInteger("srtt", 20); 318 stats1->SetInteger("srtt", 20);
322 server_pref_dict1->SetWithoutPathExpansion("network_stats", stats1); 319 server_pref_dict1->SetWithoutPathExpansion("network_stats",
320 std::move(stats1));
323 // Set the server preference for https://mail.google.com. 321 // Set the server preference for https://mail.google.com.
324 servers_dict->SetWithoutPathExpansion( 322 servers_dict->SetWithoutPathExpansion(
325 GetParam() >= 5 ? "https://mail.google.com" : "mail.google.com:443", 323 GetParam() >= 5 ? "https://mail.google.com" : "mail.google.com:443",
326 server_pref_dict1); 324 std::move(server_pref_dict1));
327 base::DictionaryValue http_server_properties_dict; 325 base::DictionaryValue http_server_properties_dict;
328 if (GetParam() >= 4) { 326 if (GetParam() >= 4) {
329 servers_list->AppendIfNotPresent(std::move(servers_dict)); 327 servers_list->AppendIfNotPresent(std::move(servers_dict));
330 if (GetParam() == 5) { 328 if (GetParam() == 5) {
331 HttpServerPropertiesManager::SetVersion(&http_server_properties_dict, -1); 329 HttpServerPropertiesManager::SetVersion(&http_server_properties_dict, -1);
332 } else { 330 } else {
333 HttpServerPropertiesManager::SetVersion(&http_server_properties_dict, 331 HttpServerPropertiesManager::SetVersion(&http_server_properties_dict,
334 GetParam()); 332 GetParam());
335 } 333 }
336 http_server_properties_dict.SetWithoutPathExpansion("servers", 334 http_server_properties_dict.SetWithoutPathExpansion(
337 servers_list); 335 "servers", std::move(servers_list));
338 } else { 336 } else {
339 HttpServerPropertiesManager::SetVersion(&http_server_properties_dict, 337 HttpServerPropertiesManager::SetVersion(&http_server_properties_dict,
340 GetParam()); 338 GetParam());
341 http_server_properties_dict.SetWithoutPathExpansion( 339 http_server_properties_dict.SetWithoutPathExpansion(
342 "servers", std::move(servers_dict)); 340 "servers", std::move(servers_dict));
343 } 341 }
344 base::DictionaryValue* supports_quic = new base::DictionaryValue; 342 auto supports_quic = base::MakeUnique<base::DictionaryValue>();
345 supports_quic->SetBoolean("used_quic", true); 343 supports_quic->SetBoolean("used_quic", true);
346 supports_quic->SetString("address", "127.0.0.1"); 344 supports_quic->SetString("address", "127.0.0.1");
347 http_server_properties_dict.SetWithoutPathExpansion("supports_quic", 345 http_server_properties_dict.SetWithoutPathExpansion("supports_quic",
348 supports_quic); 346 std::move(supports_quic));
349 347
350 // Set quic_server_info for https://www.google.com, https://mail.google.com 348 // Set quic_server_info for https://www.google.com, https://mail.google.com
351 // and https://play.google.com and verify the MRU. 349 // and https://play.google.com and verify the MRU.
352 http_server_props_manager_->SetMaxServerConfigsStoredInProperties(3); 350 http_server_props_manager_->SetMaxServerConfigsStoredInProperties(3);
353 base::DictionaryValue* quic_servers_dict = new base::DictionaryValue; 351 auto quic_servers_dict = base::MakeUnique<base::DictionaryValue>();
354 base::DictionaryValue* quic_server_pref_dict1 = new base::DictionaryValue; 352 auto quic_server_pref_dict1 = base::MakeUnique<base::DictionaryValue>();
355 std::string quic_server_info1("quic_server_info1"); 353 std::string quic_server_info1("quic_server_info1");
356 quic_server_pref_dict1->SetStringWithoutPathExpansion("server_info", 354 quic_server_pref_dict1->SetStringWithoutPathExpansion("server_info",
357 quic_server_info1); 355 quic_server_info1);
358 base::DictionaryValue* quic_server_pref_dict2 = new base::DictionaryValue; 356 auto quic_server_pref_dict2 = base::MakeUnique<base::DictionaryValue>();
359 std::string quic_server_info2("quic_server_info2"); 357 std::string quic_server_info2("quic_server_info2");
360 quic_server_pref_dict2->SetStringWithoutPathExpansion("server_info", 358 quic_server_pref_dict2->SetStringWithoutPathExpansion("server_info",
361 quic_server_info2); 359 quic_server_info2);
362 base::DictionaryValue* quic_server_pref_dict3 = new base::DictionaryValue; 360 auto quic_server_pref_dict3 = base::MakeUnique<base::DictionaryValue>();
363 std::string quic_server_info3("quic_server_info3"); 361 std::string quic_server_info3("quic_server_info3");
364 quic_server_pref_dict3->SetStringWithoutPathExpansion("server_info", 362 quic_server_pref_dict3->SetStringWithoutPathExpansion("server_info",
365 quic_server_info3); 363 quic_server_info3);
366 // Set the quic_server_info1 for https://www.google.com. 364 // Set the quic_server_info1 for https://www.google.com.
367 QuicServerId google_quic_server_id("www.google.com", 443); 365 QuicServerId google_quic_server_id("www.google.com", 443);
368 quic_servers_dict->SetWithoutPathExpansion(google_quic_server_id.ToString(), 366 quic_servers_dict->SetWithoutPathExpansion(google_quic_server_id.ToString(),
369 quic_server_pref_dict1); 367 std::move(quic_server_pref_dict1));
370 // Set the quic_server_info2 for https://mail.google.com. 368 // Set the quic_server_info2 for https://mail.google.com.
371 QuicServerId mail_quic_server_id("mail.google.com", 443); 369 QuicServerId mail_quic_server_id("mail.google.com", 443);
372 quic_servers_dict->SetWithoutPathExpansion(mail_quic_server_id.ToString(), 370 quic_servers_dict->SetWithoutPathExpansion(mail_quic_server_id.ToString(),
373 quic_server_pref_dict2); 371 std::move(quic_server_pref_dict2));
374 // Set the quic_server_info3 for https://play.google.com. 372 // Set the quic_server_info3 for https://play.google.com.
375 QuicServerId play_quic_server_id("play.google.com", 443); 373 QuicServerId play_quic_server_id("play.google.com", 443);
376 quic_servers_dict->SetWithoutPathExpansion(play_quic_server_id.ToString(), 374 quic_servers_dict->SetWithoutPathExpansion(play_quic_server_id.ToString(),
377 quic_server_pref_dict3); 375 std::move(quic_server_pref_dict3));
378 http_server_properties_dict.SetWithoutPathExpansion("quic_servers", 376 http_server_properties_dict.SetWithoutPathExpansion(
379 quic_servers_dict); 377 "quic_servers", std::move(quic_servers_dict));
380 378
381 // Set the same value for kHttpServerProperties multiple times. 379 // Set the same value for kHttpServerProperties multiple times.
382 pref_delegate_->SetPrefs(http_server_properties_dict); 380 pref_delegate_->SetPrefs(http_server_properties_dict);
383 pref_delegate_->SetPrefs(http_server_properties_dict); 381 pref_delegate_->SetPrefs(http_server_properties_dict);
384 382
385 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask()); 383 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask());
386 EXPECT_FALSE(net_test_task_runner_->HasPendingTask()); 384 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
387 pref_test_task_runner_->FastForwardUntilNoTasksRemain(); 385 pref_test_task_runner_->FastForwardUntilNoTasksRemain();
388 EXPECT_TRUE(net_test_task_runner_->HasPendingTask()); 386 EXPECT_TRUE(net_test_task_runner_->HasPendingTask());
389 net_test_task_runner_->FastForwardUntilNoTasksRemain(); 387 net_test_task_runner_->FastForwardUntilNoTasksRemain();
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
475 EXPECT_EQ(quic_server_info3, *http_server_props_manager_->GetQuicServerInfo( 473 EXPECT_EQ(quic_server_info3, *http_server_props_manager_->GetQuicServerInfo(
476 play_quic_server_id)); 474 play_quic_server_id));
477 } 475 }
478 476
479 TEST_P(HttpServerPropertiesManagerTest, BadCachedHostPortPair) { 477 TEST_P(HttpServerPropertiesManagerTest, BadCachedHostPortPair) {
480 ExpectCacheUpdate(); 478 ExpectCacheUpdate();
481 // The prefs are automatically updated in the case corruption is detected. 479 // The prefs are automatically updated in the case corruption is detected.
482 ExpectPrefsUpdate(1); 480 ExpectPrefsUpdate(1);
483 ExpectScheduleUpdatePrefsOnNetworkThread(); 481 ExpectScheduleUpdatePrefsOnNetworkThread();
484 482
485 base::DictionaryValue* server_pref_dict = new base::DictionaryValue; 483 auto server_pref_dict = base::MakeUnique<base::DictionaryValue>();
486 484
487 // Set supports_spdy for www.google.com:65536. 485 // Set supports_spdy for www.google.com:65536.
488 server_pref_dict->SetBoolean("supports_spdy", true); 486 server_pref_dict->SetBoolean("supports_spdy", true);
489 487
490 // Set up alternative_service for www.google.com:65536. 488 // Set up alternative_service for www.google.com:65536.
491 std::unique_ptr<base::DictionaryValue> alternative_service_dict( 489 auto alternative_service_dict = base::MakeUnique<base::DictionaryValue>();
492 new base::DictionaryValue);
493 alternative_service_dict->SetString("protocol_str", "h2"); 490 alternative_service_dict->SetString("protocol_str", "h2");
494 alternative_service_dict->SetInteger("port", 80); 491 alternative_service_dict->SetInteger("port", 80);
495 base::ListValue* alternative_service_list = new base::ListValue; 492 auto alternative_service_list = base::MakeUnique<base::ListValue>();
496 alternative_service_list->Append(std::move(alternative_service_dict)); 493 alternative_service_list->Append(std::move(alternative_service_dict));
497 server_pref_dict->SetWithoutPathExpansion("alternative_service", 494 server_pref_dict->SetWithoutPathExpansion(
498 alternative_service_list); 495 "alternative_service", std::move(alternative_service_list));
499 496
500 // Set up ServerNetworkStats for www.google.com:65536. 497 // Set up ServerNetworkStats for www.google.com:65536.
501 base::DictionaryValue* stats = new base::DictionaryValue; 498 auto stats = base::MakeUnique<base::DictionaryValue>();
502 stats->SetInteger("srtt", 10); 499 stats->SetInteger("srtt", 10);
503 server_pref_dict->SetWithoutPathExpansion("network_stats", stats); 500 server_pref_dict->SetWithoutPathExpansion("network_stats", std::move(stats));
504 501
505 // Set the server preference for www.google.com:65536. 502 // Set the server preference for www.google.com:65536.
506 auto servers_dict = base::MakeUnique<base::DictionaryValue>(); 503 auto servers_dict = base::MakeUnique<base::DictionaryValue>();
507 servers_dict->SetWithoutPathExpansion("www.google.com:65536", 504 servers_dict->SetWithoutPathExpansion("www.google.com:65536",
508 server_pref_dict); 505 std::move(server_pref_dict));
509 base::DictionaryValue http_server_properties_dict; 506 base::DictionaryValue http_server_properties_dict;
510 if (GetParam() >= 4) { 507 if (GetParam() >= 4) {
511 base::ListValue* servers_list = new base::ListValue; 508 auto servers_list = base::MakeUnique<base::ListValue>();
512 servers_list->AppendIfNotPresent(std::move(servers_dict)); 509 servers_list->Append(std::move(servers_dict));
513 if (GetParam() == 5) { 510 if (GetParam() == 5) {
514 HttpServerPropertiesManager::SetVersion(&http_server_properties_dict, -1); 511 HttpServerPropertiesManager::SetVersion(&http_server_properties_dict, -1);
515 } else { 512 } else {
516 HttpServerPropertiesManager::SetVersion(&http_server_properties_dict, 513 HttpServerPropertiesManager::SetVersion(&http_server_properties_dict,
517 GetParam()); 514 GetParam());
518 } 515 }
519 http_server_properties_dict.SetWithoutPathExpansion("servers", 516 http_server_properties_dict.SetWithoutPathExpansion(
520 servers_list); 517 "servers", std::move(servers_list));
521 } else { 518 } else {
522 HttpServerPropertiesManager::SetVersion(&http_server_properties_dict, 519 HttpServerPropertiesManager::SetVersion(&http_server_properties_dict,
523 GetParam()); 520 GetParam());
524 http_server_properties_dict.SetWithoutPathExpansion( 521 http_server_properties_dict.SetWithoutPathExpansion(
525 "servers", std::move(servers_dict)); 522 "servers", std::move(servers_dict));
526 } 523 }
527 524
528 // Set quic_server_info for www.google.com:65536. 525 // Set quic_server_info for www.google.com:65536.
529 base::DictionaryValue* quic_servers_dict = new base::DictionaryValue; 526 auto quic_servers_dict = base::MakeUnique<base::DictionaryValue>();
530 base::DictionaryValue* quic_server_pref_dict1 = new base::DictionaryValue; 527 auto quic_server_pref_dict1 = base::MakeUnique<base::DictionaryValue>();
531 quic_server_pref_dict1->SetStringWithoutPathExpansion("server_info", 528 quic_server_pref_dict1->SetStringWithoutPathExpansion("server_info",
532 "quic_server_info1"); 529 "quic_server_info1");
533 quic_servers_dict->SetWithoutPathExpansion("http://mail.google.com:65536", 530 quic_servers_dict->SetWithoutPathExpansion("http://mail.google.com:65536",
534 quic_server_pref_dict1); 531 std::move(quic_server_pref_dict1));
535 532
536 http_server_properties_dict.SetWithoutPathExpansion("quic_servers", 533 http_server_properties_dict.SetWithoutPathExpansion(
537 quic_servers_dict); 534 "quic_servers", std::move(quic_servers_dict));
538 535
539 // Set up the pref. 536 // Set up the pref.
540 pref_delegate_->SetPrefs(http_server_properties_dict); 537 pref_delegate_->SetPrefs(http_server_properties_dict);
541 538
542 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask()); 539 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask());
543 EXPECT_FALSE(net_test_task_runner_->HasPendingTask()); 540 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
544 pref_test_task_runner_->FastForwardUntilNoTasksRemain(); 541 pref_test_task_runner_->FastForwardUntilNoTasksRemain();
545 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); 542 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
546 EXPECT_TRUE(net_test_task_runner_->HasPendingTask()); 543 EXPECT_TRUE(net_test_task_runner_->HasPendingTask());
547 net_test_task_runner_->FastForwardUntilNoTasksRemain(); 544 net_test_task_runner_->FastForwardUntilNoTasksRemain();
(...skipping 17 matching lines...) Expand all
565 EXPECT_EQ(nullptr, stats1); 562 EXPECT_EQ(nullptr, stats1);
566 EXPECT_EQ(0u, http_server_props_manager_->quic_server_info_map().size()); 563 EXPECT_EQ(0u, http_server_props_manager_->quic_server_info_map().size());
567 } 564 }
568 565
569 TEST_P(HttpServerPropertiesManagerTest, BadCachedAltProtocolPort) { 566 TEST_P(HttpServerPropertiesManagerTest, BadCachedAltProtocolPort) {
570 ExpectCacheUpdate(); 567 ExpectCacheUpdate();
571 // The prefs are automatically updated in the case corruption is detected. 568 // The prefs are automatically updated in the case corruption is detected.
572 ExpectPrefsUpdate(1); 569 ExpectPrefsUpdate(1);
573 ExpectScheduleUpdatePrefsOnNetworkThread(); 570 ExpectScheduleUpdatePrefsOnNetworkThread();
574 571
575 base::DictionaryValue* server_pref_dict = new base::DictionaryValue; 572 auto server_pref_dict = base::MakeUnique<base::DictionaryValue>();
576 573
577 // Set supports_spdy for www.google.com:80. 574 // Set supports_spdy for www.google.com:80.
578 server_pref_dict->SetBoolean("supports_spdy", true); 575 server_pref_dict->SetBoolean("supports_spdy", true);
579 576
580 // Set up alternative_service for www.google.com:80. 577 // Set up alternative_service for www.google.com:80.
581 std::unique_ptr<base::DictionaryValue> alternative_service_dict( 578 auto alternative_service_dict = base::MakeUnique<base::DictionaryValue>();
582 new base::DictionaryValue);
583 alternative_service_dict->SetString("protocol_str", "h2"); 579 alternative_service_dict->SetString("protocol_str", "h2");
584 alternative_service_dict->SetInteger("port", 65536); 580 alternative_service_dict->SetInteger("port", 65536);
585 base::ListValue* alternative_service_list = new base::ListValue; 581 auto alternative_service_list = base::MakeUnique<base::ListValue>();
586 alternative_service_list->Append(std::move(alternative_service_dict)); 582 alternative_service_list->Append(std::move(alternative_service_dict));
587 server_pref_dict->SetWithoutPathExpansion("alternative_service", 583 server_pref_dict->SetWithoutPathExpansion(
588 alternative_service_list); 584 "alternative_service", std::move(alternative_service_list));
589 585
590 // Set the server preference for www.google.com:80. 586 // Set the server preference for www.google.com:80.
591 auto servers_dict = base::MakeUnique<base::DictionaryValue>(); 587 auto servers_dict = base::MakeUnique<base::DictionaryValue>();
592 servers_dict->SetWithoutPathExpansion("www.google.com:80", server_pref_dict); 588 servers_dict->SetWithoutPathExpansion("www.google.com:80",
589 std::move(server_pref_dict));
593 base::DictionaryValue http_server_properties_dict; 590 base::DictionaryValue http_server_properties_dict;
594 if (GetParam() >= 4) { 591 if (GetParam() >= 4) {
595 base::ListValue* servers_list = new base::ListValue; 592 auto servers_list = base::MakeUnique<base::ListValue>();
596 servers_list->AppendIfNotPresent(std::move(servers_dict)); 593 servers_list->Append(std::move(servers_dict));
597 if (GetParam() == 5) { 594 if (GetParam() == 5) {
598 HttpServerPropertiesManager::SetVersion(&http_server_properties_dict, -1); 595 HttpServerPropertiesManager::SetVersion(&http_server_properties_dict, -1);
599 } else { 596 } else {
600 HttpServerPropertiesManager::SetVersion(&http_server_properties_dict, 597 HttpServerPropertiesManager::SetVersion(&http_server_properties_dict,
601 GetParam()); 598 GetParam());
602 } 599 }
603 http_server_properties_dict.SetWithoutPathExpansion("servers", 600 http_server_properties_dict.SetWithoutPathExpansion(
604 servers_list); 601 "servers", std::move(servers_list));
605 } else { 602 } else {
606 HttpServerPropertiesManager::SetVersion(&http_server_properties_dict, 603 HttpServerPropertiesManager::SetVersion(&http_server_properties_dict,
607 GetParam()); 604 GetParam());
608 http_server_properties_dict.SetWithoutPathExpansion( 605 http_server_properties_dict.SetWithoutPathExpansion(
609 "servers", std::move(servers_dict)); 606 "servers", std::move(servers_dict));
610 } 607 }
611 608
612 // Set up the pref. 609 // Set up the pref.
613 pref_delegate_->SetPrefs(http_server_properties_dict); 610 pref_delegate_->SetPrefs(http_server_properties_dict);
614 611
(...skipping 432 matching lines...) Expand 10 before | Expand all | Expand 10 after
1047 1044
1048 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 1045 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
1049 } 1046 }
1050 1047
1051 // https://crbug.com/444956: Add 200 alternative_service servers followed by 1048 // https://crbug.com/444956: Add 200 alternative_service servers followed by
1052 // supports_quic and verify we have read supports_quic from prefs. 1049 // supports_quic and verify we have read supports_quic from prefs.
1053 TEST_P(HttpServerPropertiesManagerTest, BadSupportsQuic) { 1050 TEST_P(HttpServerPropertiesManagerTest, BadSupportsQuic) {
1054 ExpectCacheUpdate(); 1051 ExpectCacheUpdate();
1055 1052
1056 auto servers_dict = base::MakeUnique<base::DictionaryValue>(); 1053 auto servers_dict = base::MakeUnique<base::DictionaryValue>();
1057 base::ListValue* servers_list = nullptr; 1054 std::unique_ptr<base::ListValue> servers_list;
1058 if (GetParam() >= 4) 1055 if (GetParam() >= 4)
1059 servers_list = new base::ListValue; 1056 servers_list = base::MakeUnique<base::ListValue>();
1060 1057
1061 for (int i = 1; i <= 200; ++i) { 1058 for (int i = 1; i <= 200; ++i) {
1062 // Set up alternative_service for www.google.com:i. 1059 // Set up alternative_service for www.google.com:i.
1063 std::unique_ptr<base::DictionaryValue> alternative_service_dict( 1060 auto alternative_service_dict = base::MakeUnique<base::DictionaryValue>();
1064 new base::DictionaryValue);
1065 alternative_service_dict->SetString("protocol_str", "quic"); 1061 alternative_service_dict->SetString("protocol_str", "quic");
1066 alternative_service_dict->SetInteger("port", i); 1062 alternative_service_dict->SetInteger("port", i);
1067 base::ListValue* alternative_service_list = new base::ListValue; 1063 auto alternative_service_list = base::MakeUnique<base::ListValue>();
1068 alternative_service_list->Append(std::move(alternative_service_dict)); 1064 alternative_service_list->Append(std::move(alternative_service_dict));
1069 base::DictionaryValue* server_pref_dict = new base::DictionaryValue; 1065 auto server_pref_dict = base::MakeUnique<base::DictionaryValue>();
1070 server_pref_dict->SetWithoutPathExpansion("alternative_service", 1066 server_pref_dict->SetWithoutPathExpansion(
1071 alternative_service_list); 1067 "alternative_service", std::move(alternative_service_list));
1072 if (GetParam() >= 5) { 1068 if (GetParam() >= 5) {
1073 servers_dict->SetWithoutPathExpansion( 1069 servers_dict->SetWithoutPathExpansion(
1074 StringPrintf("https://www.google.com:%d", i), server_pref_dict); 1070 StringPrintf("https://www.google.com:%d", i),
1071 std::move(server_pref_dict));
1075 } else { 1072 } else {
1076 servers_dict->SetWithoutPathExpansion( 1073 servers_dict->SetWithoutPathExpansion(
1077 StringPrintf("www.google.com:%d", i), server_pref_dict); 1074 StringPrintf("www.google.com:%d", i), std::move(server_pref_dict));
1078 } 1075 }
1079 if (GetParam() >= 4) { 1076 if (GetParam() >= 4) {
1080 servers_list->AppendIfNotPresent(std::move(servers_dict)); 1077 servers_list->AppendIfNotPresent(std::move(servers_dict));
1081 servers_dict = base::MakeUnique<base::DictionaryValue>(); 1078 servers_dict = base::MakeUnique<base::DictionaryValue>();
1082 } 1079 }
1083 } 1080 }
1084 1081
1085 // Set the server preference for http://mail.google.com server. 1082 // Set the server preference for http://mail.google.com server.
1086 base::DictionaryValue* server_pref_dict1 = new base::DictionaryValue; 1083 auto server_pref_dict1 = base::MakeUnique<base::DictionaryValue>();
1087 if (GetParam() >= 5) { 1084 if (GetParam() >= 5) {
1088 servers_dict->SetWithoutPathExpansion("https://mail.google.com", 1085 servers_dict->SetWithoutPathExpansion("https://mail.google.com",
1089 server_pref_dict1); 1086 std::move(server_pref_dict1));
1090 } else { 1087 } else {
1091 servers_dict->SetWithoutPathExpansion("mail.google.com:80", 1088 servers_dict->SetWithoutPathExpansion("mail.google.com:80",
1092 server_pref_dict1); 1089 std::move(server_pref_dict1));
1093 } 1090 }
1094 base::DictionaryValue http_server_properties_dict; 1091 base::DictionaryValue http_server_properties_dict;
1095 if (GetParam() >= 4) { 1092 if (GetParam() >= 4) {
1096 servers_list->AppendIfNotPresent(std::move(servers_dict)); 1093 servers_list->AppendIfNotPresent(std::move(servers_dict));
1097 if (GetParam() == 5) { 1094 if (GetParam() == 5) {
1098 HttpServerPropertiesManager::SetVersion(&http_server_properties_dict, -1); 1095 HttpServerPropertiesManager::SetVersion(&http_server_properties_dict, -1);
1099 } else { 1096 } else {
1100 HttpServerPropertiesManager::SetVersion(&http_server_properties_dict, 1097 HttpServerPropertiesManager::SetVersion(&http_server_properties_dict,
1101 GetParam()); 1098 GetParam());
1102 } 1099 }
1103 http_server_properties_dict.SetWithoutPathExpansion("servers", 1100 http_server_properties_dict.SetWithoutPathExpansion(
1104 servers_list); 1101 "servers", std::move(servers_list));
1105 } else { 1102 } else {
1106 HttpServerPropertiesManager::SetVersion(&http_server_properties_dict, 1103 HttpServerPropertiesManager::SetVersion(&http_server_properties_dict,
1107 GetParam()); 1104 GetParam());
1108 http_server_properties_dict.SetWithoutPathExpansion( 1105 http_server_properties_dict.SetWithoutPathExpansion(
1109 "servers", std::move(servers_dict)); 1106 "servers", std::move(servers_dict));
1110 } 1107 }
1111 1108
1112 // Set up SupportsQuic for 127.0.0.1 1109 // Set up SupportsQuic for 127.0.0.1
1113 base::DictionaryValue* supports_quic = new base::DictionaryValue; 1110 auto supports_quic = base::MakeUnique<base::DictionaryValue>();
1114 supports_quic->SetBoolean("used_quic", true); 1111 supports_quic->SetBoolean("used_quic", true);
1115 supports_quic->SetString("address", "127.0.0.1"); 1112 supports_quic->SetString("address", "127.0.0.1");
1116 http_server_properties_dict.SetWithoutPathExpansion("supports_quic", 1113 http_server_properties_dict.SetWithoutPathExpansion("supports_quic",
1117 supports_quic); 1114 std::move(supports_quic));
1118 1115
1119 // Set up the pref. 1116 // Set up the pref.
1120 pref_delegate_->SetPrefs(http_server_properties_dict); 1117 pref_delegate_->SetPrefs(http_server_properties_dict);
1121 1118
1122 EXPECT_FALSE(net_test_task_runner_->HasPendingTask()); 1119 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
1123 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask()); 1120 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask());
1124 pref_test_task_runner_->FastForwardUntilNoTasksRemain(); 1121 pref_test_task_runner_->FastForwardUntilNoTasksRemain();
1125 EXPECT_TRUE(net_test_task_runner_->HasPendingTask()); 1122 EXPECT_TRUE(net_test_task_runner_->HasPendingTask());
1126 net_test_task_runner_->FastForwardUntilNoTasksRemain(); 1123 net_test_task_runner_->FastForwardUntilNoTasksRemain();
1127 EXPECT_FALSE(net_test_task_runner_->HasPendingTask()); 1124 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after
1413 const base::DictionaryValue* altsvc_entry; 1410 const base::DictionaryValue* altsvc_entry;
1414 ASSERT_TRUE(altsvc_list->GetDictionary(0, &altsvc_entry)); 1411 ASSERT_TRUE(altsvc_list->GetDictionary(0, &altsvc_entry));
1415 1412
1416 std::string hostname; 1413 std::string hostname;
1417 ASSERT_TRUE(altsvc_entry->GetString("host", &hostname)); 1414 ASSERT_TRUE(altsvc_entry->GetString("host", &hostname));
1418 EXPECT_EQ("valid.example.com", hostname); 1415 EXPECT_EQ("valid.example.com", hostname);
1419 } 1416 }
1420 1417
1421 // Test that expired alternative service entries on disk are ignored. 1418 // Test that expired alternative service entries on disk are ignored.
1422 TEST_P(HttpServerPropertiesManagerTest, DoNotLoadExpiredAlternativeService) { 1419 TEST_P(HttpServerPropertiesManagerTest, DoNotLoadExpiredAlternativeService) {
1423 std::unique_ptr<base::ListValue> alternative_service_list( 1420 auto alternative_service_list = base::MakeUnique<base::ListValue>();
1424 new base::ListValue); 1421 auto expired_dict = base::MakeUnique<base::DictionaryValue>();
1425 std::unique_ptr<base::DictionaryValue> expired_dict(
1426 new base::DictionaryValue);
1427 expired_dict->SetString("protocol_str", "h2"); 1422 expired_dict->SetString("protocol_str", "h2");
1428 expired_dict->SetString("host", "expired.example.com"); 1423 expired_dict->SetString("host", "expired.example.com");
1429 expired_dict->SetInteger("port", 443); 1424 expired_dict->SetInteger("port", 443);
1430 base::Time time_one_day_ago = 1425 base::Time time_one_day_ago =
1431 base::Time::Now() - base::TimeDelta::FromDays(1); 1426 base::Time::Now() - base::TimeDelta::FromDays(1);
1432 expired_dict->SetString( 1427 expired_dict->SetString(
1433 "expiration", base::Int64ToString(time_one_day_ago.ToInternalValue())); 1428 "expiration", base::Int64ToString(time_one_day_ago.ToInternalValue()));
1434 alternative_service_list->Append(std::move(expired_dict)); 1429 alternative_service_list->Append(std::move(expired_dict));
1435 1430
1436 std::unique_ptr<base::DictionaryValue> valid_dict(new base::DictionaryValue); 1431 auto valid_dict = base::MakeUnique<base::DictionaryValue>();
1437 valid_dict->SetString("protocol_str", "h2"); 1432 valid_dict->SetString("protocol_str", "h2");
1438 valid_dict->SetString("host", "valid.example.com"); 1433 valid_dict->SetString("host", "valid.example.com");
1439 valid_dict->SetInteger("port", 443); 1434 valid_dict->SetInteger("port", 443);
1440 valid_dict->SetString( 1435 valid_dict->SetString(
1441 "expiration", base::Int64ToString(one_day_from_now_.ToInternalValue())); 1436 "expiration", base::Int64ToString(one_day_from_now_.ToInternalValue()));
1442 alternative_service_list->Append(std::move(valid_dict)); 1437 alternative_service_list->Append(std::move(valid_dict));
1443 1438
1444 base::DictionaryValue server_pref_dict; 1439 base::DictionaryValue server_pref_dict;
1445 server_pref_dict.SetWithoutPathExpansion("alternative_service", 1440 server_pref_dict.SetWithoutPathExpansion("alternative_service",
1446 alternative_service_list.release()); 1441 std::move(alternative_service_list));
1447 1442
1448 const url::SchemeHostPort server("https", "example.com", 443); 1443 const url::SchemeHostPort server("https", "example.com", 443);
1449 AlternativeServiceMap alternative_service_map(/*max_size=*/5); 1444 AlternativeServiceMap alternative_service_map(/*max_size=*/5);
1450 ASSERT_TRUE(http_server_props_manager_->AddToAlternativeServiceMap( 1445 ASSERT_TRUE(http_server_props_manager_->AddToAlternativeServiceMap(
1451 server, server_pref_dict, &alternative_service_map)); 1446 server, server_pref_dict, &alternative_service_map));
1452 1447
1453 AlternativeServiceMap::iterator it = alternative_service_map.Get(server); 1448 AlternativeServiceMap::iterator it = alternative_service_map.Get(server);
1454 ASSERT_NE(alternative_service_map.end(), it); 1449 ASSERT_NE(alternative_service_map.end(), it);
1455 AlternativeServiceInfoVector alternative_service_info_vector = it->second; 1450 AlternativeServiceInfoVector alternative_service_info_vector = it->second;
1456 ASSERT_EQ(1u, alternative_service_info_vector.size()); 1451 ASSERT_EQ(1u, alternative_service_info_vector.size());
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
1558 pref_test_task_runner_->FastForwardUntilNoTasksRemain(); 1553 pref_test_task_runner_->FastForwardUntilNoTasksRemain();
1559 EXPECT_FALSE(net_test_task_runner_->HasPendingTask()); 1554 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
1560 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); 1555 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
1561 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 1556 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
1562 http_server_props_manager_.reset(); 1557 http_server_props_manager_.reset();
1563 EXPECT_FALSE(net_test_task_runner_->HasPendingTask()); 1558 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
1564 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); 1559 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
1565 } 1560 }
1566 1561
1567 } // namespace net 1562 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_server_properties_manager.cc ('k') | net/socket/client_socket_pool_base.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698