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

Unified Diff: net/http/http_server_properties_manager_unittest.cc

Issue 2681383002: HttpServerPropertiesManager and tests cleanup (Closed)
Patch Set: simplify tests Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/http/http_server_properties_manager.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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());
« no previous file with comments | « net/http/http_server_properties_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698