Chromium Code Reviews| Index: net/http/http_server_properties_manager_unittest.cc |
| diff --git a/net/http/http_server_properties_manager_unittest.cc b/net/http/http_server_properties_manager_unittest.cc |
| index e9a6c104691e7804c92eb8c73cfc7a61496f4f5e..0b9fb61c4e89f312bf9060b1956d2a63372d1700 100644 |
| --- a/net/http/http_server_properties_manager_unittest.cc |
| +++ b/net/http/http_server_properties_manager_unittest.cc |
| @@ -85,9 +85,7 @@ class TestingHttpServerPropertiesManager : public HttpServerPropertiesManager { |
| scoped_refptr<base::SingleThreadTaskRunner> net_task_runner) |
| : HttpServerPropertiesManager(pref_delegate, |
| pref_task_runner, |
| - net_task_runner), |
| - pref_update_delay_(base::TimeDelta()), |
| - cache_update_delay_(base::TimeDelta()) { |
| + net_task_runner) { |
| InitializeOnNetworkThread(); |
| } |
| @@ -96,22 +94,10 @@ class TestingHttpServerPropertiesManager : public HttpServerPropertiesManager { |
| // Make these methods public for testing. |
| using HttpServerPropertiesManager::ScheduleUpdateCacheOnPrefThread; |
| - // Post tasks without a delay during tests. |
| - void StartPrefsUpdateTimerOnNetworkThread(base::TimeDelta delay) override { |
| - HttpServerPropertiesManager::StartPrefsUpdateTimerOnNetworkThread( |
| - pref_update_delay_); |
| - } |
| - |
| void UpdateCacheFromPrefsOnUIConcrete() { |
| HttpServerPropertiesManager::UpdateCacheFromPrefsOnPrefThread(); |
| } |
| - // Post tasks without a delay during tests. |
| - void StartCacheUpdateTimerOnPrefThread(base::TimeDelta delay) override { |
| - HttpServerPropertiesManager::StartCacheUpdateTimerOnPrefThread( |
| - cache_update_delay_); |
| - } |
| - |
| void UpdatePrefsFromCacheOnNetworkThreadConcrete( |
| const base::Closure& callback) { |
| HttpServerPropertiesManager::UpdatePrefsFromCacheOnNetworkThread(callback); |
| @@ -127,12 +113,6 @@ class TestingHttpServerPropertiesManager : public HttpServerPropertiesManager { |
| DETECTED_CORRUPTED_PREFS); |
| } |
| - void set_pref_update_delay(base::TimeDelta delay) { |
| - pref_update_delay_ = delay; |
| - } |
| - void set_cache_update_delay(base::TimeDelta delay) { |
| - cache_update_delay_ = delay; |
| - } |
| MOCK_METHOD0(UpdateCacheFromPrefsOnPrefThread, void()); |
| MOCK_METHOD1(UpdatePrefsFromCacheOnNetworkThread, void(const base::Closure&)); |
| MOCK_METHOD1(ScheduleUpdatePrefsOnNetworkThread, void(Location location)); |
| @@ -152,9 +132,6 @@ class TestingHttpServerPropertiesManager : public HttpServerPropertiesManager { |
| const base::Closure& completion)); |
| private: |
| - // Time delays used in test for posting tasks. Default to zero. |
| - base::TimeDelta pref_update_delay_; |
| - base::TimeDelta cache_update_delay_; |
| DISALLOW_COPY_AND_ASSIGN(TestingHttpServerPropertiesManager); |
| }; |
| @@ -264,7 +241,7 @@ class HttpServerPropertiesManagerTest : public testing::TestWithParam<int> { |
| DISALLOW_COPY_AND_ASSIGN(HttpServerPropertiesManagerTest); |
| }; |
| -INSTANTIATE_TEST_CASE_P(Tests, |
| +INSTANTIATE_TEST_CASE_P(/* no prefix */, |
| HttpServerPropertiesManagerTest, |
| ::testing::ValuesIn(kHttpServerPropertiesVersions)); |
| @@ -465,7 +442,6 @@ TEST_P(HttpServerPropertiesManagerTest, |
| EXPECT_TRUE(http_server_props_manager_->GetSupportsQuic(&last_address)); |
| EXPECT_EQ("127.0.0.1", last_address.ToString()); |
| - /* |
| // Verify ServerNetworkStats. |
| const ServerNetworkStats* stats2 = |
| http_server_props_manager_->GetServerNetworkStats(google_server); |
| @@ -490,7 +466,6 @@ TEST_P(HttpServerPropertiesManagerTest, |
| mail_quic_server_id)); |
| EXPECT_EQ(quic_server_info3, *http_server_props_manager_->GetQuicServerInfo( |
| play_quic_server_id)); |
| - */ |
| } |
| TEST_P(HttpServerPropertiesManagerTest, BadCachedHostPortPair) { |
| @@ -680,8 +655,8 @@ TEST_P(HttpServerPropertiesManagerTest, SupportsSpdy) { |
| // completed. |
| TEST_P(HttpServerPropertiesManagerTest, |
| SinglePrefUpdateForTwoSpdyServerCacheChanges) { |
| - http_server_props_manager_->set_pref_update_delay( |
| - base::TimeDelta::FromMilliseconds(60)); |
| + // Keep this in sync with http_server_properties_manager.cc |
| + const int64_t kUpdatePrefsDelayMs = 60000; |
|
Zhongyi Shi
2017/02/10 18:01:38
Just to confirm, looks like all the tests are now
xunjieli
2017/02/10 20:01:21
Yes.
|
| ExpectPrefsUpdate(2); |
| ExpectScheduleUpdatePrefsOnNetworkThreadRepeatedly(3); |
| @@ -694,8 +669,9 @@ TEST_P(HttpServerPropertiesManagerTest, |
| // The pref update task should be scheduled to network thread. |
| EXPECT_EQ(1u, net_test_task_runner_->GetPendingTaskCount()); |
| - // Move forward the task runner with 20ms. |
| - net_test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(20)); |
| + // Move forward the task runner with kUpdatePrefsDelayMs/2. |
| + net_test_task_runner_->FastForwardBy( |
| + base::TimeDelta::FromMilliseconds(kUpdatePrefsDelayMs / 2)); |
| // Set another spdy server to trigger another call to |
| // ScheduleUpdatePrefsOnNetworkThread. There should be no new update posted to |
| @@ -705,8 +681,9 @@ TEST_P(HttpServerPropertiesManagerTest, |
| EXPECT_EQ(1u, net_test_task_runner_->GetPendingTaskCount()); |
| EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); |
| - // Move forward another 40ms. The pref update should be executed. |
| - net_test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(40)); |
| + // Forward another kUpdatePrefsDelayMs/2. The pref update should be executed. |
| + net_test_task_runner_->FastForwardBy( |
| + base::TimeDelta::FromMilliseconds(kUpdatePrefsDelayMs / 2)); |
| EXPECT_FALSE(net_test_task_runner_->HasPendingTask()); |
| EXPECT_TRUE(pref_test_task_runner_->HasPendingTask()); |
| pref_test_task_runner_->FastForwardUntilNoTasksRemain(); |
| @@ -1128,13 +1105,13 @@ TEST_P(HttpServerPropertiesManagerTest, BadSupportsQuic) { |
| EXPECT_EQ("127.0.0.1", address.ToString()); |
| } |
| -TEST_P(HttpServerPropertiesManagerTest, UpdateCacheWithPrefs) { |
| +TEST_P(HttpServerPropertiesManagerTest, UpdatePrefsWithCache) { |
| ExpectScheduleUpdatePrefsOnNetworkThreadRepeatedly(5); |
| - const url::SchemeHostPort server_www("http", "www.google.com", 80); |
| - const url::SchemeHostPort server_mail("http", "mail.google.com", 80); |
| + const url::SchemeHostPort server_www("https", "www.google.com", 80); |
| + const url::SchemeHostPort server_mail("https", "mail.google.com", 80); |
| - // Set alternate protocol. |
| + // #1 & #2: Set alternate protocol. |
| AlternativeServiceInfoVector alternative_service_info_vector; |
| AlternativeService www_alternative_service1(kProtoHTTP2, "", 443); |
| base::Time expiration1; |
| @@ -1147,38 +1124,36 @@ TEST_P(HttpServerPropertiesManagerTest, UpdateCacheWithPrefs) { |
| ASSERT_TRUE(base::Time::FromUTCString("2036-12-31 10:00:00", &expiration2)); |
| alternative_service_info_vector.push_back( |
| AlternativeServiceInfo(www_alternative_service2, expiration2)); |
| - http_server_props_manager_->SetAlternativeServices( |
| - server_www, alternative_service_info_vector); |
| + ASSERT_TRUE(http_server_props_manager_->SetAlternativeServices( |
| + server_www, alternative_service_info_vector)); |
| AlternativeService mail_alternative_service(kProtoHTTP2, "foo.google.com", |
| 444); |
| base::Time expiration3 = base::Time::Max(); |
| - http_server_props_manager_->SetAlternativeService( |
| - server_mail, mail_alternative_service, expiration3); |
| + ASSERT_TRUE(http_server_props_manager_->SetAlternativeService( |
| + server_mail, mail_alternative_service, expiration3)); |
| - // Set ServerNetworkStats. |
| + // #3: Set ServerNetworkStats. |
| ServerNetworkStats stats; |
| stats.srtt = base::TimeDelta::FromInternalValue(42); |
| http_server_props_manager_->SetServerNetworkStats(server_mail, stats); |
| - // Set quic_server_info string. |
| + // #4: Set quic_server_info string. |
| QuicServerId mail_quic_server_id("mail.google.com", 80); |
| std::string quic_server_info1("quic_server_info1"); |
| http_server_props_manager_->SetQuicServerInfo(mail_quic_server_id, |
| quic_server_info1); |
| - // Set SupportsQuic. |
| + // #5: Set SupportsQuic. |
| IPAddress actual_address(127, 0, 0, 1); |
| http_server_props_manager_->SetSupportsQuic(true, actual_address); |
| - // Update cache. |
| + // Update Prefs. |
| ExpectPrefsUpdate(1); |
| - ExpectCacheUpdate(); |
| - http_server_props_manager_->ScheduleUpdateCacheOnPrefThread(); |
| - |
|
Zhongyi Shi
2017/02/10 18:01:38
Hm, I thought we had UpdateCacheWithPref and Updat
xunjieli
2017/02/10 20:01:21
Talked to Cherie offline.
There are other 4 tests
|
| EXPECT_TRUE(net_test_task_runner_->HasPendingTask()); |
| - EXPECT_TRUE(pref_test_task_runner_->HasPendingTask()); |
| + EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); |
| net_test_task_runner_->FastForwardUntilNoTasksRemain(); |
| + EXPECT_TRUE(pref_test_task_runner_->HasPendingTask()); |
| pref_test_task_runner_->FastForwardUntilNoTasksRemain(); |
| EXPECT_FALSE(net_test_task_runner_->HasPendingTask()); |
| EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); |
| @@ -1188,12 +1163,12 @@ TEST_P(HttpServerPropertiesManagerTest, UpdateCacheWithPrefs) { |
| "{\"quic_servers\":{\"https://" |
| "mail.google.com:80\":{\"server_info\":\"quic_server_info1\"}}," |
| "\"servers\":[" |
| - "{\"http://www.google.com\":{" |
| + "{\"https://www.google.com:80\":{" |
| "\"alternative_service\":[{\"expiration\":\"13756212000000000\"," |
| "\"port\":443,\"protocol_str\":\"h2\"}," |
| "{\"expiration\":\"13758804000000000\",\"host\":\"www.google.com\"," |
| "\"port\":1234,\"protocol_str\":\"h2\"}]}}," |
| - "{\"http://mail.google.com\":{\"alternative_service\":[{" |
| + "{\"https://mail.google.com:80\":{\"alternative_service\":[{" |
| "\"expiration\":\"9223372036854775807\",\"host\":\"foo.google.com\"," |
| "\"port\":444,\"protocol_str\":\"h2\"}]," |
| "\"network_stats\":{\"srtt\":42}}}" |
| @@ -1211,9 +1186,8 @@ TEST_P(HttpServerPropertiesManagerTest, UpdateCacheWithPrefs) { |
| TEST_P(HttpServerPropertiesManagerTest, |
| SingleCacheUpdateForMultipleUpdatesScheduled) { |
| - http_server_props_manager_->set_cache_update_delay( |
| - base::TimeDelta::FromMilliseconds(60)); |
| - |
| + // Keep this in sync with http_server_properties_manager.cc |
| + const int64_t kUpdateCacheDelayMs = 1000; |
| // Update cache. |
| ExpectCacheUpdate(); |
| @@ -1222,15 +1196,17 @@ TEST_P(HttpServerPropertiesManagerTest, |
| http_server_props_manager_->ScheduleUpdateCacheOnPrefThread(); |
| EXPECT_EQ(1u, pref_test_task_runner_->GetPendingTaskCount()); |
| - // Move forward the task runner 20ms. |
| - pref_test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(20)); |
| + // Move forward the task runner kUpdateCacheDelayMs/2. |
| + pref_test_task_runner_->FastForwardBy( |
| + base::TimeDelta::FromMilliseconds(kUpdateCacheDelayMs / 2)); |
| // Schedule a new cache update within the time window should be a no-op. |
| http_server_props_manager_->ScheduleUpdateCacheOnPrefThread(); |
| EXPECT_EQ(1u, pref_test_task_runner_->GetPendingTaskCount()); |
| - // Move forward the task runner 40ms, now the cache update should be |
| - // exectured. |
| - pref_test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(40)); |
| + // Move forward the task runner kUpdateCaceDelayMs/2, now the cache update |
| + // should be exectured. |
| + pref_test_task_runner_->FastForwardBy( |
| + base::TimeDelta::FromMilliseconds(kUpdateCacheDelayMs / 2)); |
| // Since this test has no pref corruption, there shouldn't be any pref update. |
| EXPECT_FALSE(net_test_task_runner_->HasPendingTask()); |
| @@ -1327,6 +1303,7 @@ TEST_P(HttpServerPropertiesManagerTest, |
| base::Time::Now() + base::TimeDelta::FromDays(1); |
| alternative_service_info_vector.push_back( |
| AlternativeServiceInfo(broken_alternative_service, time_one_day_later)); |
| + // #1: MarkAlternativeServiceBroken(). |
| http_server_props_manager_->MarkAlternativeServiceBroken( |
| broken_alternative_service); |
| @@ -1343,17 +1320,17 @@ TEST_P(HttpServerPropertiesManagerTest, |
| AlternativeServiceInfo(valid_alternative_service, time_one_day_later)); |
| const url::SchemeHostPort server("https", "www.example.com", 443); |
| - http_server_props_manager_->SetAlternativeServices( |
| - server, alternative_service_info_vector); |
| + // #2: SetAlternativeService(). |
| + ASSERT_TRUE(http_server_props_manager_->SetAlternativeServices( |
| + server, alternative_service_info_vector)); |
| // Update cache. |
| ExpectPrefsUpdate(1); |
| - ExpectCacheUpdate(); |
| - http_server_props_manager_->ScheduleUpdateCacheOnPrefThread(); |
| EXPECT_TRUE(net_test_task_runner_->HasPendingTask()); |
| - EXPECT_TRUE(pref_test_task_runner_->HasPendingTask()); |
| + EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); |
| net_test_task_runner_->FastForwardUntilNoTasksRemain(); |
| + EXPECT_TRUE(pref_test_task_runner_->HasPendingTask()); |
| pref_test_task_runner_->FastForwardUntilNoTasksRemain(); |
| EXPECT_FALSE(net_test_task_runner_->HasPendingTask()); |
| EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); |