| OLD | NEW |
| 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 "base/basictypes.h" | |
| 8 #include "base/json/json_reader.h" | 7 #include "base/json/json_reader.h" |
| 9 #include "base/json/json_writer.h" | 8 #include "base/json/json_writer.h" |
| 9 #include "base/macros.h" |
| 10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
| 11 #include "base/prefs/pref_registry_simple.h" | 11 #include "base/prefs/pref_registry_simple.h" |
| 12 #include "base/prefs/testing_pref_service.h" | 12 #include "base/prefs/testing_pref_service.h" |
| 13 #include "base/run_loop.h" | 13 #include "base/run_loop.h" |
| 14 #include "base/single_thread_task_runner.h" | 14 #include "base/single_thread_task_runner.h" |
| 15 #include "base/strings/string_number_conversions.h" | 15 #include "base/strings/string_number_conversions.h" |
| 16 #include "base/strings/stringprintf.h" | 16 #include "base/strings/stringprintf.h" |
| 17 #include "base/test/test_simple_task_runner.h" | 17 #include "base/test/test_simple_task_runner.h" |
| 18 #include "base/thread_task_runner_handle.h" | 18 #include "base/thread_task_runner_handle.h" |
| 19 #include "base/values.h" | 19 #include "base/values.h" |
| (...skipping 440 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 460 } | 460 } |
| 461 | 461 |
| 462 TEST_F(HttpServerPropertiesManagerTest, SetSpdySetting) { | 462 TEST_F(HttpServerPropertiesManagerTest, SetSpdySetting) { |
| 463 ExpectPrefsUpdate(); | 463 ExpectPrefsUpdate(); |
| 464 ExpectScheduleUpdatePrefsOnNetworkThread(); | 464 ExpectScheduleUpdatePrefsOnNetworkThread(); |
| 465 | 465 |
| 466 // Add SpdySetting for mail.google.com:443. | 466 // Add SpdySetting for mail.google.com:443. |
| 467 HostPortPair spdy_server_mail("mail.google.com", 443); | 467 HostPortPair spdy_server_mail("mail.google.com", 443); |
| 468 const SpdySettingsIds id1 = SETTINGS_UPLOAD_BANDWIDTH; | 468 const SpdySettingsIds id1 = SETTINGS_UPLOAD_BANDWIDTH; |
| 469 const SpdySettingsFlags flags1 = SETTINGS_FLAG_PLEASE_PERSIST; | 469 const SpdySettingsFlags flags1 = SETTINGS_FLAG_PLEASE_PERSIST; |
| 470 const uint32 value1 = 31337; | 470 const uint32_t value1 = 31337; |
| 471 http_server_props_manager_->SetSpdySetting( | 471 http_server_props_manager_->SetSpdySetting( |
| 472 spdy_server_mail, id1, flags1, value1); | 472 spdy_server_mail, id1, flags1, value1); |
| 473 | 473 |
| 474 // Run the task. | 474 // Run the task. |
| 475 base::RunLoop().RunUntilIdle(); | 475 base::RunLoop().RunUntilIdle(); |
| 476 | 476 |
| 477 const SettingsMap& settings_map1_ret = | 477 const SettingsMap& settings_map1_ret = |
| 478 http_server_props_manager_->GetSpdySettings(spdy_server_mail); | 478 http_server_props_manager_->GetSpdySettings(spdy_server_mail); |
| 479 ASSERT_EQ(1U, settings_map1_ret.size()); | 479 ASSERT_EQ(1U, settings_map1_ret.size()); |
| 480 SettingsMap::const_iterator it1_ret = settings_map1_ret.find(id1); | 480 SettingsMap::const_iterator it1_ret = settings_map1_ret.find(id1); |
| 481 EXPECT_TRUE(it1_ret != settings_map1_ret.end()); | 481 EXPECT_TRUE(it1_ret != settings_map1_ret.end()); |
| 482 SettingsFlagsAndValue flags_and_value1_ret = it1_ret->second; | 482 SettingsFlagsAndValue flags_and_value1_ret = it1_ret->second; |
| 483 EXPECT_EQ(SETTINGS_FLAG_PERSISTED, flags_and_value1_ret.first); | 483 EXPECT_EQ(SETTINGS_FLAG_PERSISTED, flags_and_value1_ret.first); |
| 484 EXPECT_EQ(value1, flags_and_value1_ret.second); | 484 EXPECT_EQ(value1, flags_and_value1_ret.second); |
| 485 | 485 |
| 486 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); | 486 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); |
| 487 } | 487 } |
| 488 | 488 |
| 489 TEST_F(HttpServerPropertiesManagerTest, ClearSpdySetting) { | 489 TEST_F(HttpServerPropertiesManagerTest, ClearSpdySetting) { |
| 490 ExpectPrefsUpdateRepeatedly(); | 490 ExpectPrefsUpdateRepeatedly(); |
| 491 ExpectScheduleUpdatePrefsOnNetworkThreadRepeatedly(); | 491 ExpectScheduleUpdatePrefsOnNetworkThreadRepeatedly(); |
| 492 | 492 |
| 493 // Add SpdySetting for mail.google.com:443. | 493 // Add SpdySetting for mail.google.com:443. |
| 494 HostPortPair spdy_server_mail("mail.google.com", 443); | 494 HostPortPair spdy_server_mail("mail.google.com", 443); |
| 495 const SpdySettingsIds id1 = SETTINGS_UPLOAD_BANDWIDTH; | 495 const SpdySettingsIds id1 = SETTINGS_UPLOAD_BANDWIDTH; |
| 496 const SpdySettingsFlags flags1 = SETTINGS_FLAG_PLEASE_PERSIST; | 496 const SpdySettingsFlags flags1 = SETTINGS_FLAG_PLEASE_PERSIST; |
| 497 const uint32 value1 = 31337; | 497 const uint32_t value1 = 31337; |
| 498 http_server_props_manager_->SetSpdySetting( | 498 http_server_props_manager_->SetSpdySetting( |
| 499 spdy_server_mail, id1, flags1, value1); | 499 spdy_server_mail, id1, flags1, value1); |
| 500 | 500 |
| 501 // Run the task. | 501 // Run the task. |
| 502 base::RunLoop().RunUntilIdle(); | 502 base::RunLoop().RunUntilIdle(); |
| 503 | 503 |
| 504 const SettingsMap& settings_map1_ret = | 504 const SettingsMap& settings_map1_ret = |
| 505 http_server_props_manager_->GetSpdySettings(spdy_server_mail); | 505 http_server_props_manager_->GetSpdySettings(spdy_server_mail); |
| 506 ASSERT_EQ(1U, settings_map1_ret.size()); | 506 ASSERT_EQ(1U, settings_map1_ret.size()); |
| 507 SettingsMap::const_iterator it1_ret = settings_map1_ret.find(id1); | 507 SettingsMap::const_iterator it1_ret = settings_map1_ret.find(id1); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 526 } | 526 } |
| 527 | 527 |
| 528 TEST_F(HttpServerPropertiesManagerTest, ClearAllSpdySetting) { | 528 TEST_F(HttpServerPropertiesManagerTest, ClearAllSpdySetting) { |
| 529 ExpectPrefsUpdateRepeatedly(); | 529 ExpectPrefsUpdateRepeatedly(); |
| 530 ExpectScheduleUpdatePrefsOnNetworkThreadRepeatedly(); | 530 ExpectScheduleUpdatePrefsOnNetworkThreadRepeatedly(); |
| 531 | 531 |
| 532 // Add SpdySetting for mail.google.com:443. | 532 // Add SpdySetting for mail.google.com:443. |
| 533 HostPortPair spdy_server_mail("mail.google.com", 443); | 533 HostPortPair spdy_server_mail("mail.google.com", 443); |
| 534 const SpdySettingsIds id1 = SETTINGS_UPLOAD_BANDWIDTH; | 534 const SpdySettingsIds id1 = SETTINGS_UPLOAD_BANDWIDTH; |
| 535 const SpdySettingsFlags flags1 = SETTINGS_FLAG_PLEASE_PERSIST; | 535 const SpdySettingsFlags flags1 = SETTINGS_FLAG_PLEASE_PERSIST; |
| 536 const uint32 value1 = 31337; | 536 const uint32_t value1 = 31337; |
| 537 http_server_props_manager_->SetSpdySetting( | 537 http_server_props_manager_->SetSpdySetting( |
| 538 spdy_server_mail, id1, flags1, value1); | 538 spdy_server_mail, id1, flags1, value1); |
| 539 | 539 |
| 540 // Run the task. | 540 // Run the task. |
| 541 base::RunLoop().RunUntilIdle(); | 541 base::RunLoop().RunUntilIdle(); |
| 542 | 542 |
| 543 const SettingsMap& settings_map1_ret = | 543 const SettingsMap& settings_map1_ret = |
| 544 http_server_props_manager_->GetSpdySettings(spdy_server_mail); | 544 http_server_props_manager_->GetSpdySettings(spdy_server_mail); |
| 545 ASSERT_EQ(1U, settings_map1_ret.size()); | 545 ASSERT_EQ(1U, settings_map1_ret.size()); |
| 546 SettingsMap::const_iterator it1_ret = settings_map1_ret.find(id1); | 546 SettingsMap::const_iterator it1_ret = settings_map1_ret.find(id1); |
| (...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 783 stats.srtt = base::TimeDelta::FromMicroseconds(10); | 783 stats.srtt = base::TimeDelta::FromMicroseconds(10); |
| 784 http_server_props_manager_->SetServerNetworkStats(spdy_server_mail, stats); | 784 http_server_props_manager_->SetServerNetworkStats(spdy_server_mail, stats); |
| 785 | 785 |
| 786 QuicServerId mail_quic_server_id("mail.google.com", 80); | 786 QuicServerId mail_quic_server_id("mail.google.com", 80); |
| 787 std::string quic_server_info1("quic_server_info1"); | 787 std::string quic_server_info1("quic_server_info1"); |
| 788 http_server_props_manager_->SetQuicServerInfo(mail_quic_server_id, | 788 http_server_props_manager_->SetQuicServerInfo(mail_quic_server_id, |
| 789 quic_server_info1); | 789 quic_server_info1); |
| 790 | 790 |
| 791 const SpdySettingsIds id1 = SETTINGS_UPLOAD_BANDWIDTH; | 791 const SpdySettingsIds id1 = SETTINGS_UPLOAD_BANDWIDTH; |
| 792 const SpdySettingsFlags flags1 = SETTINGS_FLAG_PLEASE_PERSIST; | 792 const SpdySettingsFlags flags1 = SETTINGS_FLAG_PLEASE_PERSIST; |
| 793 const uint32 value1 = 31337; | 793 const uint32_t value1 = 31337; |
| 794 http_server_props_manager_->SetSpdySetting(spdy_server_mail, id1, flags1, | 794 http_server_props_manager_->SetSpdySetting(spdy_server_mail, id1, flags1, |
| 795 value1); | 795 value1); |
| 796 | 796 |
| 797 // Run the task. | 797 // Run the task. |
| 798 base::RunLoop().RunUntilIdle(); | 798 base::RunLoop().RunUntilIdle(); |
| 799 | 799 |
| 800 EXPECT_TRUE( | 800 EXPECT_TRUE( |
| 801 http_server_props_manager_->SupportsRequestPriority(spdy_server_mail)); | 801 http_server_props_manager_->SupportsRequestPriority(spdy_server_mail)); |
| 802 EXPECT_TRUE(HasAlternativeService(spdy_server_mail)); | 802 EXPECT_TRUE(HasAlternativeService(spdy_server_mail)); |
| 803 IPAddressNumber address; | 803 IPAddressNumber address; |
| (...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1014 const base::Time now = base::Time::Now(); | 1014 const base::Time now = base::Time::Now(); |
| 1015 const base::Time expiration = alternative_service_info_vector[0].expiration; | 1015 const base::Time expiration = alternative_service_info_vector[0].expiration; |
| 1016 EXPECT_LE(now + base::TimeDelta::FromHours(23), expiration); | 1016 EXPECT_LE(now + base::TimeDelta::FromHours(23), expiration); |
| 1017 EXPECT_GE(now + base::TimeDelta::FromDays(1), expiration); | 1017 EXPECT_GE(now + base::TimeDelta::FromDays(1), expiration); |
| 1018 | 1018 |
| 1019 EXPECT_EQ(QUIC, | 1019 EXPECT_EQ(QUIC, |
| 1020 alternative_service_info_vector[1].alternative_service.protocol); | 1020 alternative_service_info_vector[1].alternative_service.protocol); |
| 1021 EXPECT_EQ("", alternative_service_info_vector[1].alternative_service.host); | 1021 EXPECT_EQ("", alternative_service_info_vector[1].alternative_service.host); |
| 1022 EXPECT_EQ(123, alternative_service_info_vector[1].alternative_service.port); | 1022 EXPECT_EQ(123, alternative_service_info_vector[1].alternative_service.port); |
| 1023 EXPECT_DOUBLE_EQ(0.7, alternative_service_info_vector[1].probability); | 1023 EXPECT_DOUBLE_EQ(0.7, alternative_service_info_vector[1].probability); |
| 1024 // numeric_limits<int64>::max() represents base::Time::Max(). | 1024 // numeric_limits<int64_t>::max() represents base::Time::Max(). |
| 1025 EXPECT_EQ(base::Time::Max(), alternative_service_info_vector[1].expiration); | 1025 EXPECT_EQ(base::Time::Max(), alternative_service_info_vector[1].expiration); |
| 1026 | 1026 |
| 1027 EXPECT_EQ(NPN_HTTP_2, | 1027 EXPECT_EQ(NPN_HTTP_2, |
| 1028 alternative_service_info_vector[2].alternative_service.protocol); | 1028 alternative_service_info_vector[2].alternative_service.protocol); |
| 1029 EXPECT_EQ("example.org", | 1029 EXPECT_EQ("example.org", |
| 1030 alternative_service_info_vector[2].alternative_service.host); | 1030 alternative_service_info_vector[2].alternative_service.host); |
| 1031 EXPECT_EQ(1234, alternative_service_info_vector[2].alternative_service.port); | 1031 EXPECT_EQ(1234, alternative_service_info_vector[2].alternative_service.port); |
| 1032 EXPECT_DOUBLE_EQ(0.2, alternative_service_info_vector[2].probability); | 1032 EXPECT_DOUBLE_EQ(0.2, alternative_service_info_vector[2].probability); |
| 1033 base::Time expected_expiration; | 1033 base::Time expected_expiration; |
| 1034 ASSERT_TRUE( | 1034 ASSERT_TRUE( |
| (...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1214 // Shutdown comes before the task is executed. | 1214 // Shutdown comes before the task is executed. |
| 1215 http_server_props_manager_->ShutdownOnPrefThread(); | 1215 http_server_props_manager_->ShutdownOnPrefThread(); |
| 1216 // Run the task after shutdown, but before deletion. | 1216 // Run the task after shutdown, but before deletion. |
| 1217 base::RunLoop().RunUntilIdle(); | 1217 base::RunLoop().RunUntilIdle(); |
| 1218 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); | 1218 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); |
| 1219 http_server_props_manager_.reset(); | 1219 http_server_props_manager_.reset(); |
| 1220 base::RunLoop().RunUntilIdle(); | 1220 base::RunLoop().RunUntilIdle(); |
| 1221 } | 1221 } |
| 1222 | 1222 |
| 1223 } // namespace net | 1223 } // namespace net |
| OLD | NEW |