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

Unified Diff: chrome/browser/policy/cloud/cloud_policy_refresh_scheduler_unittest.cc

Issue 19733003: Implement cloud policy invalidations using the invalidation service framework. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 5 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
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 {

Powered by Google App Engine
This is Rietveld 408576698