Commit 3eb8769e authored by zhongyi's avatar zhongyi Committed by Commit bot

Enforce check on how many pref updates and cache updates are called in...

Enforce check on how many pref updates and cache updates are called in http_server_properties_manager_unittests

BUG=670519

Review-Url: https://codereview.chromium.org/2585823003
Cr-Commit-Position: refs/heads/master@{#439535}
parent 28fb80be
......@@ -32,6 +32,7 @@ namespace {
using base::StringPrintf;
using base::TestMockTimeTaskRunner;
using ::testing::_;
using ::testing::AtLeast;
using ::testing::Invoke;
using ::testing::Mock;
using ::testing::StrictMock;
......@@ -213,25 +214,19 @@ class HttpServerPropertiesManagerTest : public testing::TestWithParam<int> {
ScheduleUpdatePrefsOnNetworkThreadConcrete));
}
void ExpectScheduleUpdatePrefsOnNetworkThreadRepeatedly() {
void ExpectScheduleUpdatePrefsOnNetworkThreadRepeatedly(int times) {
EXPECT_CALL(*http_server_props_manager_,
ScheduleUpdatePrefsOnNetworkThread(_))
.Times(AtLeast(times))
.WillRepeatedly(Invoke(http_server_props_manager_.get(),
&TestingHttpServerPropertiesManager::
ScheduleUpdatePrefsOnNetworkThreadConcrete));
}
void ExpectPrefsUpdate() {
EXPECT_CALL(*http_server_props_manager_,
UpdatePrefsFromCacheOnNetworkThread(_))
.WillOnce(Invoke(http_server_props_manager_.get(),
&TestingHttpServerPropertiesManager::
UpdatePrefsFromCacheOnNetworkThreadConcrete));
}
void ExpectPrefsUpdateRepeatedly() {
void ExpectPrefsUpdate(int times) {
EXPECT_CALL(*http_server_props_manager_,
UpdatePrefsFromCacheOnNetworkThread(_))
.Times(times)
.WillRepeatedly(
Invoke(http_server_props_manager_.get(),
&TestingHttpServerPropertiesManager::
......@@ -487,7 +482,7 @@ TEST_P(HttpServerPropertiesManagerTest,
TEST_P(HttpServerPropertiesManagerTest, BadCachedHostPortPair) {
ExpectCacheUpdate();
// The prefs are automatically updated in the case corruption is detected.
ExpectPrefsUpdate();
ExpectPrefsUpdate(1);
ExpectScheduleUpdatePrefsOnNetworkThread();
base::DictionaryValue* server_pref_dict = new base::DictionaryValue;
......@@ -577,7 +572,7 @@ TEST_P(HttpServerPropertiesManagerTest, BadCachedHostPortPair) {
TEST_P(HttpServerPropertiesManagerTest, BadCachedAltProtocolPort) {
ExpectCacheUpdate();
// The prefs are automatically updated in the case corruption is detected.
ExpectPrefsUpdate();
ExpectPrefsUpdate(1);
ExpectScheduleUpdatePrefsOnNetworkThread();
base::DictionaryValue* server_pref_dict = new base::DictionaryValue;
......@@ -638,7 +633,7 @@ TEST_P(HttpServerPropertiesManagerTest, BadCachedAltProtocolPort) {
}
TEST_P(HttpServerPropertiesManagerTest, SupportsSpdy) {
ExpectPrefsUpdate();
ExpectPrefsUpdate(1);
ExpectScheduleUpdatePrefsOnNetworkThread();
// Post an update task to the network thread. SetSupportsSpdy calls
......@@ -670,11 +665,11 @@ TEST_P(HttpServerPropertiesManagerTest, SupportsSpdy) {
// update could also be scheduled once the previous scheduled update is
// completed.
TEST_P(HttpServerPropertiesManagerTest,
SinglePrefUpdateForTwoSpdyServerCacheChangese) {
SinglePrefUpdateForTwoSpdyServerCacheChanges) {
http_server_props_manager_->set_pref_update_delay(
base::TimeDelta::FromMilliseconds(60));
ExpectPrefsUpdateRepeatedly();
ExpectScheduleUpdatePrefsOnNetworkThreadRepeatedly();
ExpectPrefsUpdate(2);
ExpectScheduleUpdatePrefsOnNetworkThreadRepeatedly(3);
// Post an update task to the network thread. SetSupportsSpdy calls
// ScheduleUpdatePrefsOnNetworkThread with a delay of 60ms.
......@@ -728,7 +723,7 @@ TEST_P(HttpServerPropertiesManagerTest,
}
TEST_P(HttpServerPropertiesManagerTest, GetAlternativeServices) {
ExpectPrefsUpdate();
ExpectPrefsUpdate(1);
ExpectScheduleUpdatePrefsOnNetworkThread();
url::SchemeHostPort spdy_server_mail("http", "mail.google.com", 80);
......@@ -759,7 +754,7 @@ TEST_P(HttpServerPropertiesManagerTest, GetAlternativeServices) {
}
TEST_P(HttpServerPropertiesManagerTest, SetAlternativeServices) {
ExpectPrefsUpdate();
ExpectPrefsUpdate(1);
ExpectScheduleUpdatePrefsOnNetworkThread();
url::SchemeHostPort spdy_server_mail("http", "mail.google.com", 80);
......@@ -814,7 +809,7 @@ TEST_P(HttpServerPropertiesManagerTest, SetAlternativeServicesEmpty) {
}
TEST_P(HttpServerPropertiesManagerTest, ConfirmAlternativeService) {
ExpectPrefsUpdate();
ExpectPrefsUpdate(1);
url::SchemeHostPort spdy_server_mail("http", "mail.google.com", 80);
EXPECT_FALSE(HasAlternativeService(spdy_server_mail));
......@@ -867,7 +862,7 @@ TEST_P(HttpServerPropertiesManagerTest, ConfirmAlternativeService) {
}
TEST_P(HttpServerPropertiesManagerTest, SupportsQuic) {
ExpectPrefsUpdate();
ExpectPrefsUpdate(1);
ExpectScheduleUpdatePrefsOnNetworkThread();
IPAddress address;
......@@ -894,7 +889,7 @@ TEST_P(HttpServerPropertiesManagerTest, SupportsQuic) {
}
TEST_P(HttpServerPropertiesManagerTest, ServerNetworkStats) {
ExpectPrefsUpdate();
ExpectPrefsUpdate(1);
ExpectScheduleUpdatePrefsOnNetworkThread();
url::SchemeHostPort mail_server("http", "mail.google.com", 80);
......@@ -924,7 +919,7 @@ TEST_P(HttpServerPropertiesManagerTest, ServerNetworkStats) {
}
TEST_P(HttpServerPropertiesManagerTest, QuicServerInfo) {
ExpectPrefsUpdate();
ExpectPrefsUpdate(1);
ExpectScheduleUpdatePrefsOnNetworkThread();
QuicServerId mail_quic_server_id("mail.google.com", 80);
......@@ -957,8 +952,8 @@ TEST_P(HttpServerPropertiesManagerTest, Clear) {
// thus can not mock the pref task runner.
SetUpWithNonTaskRunner();
ExpectPrefsUpdate();
ExpectScheduleUpdatePrefsOnNetworkThreadRepeatedly();
ExpectPrefsUpdate(1);
ExpectScheduleUpdatePrefsOnNetworkThreadRepeatedly(5);
url::SchemeHostPort spdy_server("https", "mail.google.com", 443);
http_server_props_manager_->SetSupportsSpdy(spdy_server, true);
......@@ -995,7 +990,7 @@ TEST_P(HttpServerPropertiesManagerTest, Clear) {
Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
ExpectPrefsUpdate();
ExpectPrefsUpdate(1);
// Clear http server data, time out if we do not get a completion callback.
http_server_props_manager_->Clear(base::MessageLoop::QuitWhenIdleClosure());
......@@ -1120,7 +1115,7 @@ TEST_P(HttpServerPropertiesManagerTest, BadSupportsQuic) {
}
TEST_P(HttpServerPropertiesManagerTest, UpdateCacheWithPrefs) {
ExpectScheduleUpdatePrefsOnNetworkThreadRepeatedly();
ExpectScheduleUpdatePrefsOnNetworkThreadRepeatedly(5);
const url::SchemeHostPort server_www("http", "www.google.com", 80);
const url::SchemeHostPort server_mail("http", "mail.google.com", 80);
......@@ -1163,7 +1158,7 @@ TEST_P(HttpServerPropertiesManagerTest, UpdateCacheWithPrefs) {
http_server_props_manager_->SetSupportsQuic(true, actual_address);
// Update cache.
ExpectPrefsUpdate();
ExpectPrefsUpdate(1);
ExpectCacheUpdate();
http_server_props_manager_->ScheduleUpdateCacheOnPrefThread();
......@@ -1270,7 +1265,7 @@ TEST_P(HttpServerPropertiesManagerTest, DoNotLoadAltSvcForInsecureOrigins) {
// Do not persist expired or broken alternative service entries to disk.
TEST_P(HttpServerPropertiesManagerTest,
DoNotPersistExpiredOrBrokenAlternativeService) {
ExpectScheduleUpdatePrefsOnNetworkThreadRepeatedly();
ExpectScheduleUpdatePrefsOnNetworkThreadRepeatedly(2);
AlternativeServiceInfoVector alternative_service_info_vector;
......@@ -1300,7 +1295,7 @@ TEST_P(HttpServerPropertiesManagerTest,
server, alternative_service_info_vector);
// Update cache.
ExpectPrefsUpdate();
ExpectPrefsUpdate(1);
ExpectCacheUpdate();
http_server_props_manager_->ScheduleUpdateCacheOnPrefThread();
......@@ -1446,7 +1441,7 @@ TEST_P(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdatePrefs0) {
}
TEST_P(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdatePrefs1) {
ExpectPrefsUpdate();
ExpectPrefsUpdate(1);
// Post an update task.
http_server_props_manager_->ScheduleUpdatePrefsOnNetworkThread();
// Shutdown comes before the task is executed.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment