| Index: chrome/browser/policy/cloud/cloud_policy_core_unittest.cc
|
| diff --git a/chrome/browser/policy/cloud/cloud_policy_core_unittest.cc b/chrome/browser/policy/cloud/cloud_policy_core_unittest.cc
|
| index 07de17c0b3fe4e036b97e3484a4d21d29fc5b831..47492f53af8dc9401ee0a5e5728481f93c22b527 100644
|
| --- a/chrome/browser/policy/cloud/cloud_policy_core_unittest.cc
|
| +++ b/chrome/browser/policy/cloud/cloud_policy_core_unittest.cc
|
| @@ -17,13 +17,47 @@
|
|
|
| namespace policy {
|
|
|
| -class CloudPolicyCoreTest : public testing::Test {
|
| +class CloudPolicyCoreTest : public testing::Test,
|
| + public CloudPolicyCore::Observer {
|
| protected:
|
| CloudPolicyCoreTest()
|
| : core_(PolicyNamespaceKey(dm_protocol::kChromeUserPolicyType,
|
| std::string()),
|
| - &store_) {
|
| + &store_),
|
| + core_connected_callback_count_(0),
|
| + refresh_scheduler_started_callback_count_(0),
|
| + core_disconnecting_callback_count_(0),
|
| + bad_callback_count_(0) {
|
| chrome::RegisterLocalState(prefs_.registry());
|
| + core_.AddObserver(this);
|
| + }
|
| +
|
| + virtual ~CloudPolicyCoreTest() {
|
| + core_.RemoveObserver(this);
|
| + }
|
| +
|
| + virtual void OnCoreConnected(CloudPolicyCore* core) OVERRIDE {
|
| + // Make sure core is connected at callback time.
|
| + if (core_.client())
|
| + core_connected_callback_count_++;
|
| + else
|
| + bad_callback_count_++;
|
| + }
|
| +
|
| + virtual void OnRefreshSchedulerStarted(CloudPolicyCore* core) OVERRIDE {
|
| + // Make sure refresh scheduler is started at callback time.
|
| + if (core_.refresh_scheduler())
|
| + refresh_scheduler_started_callback_count_++;
|
| + else
|
| + bad_callback_count_++;
|
| + }
|
| +
|
| + virtual void OnCoreDisconnecting(CloudPolicyCore* core) OVERRIDE {
|
| + // Make sure core is still connected at callback time.
|
| + if (core_.client())
|
| + core_disconnecting_callback_count_++;
|
| + else
|
| + bad_callback_count_++;
|
| }
|
|
|
| base::MessageLoop loop_;
|
| @@ -32,6 +66,11 @@ class CloudPolicyCoreTest : public testing::Test {
|
| MockCloudPolicyStore store_;
|
| CloudPolicyCore core_;
|
|
|
| + int core_connected_callback_count_;
|
| + int refresh_scheduler_started_callback_count_;
|
| + int core_disconnecting_callback_count_;
|
| + int bad_callback_count_;
|
| +
|
| private:
|
| DISALLOW_COPY_AND_ASSIGN(CloudPolicyCoreTest);
|
| };
|
| @@ -47,18 +86,28 @@ TEST_F(CloudPolicyCoreTest, ConnectAndDisconnect) {
|
| EXPECT_TRUE(core_.client());
|
| EXPECT_TRUE(core_.service());
|
| EXPECT_FALSE(core_.refresh_scheduler());
|
| + EXPECT_EQ(1, core_connected_callback_count_);
|
| + EXPECT_EQ(0, refresh_scheduler_started_callback_count_);
|
| + EXPECT_EQ(0, core_disconnecting_callback_count_);
|
|
|
| // Disconnect() goes back to no client and service.
|
| core_.Disconnect();
|
| EXPECT_FALSE(core_.client());
|
| EXPECT_FALSE(core_.service());
|
| EXPECT_FALSE(core_.refresh_scheduler());
|
| + EXPECT_EQ(1, core_connected_callback_count_);
|
| + EXPECT_EQ(0, refresh_scheduler_started_callback_count_);
|
| + EXPECT_EQ(1, core_disconnecting_callback_count_);
|
|
|
| // Calling Disconnect() twice doesn't do bad things.
|
| core_.Disconnect();
|
| EXPECT_FALSE(core_.client());
|
| EXPECT_FALSE(core_.service());
|
| EXPECT_FALSE(core_.refresh_scheduler());
|
| + EXPECT_EQ(1, core_connected_callback_count_);
|
| + EXPECT_EQ(0, refresh_scheduler_started_callback_count_);
|
| + EXPECT_EQ(1, core_disconnecting_callback_count_);
|
| + EXPECT_EQ(0, bad_callback_count_);
|
| }
|
|
|
| TEST_F(CloudPolicyCoreTest, RefreshScheduler) {
|
| @@ -76,6 +125,11 @@ TEST_F(CloudPolicyCoreTest, RefreshScheduler) {
|
|
|
| prefs_.ClearPref(prefs::kUserPolicyRefreshRate);
|
| EXPECT_EQ(default_refresh_delay, core_.refresh_scheduler()->refresh_delay());
|
| +
|
| + EXPECT_EQ(1, core_connected_callback_count_);
|
| + EXPECT_EQ(1, refresh_scheduler_started_callback_count_);
|
| + EXPECT_EQ(0, core_disconnecting_callback_count_);
|
| + EXPECT_EQ(0, bad_callback_count_);
|
| }
|
|
|
| } // namespace policy
|
|
|