Index: chrome/browser/policy/cloud/cloud_policy_refresh_scheduler_unittest.cc |
diff --git a/chrome/browser/policy/cloud/cloud_policy_refresh_scheduler_unittest.cc b/chrome/browser/policy/cloud/cloud_policy_refresh_scheduler_unittest.cc |
index 36de88ea4e0a149dfe70af660d2e669e388cf36c..f1ce5156e7081f09bbc4c0ae0db358877964ed2b 100644 |
--- a/chrome/browser/policy/cloud/cloud_policy_refresh_scheduler_unittest.cc |
+++ b/chrome/browser/policy/cloud/cloud_policy_refresh_scheduler_unittest.cc |
@@ -53,8 +53,14 @@ class CloudPolicyRefreshSchedulerTest : public testing::Test { |
} |
CloudPolicyRefreshScheduler* CreateRefreshScheduler() { |
+ return CreateRefreshScheduler(true /* invalidations_enabled */); |
+ } |
+ |
+ CloudPolicyRefreshScheduler* CreateRefreshScheduler( |
+ bool invalidations_enabled) { |
CloudPolicyRefreshScheduler* scheduler = |
- new CloudPolicyRefreshScheduler(&client_, &store_, task_runner_); |
+ new CloudPolicyRefreshScheduler(&client_, &store_, task_runner_, |
+ invalidations_enabled); |
scheduler->SetRefreshDelay(kPolicyRefreshRate); |
return scheduler; |
} |
@@ -94,6 +100,16 @@ TEST_F(CloudPolicyRefreshSchedulerTest, InitialRefreshNoPolicy) { |
store_.policy_.reset(); |
scoped_ptr<CloudPolicyRefreshScheduler> scheduler(CreateRefreshScheduler()); |
EXPECT_FALSE(task_runner_->GetPendingTasks().empty()); |
+ CheckTiming(CloudPolicyRefreshScheduler::kFirstRefreshDelayMs); |
+ EXPECT_CALL(client_, FetchPolicy()).Times(1); |
+ task_runner_->RunUntilIdle(); |
+} |
+ |
+TEST_F(CloudPolicyRefreshSchedulerTest, InitialRefreshNoPolicyNoInvalidations) { |
+ store_.policy_.reset(); |
+ scoped_ptr<CloudPolicyRefreshScheduler> scheduler(CreateRefreshScheduler( |
+ false /* invalidations_enabled */)); |
+ EXPECT_FALSE(task_runner_->GetPendingTasks().empty()); |
EXPECT_EQ(GetLastDelay(), base::TimeDelta()); |
EXPECT_CALL(client_, FetchPolicy()).Times(1); |
task_runner_->RunUntilIdle(); |
@@ -110,6 +126,16 @@ TEST_F(CloudPolicyRefreshSchedulerTest, InitialRefreshUnmanaged) { |
TEST_F(CloudPolicyRefreshSchedulerTest, InitialRefreshManagedNotYetFetched) { |
scoped_ptr<CloudPolicyRefreshScheduler> scheduler(CreateRefreshScheduler()); |
EXPECT_FALSE(task_runner_->GetPendingTasks().empty()); |
+ CheckTiming(CloudPolicyRefreshScheduler::kFirstRefreshDelayMs); |
+ EXPECT_CALL(client_, FetchPolicy()).Times(1); |
+ task_runner_->RunUntilIdle(); |
+} |
+ |
+TEST_F(CloudPolicyRefreshSchedulerTest, |
+ InitialRefreshManagedNotYetFetchedNoInvalidations) { |
+ scoped_ptr<CloudPolicyRefreshScheduler> scheduler(CreateRefreshScheduler( |
+ false /* invalidations_enabled */)); |
+ EXPECT_FALSE(task_runner_->GetPendingTasks().empty()); |
EXPECT_EQ(GetLastDelay(), base::TimeDelta()); |
EXPECT_CALL(client_, FetchPolicy()).Times(1); |
task_runner_->RunUntilIdle(); |
@@ -138,6 +164,32 @@ TEST_F(CloudPolicyRefreshSchedulerTest, Unregistered) { |
EXPECT_TRUE(task_runner_->GetPendingTasks().empty()); |
} |
+TEST_F(CloudPolicyRefreshSchedulerTest, RefreshSoon) { |
+ last_refresh_ = base::Time::NowFromSystemTime(); |
+ store_.policy_.reset(); |
+ scoped_ptr<CloudPolicyRefreshScheduler> scheduler(CreateRefreshScheduler()); |
+ EXPECT_FALSE(task_runner_->GetPendingTasks().empty()); |
+ CheckTiming(CloudPolicyRefreshScheduler::kFirstRefreshDelayMs); |
+ scheduler->RefreshSoon(); |
+ EXPECT_FALSE(task_runner_->GetPendingTasks().empty()); |
+ CheckTiming(CloudPolicyRefreshScheduler::kFirstRefreshDelayMs); |
+ EXPECT_CALL(client_, FetchPolicy()).Times(1); |
+ task_runner_->RunUntilIdle(); |
+} |
+ |
+TEST_F(CloudPolicyRefreshSchedulerTest, RefreshForInvalidation) { |
+ last_refresh_ = base::Time::NowFromSystemTime(); |
+ store_.policy_.reset(); |
+ scoped_ptr<CloudPolicyRefreshScheduler> scheduler(CreateRefreshScheduler()); |
+ EXPECT_FALSE(task_runner_->GetPendingTasks().empty()); |
+ CheckTiming(CloudPolicyRefreshScheduler::kFirstRefreshDelayMs); |
+ scheduler->RefreshForInvalidation(); |
+ EXPECT_FALSE(task_runner_->GetPendingTasks().empty()); |
+ EXPECT_EQ(GetLastDelay(), base::TimeDelta()); |
+ EXPECT_CALL(client_, FetchPolicy()).Times(1); |
+ task_runner_->RunUntilIdle(); |
+} |
+ |
TEST_F(CloudPolicyRefreshSchedulerTest, RefreshSoonRateLimit) { |
scoped_ptr<CloudPolicyRefreshScheduler> scheduler(CreateRefreshScheduler()); |
// Max out the request rate. |
@@ -158,7 +210,8 @@ class CloudPolicyRefreshSchedulerSteadyStateTest |
: public CloudPolicyRefreshSchedulerTest { |
protected: |
CloudPolicyRefreshSchedulerSteadyStateTest() |
- : refresh_scheduler_(&client_, &store_, task_runner_) {} |
+ : refresh_scheduler_(&client_, &store_, task_runner_, |
+ true /* invalidations_enabled */) {} |
virtual void SetUp() OVERRIDE { |
refresh_scheduler_.SetRefreshDelay(kPolicyRefreshRate); |
@@ -179,7 +232,7 @@ TEST_F(CloudPolicyRefreshSchedulerSteadyStateTest, OnPolicyFetched) { |
TEST_F(CloudPolicyRefreshSchedulerSteadyStateTest, OnRegistrationStateChanged) { |
client_.SetDMToken("new_token"); |
client_.NotifyRegistrationStateChanged(); |
- EXPECT_EQ(GetLastDelay(), base::TimeDelta()); |
+ CheckTiming(CloudPolicyRefreshScheduler::kFirstRefreshDelayMs); |
task_runner_->ClearPendingTasks(); |
client_.SetDMToken(std::string()); |
@@ -218,7 +271,7 @@ TEST_F(CloudPolicyRefreshSchedulerSteadyStateTest, OnIPAddressChanged) { |
client_.SetStatus(DM_STATUS_REQUEST_FAILED); |
NotifyIPAddressChanged(); |
- EXPECT_EQ(GetLastDelay(), base::TimeDelta()); |
+ CheckTiming(CloudPolicyRefreshScheduler::kFirstRefreshDelayMs); |
} |
struct ClientErrorTestParam { |