| Index: chrome/browser/chromeos/policy/heartbeat_scheduler_unittest.cc
|
| diff --git a/chrome/browser/chromeos/policy/heartbeat_scheduler_unittest.cc b/chrome/browser/chromeos/policy/heartbeat_scheduler_unittest.cc
|
| index 7a1a05cf2e78c6fd92f00cf933bec62f3e472967..8e5686b4e6836e63bac50e8f7bd6d1a07c0da991 100644
|
| --- a/chrome/browser/chromeos/policy/heartbeat_scheduler_unittest.cc
|
| +++ b/chrome/browser/chromeos/policy/heartbeat_scheduler_unittest.cc
|
| @@ -6,9 +6,7 @@
|
|
|
| #include "base/strings/string_number_conversions.h"
|
| #include "base/test/test_simple_task_runner.h"
|
| -#include "chrome/browser/chromeos/settings/cros_settings.h"
|
| -#include "chrome/browser/chromeos/settings/device_settings_service.h"
|
| -#include "chrome/browser/chromeos/settings/stub_cros_settings_provider.h"
|
| +#include "chrome/browser/chromeos/settings/scoped_cros_settings_test_helper.h"
|
| #include "chromeos/settings/cros_settings_names.h"
|
| #include "components/gcm_driver/fake_gcm_driver.h"
|
| #include "content/public/test/test_utils.h"
|
| @@ -63,24 +61,11 @@ class HeartbeatSchedulerTest : public testing::Test {
|
| }
|
|
|
| void SetUp() override {
|
| - // Swap out the DeviceSettingsProvider with our stub settings provider
|
| - // so we can set values for the heartbeat frequency.
|
| - chromeos::CrosSettings* cros_settings = chromeos::CrosSettings::Get();
|
| - device_settings_provider_ =
|
| - cros_settings->GetProvider(chromeos::kReportDeviceVersionInfo);
|
| - EXPECT_TRUE(device_settings_provider_);
|
| - EXPECT_TRUE(
|
| - cros_settings->RemoveSettingsProvider(device_settings_provider_));
|
| - cros_settings->AddSettingsProvider(&stub_settings_provider_);
|
| + settings_helper_.ReplaceProvider(chromeos::kHeartbeatEnabled);
|
| }
|
|
|
| void TearDown() override {
|
| content::RunAllBlockingPoolTasksUntilIdle();
|
| - // Restore the real DeviceSettingsProvider.
|
| - chromeos::CrosSettings* cros_settings = chromeos::CrosSettings::Get();
|
| - EXPECT_TRUE(cros_settings->RemoveSettingsProvider(
|
| - &stub_settings_provider_));
|
| - cros_settings->AddSettingsProvider(device_settings_provider_);
|
| }
|
|
|
| void CheckPendingTaskDelay(base::Time last_heartbeat,
|
| @@ -106,14 +91,8 @@ class HeartbeatSchedulerTest : public testing::Test {
|
| }
|
|
|
| base::MessageLoop loop_;
|
| -
|
| - // Helpers used to mock out cros settings.
|
| - chromeos::ScopedTestDeviceSettingsService test_device_settings_service_;
|
| - chromeos::ScopedTestCrosSettings test_cros_settings_;
|
| - chromeos::CrosSettingsProvider* device_settings_provider_;
|
| - chromeos::StubCrosSettingsProvider stub_settings_provider_;
|
| -
|
| MockGCMDriver gcm_driver_;
|
| + chromeos::ScopedCrosSettingsTestHelper settings_helper_;
|
|
|
| // TaskRunner used to run individual tests.
|
| scoped_refptr<base::TestSimpleTaskRunner> task_runner_;
|
| @@ -125,16 +104,14 @@ class HeartbeatSchedulerTest : public testing::Test {
|
| TEST_F(HeartbeatSchedulerTest, Basic) {
|
| // Just makes sure we can spin up and shutdown the scheduler with
|
| // heartbeats disabled.
|
| - chromeos::CrosSettings::Get()->SetBoolean(
|
| - chromeos::kHeartbeatEnabled, false);
|
| + settings_helper_.SetBoolean(chromeos::kHeartbeatEnabled, false);
|
| ASSERT_TRUE(task_runner_->GetPendingTasks().empty());
|
| }
|
|
|
| TEST_F(HeartbeatSchedulerTest, PermanentlyFailedGCMRegistration) {
|
| // If heartbeats are enabled, we should register with GCMDriver.
|
| EXPECT_CALL(gcm_driver_, RegisterImpl(kHeartbeatGCMAppID, _));
|
| - chromeos::CrosSettings::Get()->SetBoolean(
|
| - chromeos::kHeartbeatEnabled, true);
|
| + settings_helper_.SetBoolean(chromeos::kHeartbeatEnabled, true);
|
| gcm_driver_.CompleteRegistration(
|
| kHeartbeatGCMAppID, gcm::GCMClient::GCM_DISABLED);
|
|
|
| @@ -144,8 +121,7 @@ TEST_F(HeartbeatSchedulerTest, PermanentlyFailedGCMRegistration) {
|
|
|
| TEST_F(HeartbeatSchedulerTest, TemporarilyFailedGCMRegistration) {
|
| EXPECT_CALL(gcm_driver_, RegisterImpl(kHeartbeatGCMAppID, _));
|
| - chromeos::CrosSettings::Get()->SetBoolean(
|
| - chromeos::kHeartbeatEnabled, true);
|
| + settings_helper_.SetBoolean(chromeos::kHeartbeatEnabled, true);
|
| gcm_driver_.CompleteRegistration(
|
| kHeartbeatGCMAppID, gcm::GCMClient::SERVER_ERROR);
|
| testing::Mock::VerifyAndClearExpectations(&gcm_driver_);
|
| @@ -165,8 +141,7 @@ TEST_F(HeartbeatSchedulerTest, TemporarilyFailedGCMRegistration) {
|
|
|
| TEST_F(HeartbeatSchedulerTest, ChangeHeartbeatFrequency) {
|
| EXPECT_CALL(gcm_driver_, RegisterImpl(kHeartbeatGCMAppID, _));
|
| - chromeos::CrosSettings::Get()->SetBoolean(
|
| - chromeos::kHeartbeatEnabled, true);
|
| + settings_helper_.SetBoolean(chromeos::kHeartbeatEnabled, true);
|
| gcm_driver_.CompleteRegistration(
|
| kHeartbeatGCMAppID, gcm::GCMClient::SUCCESS);
|
|
|
| @@ -176,8 +151,7 @@ TEST_F(HeartbeatSchedulerTest, ChangeHeartbeatFrequency) {
|
| testing::Mock::VerifyAndClearExpectations(&gcm_driver_);
|
|
|
| const int new_delay = 1234*1000; // 1234 seconds.
|
| - chromeos::CrosSettings::Get()->SetInteger(chromeos::kHeartbeatFrequency,
|
| - new_delay);
|
| + settings_helper_.SetInteger(chromeos::kHeartbeatFrequency, new_delay);
|
| // Now run pending heartbeat task, should send a heartbeat.
|
| gcm::GCMClient::OutgoingMessage message;
|
| EXPECT_CALL(gcm_driver_, SendImpl(kHeartbeatGCMAppID, _, _))
|
| @@ -197,8 +171,7 @@ TEST_F(HeartbeatSchedulerTest, ChangeHeartbeatFrequency) {
|
| TEST_F(HeartbeatSchedulerTest, DisableHeartbeats) {
|
| // Makes sure that we can disable heartbeats on the fly.
|
| EXPECT_CALL(gcm_driver_, RegisterImpl(kHeartbeatGCMAppID, _));
|
| - chromeos::CrosSettings::Get()->SetBoolean(
|
| - chromeos::kHeartbeatEnabled, true);
|
| + settings_helper_.SetBoolean(chromeos::kHeartbeatEnabled, true);
|
| gcm::GCMClient::OutgoingMessage message;
|
| EXPECT_CALL(gcm_driver_, SendImpl(kHeartbeatGCMAppID, _, _))
|
| .WillOnce(SaveArg<2>(&message));
|
| @@ -221,8 +194,7 @@ TEST_F(HeartbeatSchedulerTest, DisableHeartbeats) {
|
| testing::Mock::VerifyAndClearExpectations(&gcm_driver_);
|
|
|
| // Now disable heartbeats. Should get no more heartbeats sent.
|
| - chromeos::CrosSettings::Get()->SetBoolean(
|
| - chromeos::kHeartbeatEnabled, false);
|
| + settings_helper_.SetBoolean(chromeos::kHeartbeatEnabled, false);
|
| task_runner_->RunPendingTasks();
|
| EXPECT_TRUE(task_runner_->GetPendingTasks().empty());
|
| }
|
| @@ -232,8 +204,7 @@ TEST_F(HeartbeatSchedulerTest, CheckMessageContents) {
|
| EXPECT_CALL(gcm_driver_, RegisterImpl(kHeartbeatGCMAppID, _));
|
| EXPECT_CALL(gcm_driver_, SendImpl(kHeartbeatGCMAppID, _, _))
|
| .WillOnce(SaveArg<2>(&message));
|
| - chromeos::CrosSettings::Get()->SetBoolean(
|
| - chromeos::kHeartbeatEnabled, true);
|
| + settings_helper_.SetBoolean(chromeos::kHeartbeatEnabled, true);
|
| gcm_driver_.CompleteRegistration(
|
| kHeartbeatGCMAppID, gcm::GCMClient::SUCCESS);
|
| task_runner_->RunPendingTasks();
|
|
|