| Index: chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos_unittest.cc
|
| diff --git a/chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos_unittest.cc b/chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos_unittest.cc
|
| index 0562e5d410ea3a8b00256226b35a30f11b7a5315..5abfe5a030de328bb5ed7e73653c40a71c85f1e8 100644
|
| --- a/chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos_unittest.cc
|
| +++ b/chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos_unittest.cc
|
| @@ -4,6 +4,8 @@
|
|
|
| #include "chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.h"
|
|
|
| +#include <algorithm>
|
| +
|
| #include "base/basictypes.h"
|
| #include "base/compiler_specific.h"
|
| #include "base/memory/scoped_ptr.h"
|
| @@ -261,6 +263,70 @@ TEST_F(DeviceCloudPolicyManagerChromeOSTest, ConsumerDevice) {
|
| EXPECT_TRUE(manager_->policies().Equals(bundle));
|
| }
|
|
|
| +class DeviceCloudPolicyManagerChromeOSStateKeyTest : public testing::Test {
|
| + protected:
|
| + DeviceCloudPolicyManagerChromeOSStateKeyTest() {}
|
| +
|
| + virtual void SetUp() OVERRIDE {
|
| + chromeos::system::StatisticsProvider::SetTestProvider(
|
| + &statistics_provider_);
|
| + EXPECT_CALL(statistics_provider_, GetMachineStatistic(_, _))
|
| + .WillRepeatedly(Invoke(this,
|
| + &DeviceCloudPolicyManagerChromeOSStateKeyTest::
|
| + GetMachineStatistic));
|
| + }
|
| +
|
| + virtual void TearDown() OVERRIDE {
|
| + chromeos::system::StatisticsProvider::SetTestProvider(NULL);
|
| + }
|
| +
|
| + bool GetMachineStatistic(const std::string& name, std::string* result) {
|
| + *result = "fake-" + name;
|
| + return true;
|
| + }
|
| +
|
| + private:
|
| + chromeos::system::MockStatisticsProvider statistics_provider_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(DeviceCloudPolicyManagerChromeOSStateKeyTest);
|
| +};
|
| +
|
| +TEST_F(DeviceCloudPolicyManagerChromeOSStateKeyTest, GetDeviceStateKeys) {
|
| + base::Time current = base::Time::UnixEpoch() + base::TimeDelta::FromDays(100);
|
| +
|
| + // The correct number of state keys gets returned.
|
| + std::vector<std::string> state_keys;
|
| + EXPECT_TRUE(DeviceCloudPolicyManagerChromeOS::GetDeviceStateKeys(
|
| + current, &state_keys));
|
| + EXPECT_EQ(DeviceCloudPolicyManagerChromeOS::kDeviceStateKeyFutureQuanta,
|
| + static_cast<int>(state_keys.size()));
|
| +
|
| + // All state keys are different.
|
| + std::set<std::string> state_key_set(state_keys.begin(), state_keys.end());
|
| + EXPECT_EQ(DeviceCloudPolicyManagerChromeOS::kDeviceStateKeyFutureQuanta,
|
| + static_cast<int>(state_key_set.size()));
|
| +
|
| + // Moving forward just a little yields the same keys.
|
| + std::vector<std::string> new_state_keys;
|
| + current += base::TimeDelta::FromDays(1);
|
| + EXPECT_TRUE(DeviceCloudPolicyManagerChromeOS::GetDeviceStateKeys(
|
| + current, &new_state_keys));
|
| + EXPECT_EQ(state_keys, new_state_keys);
|
| +
|
| + // Jumping to a future quantum results in the state keys rolling forward.
|
| + int64 step =
|
| + GG_INT64_C(1)
|
| + << DeviceCloudPolicyManagerChromeOS::kDeviceStateKeyTimeQuantumPower;
|
| + current += 2 * base::TimeDelta::FromSeconds(step);
|
| +
|
| + EXPECT_TRUE(DeviceCloudPolicyManagerChromeOS::GetDeviceStateKeys(
|
| + current, &new_state_keys));
|
| + ASSERT_EQ(DeviceCloudPolicyManagerChromeOS::kDeviceStateKeyFutureQuanta,
|
| + static_cast<int>(new_state_keys.size()));
|
| + EXPECT_TRUE(std::equal(state_keys.begin() + 2, state_keys.end(),
|
| + new_state_keys.begin()));
|
| +}
|
| +
|
| class DeviceCloudPolicyManagerChromeOSEnrollmentTest
|
| : public DeviceCloudPolicyManagerChromeOSTest {
|
| public:
|
|
|