Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.h" | 5 #include "chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.h" |
| 6 | 6 |
| 7 #include <algorithm> | |
| 8 | |
| 7 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
| 8 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
| 9 #include "base/memory/scoped_ptr.h" | 11 #include "base/memory/scoped_ptr.h" |
| 10 #include "base/message_loop/message_loop.h" | 12 #include "base/message_loop/message_loop.h" |
| 11 #include "base/prefs/pref_registry_simple.h" | 13 #include "base/prefs/pref_registry_simple.h" |
| 12 #include "base/prefs/testing_pref_service.h" | 14 #include "base/prefs/testing_pref_service.h" |
| 13 #include "base/run_loop.h" | 15 #include "base/run_loop.h" |
| 14 #include "chrome/browser/chromeos/policy/device_cloud_policy_store_chromeos.h" | 16 #include "chrome/browser/chromeos/policy/device_cloud_policy_store_chromeos.h" |
| 15 #include "chrome/browser/chromeos/policy/enterprise_install_attributes.h" | 17 #include "chrome/browser/chromeos/policy/enterprise_install_attributes.h" |
| 16 #include "chrome/browser/chromeos/policy/proto/chrome_device_policy.pb.h" | 18 #include "chrome/browser/chromeos/policy/proto/chrome_device_policy.pb.h" |
| (...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 254 | 256 |
| 255 manager_->Connect(&local_state_, | 257 manager_->Connect(&local_state_, |
| 256 &device_management_service_, | 258 &device_management_service_, |
| 257 scoped_ptr<CloudPolicyClient::StatusProvider>()); | 259 scoped_ptr<CloudPolicyClient::StatusProvider>()); |
| 258 EXPECT_TRUE(manager_->policies().Equals(bundle)); | 260 EXPECT_TRUE(manager_->policies().Equals(bundle)); |
| 259 | 261 |
| 260 manager_->Shutdown(); | 262 manager_->Shutdown(); |
| 261 EXPECT_TRUE(manager_->policies().Equals(bundle)); | 263 EXPECT_TRUE(manager_->policies().Equals(bundle)); |
| 262 } | 264 } |
| 263 | 265 |
| 266 class DeviceCloudPolicyManagerChromeOSStateKeyTest : public testing::Test { | |
| 267 protected: | |
| 268 DeviceCloudPolicyManagerChromeOSStateKeyTest() {} | |
| 269 | |
| 270 virtual void SetUp() OVERRIDE { | |
| 271 chromeos::system::StatisticsProvider::SetTestProvider( | |
| 272 &statistics_provider_); | |
|
Joao da Silva
2014/03/27 15:45:40
Remove this on TearDown?
Mattias Nissler (ping if slow)
2014/03/27 16:12:41
I debated it as it's not strictly needed (i.e. tes
Joao da Silva
2014/03/27 16:29:48
Note that this mock object will remain as the stat
Mattias Nissler (ping if slow)
2014/03/27 17:04:08
Uh, good point. Fixed. Globals suck.
| |
| 273 EXPECT_CALL(statistics_provider_, GetMachineStatistic(_, _)) | |
| 274 .WillRepeatedly(Invoke(this, | |
| 275 &DeviceCloudPolicyManagerChromeOSStateKeyTest:: | |
| 276 GetMachineStatistic)); | |
| 277 } | |
| 278 | |
| 279 bool GetMachineStatistic(const std::string& name, std::string* result) { | |
| 280 *result = "fake-" + name; | |
| 281 return true; | |
| 282 } | |
| 283 | |
| 284 private: | |
| 285 chromeos::system::MockStatisticsProvider statistics_provider_; | |
| 286 | |
| 287 DISALLOW_COPY_AND_ASSIGN(DeviceCloudPolicyManagerChromeOSStateKeyTest); | |
| 288 }; | |
| 289 | |
| 290 TEST_F(DeviceCloudPolicyManagerChromeOSStateKeyTest, GetDeviceStateKeys) { | |
| 291 base::Time current = base::Time::UnixEpoch() + base::TimeDelta::FromDays(100); | |
| 292 | |
| 293 // The correct number of state keys gets returned. | |
| 294 std::vector<std::string> state_keys; | |
| 295 EXPECT_TRUE(DeviceCloudPolicyManagerChromeOS::GetDeviceStateKeys( | |
| 296 current, &state_keys)); | |
| 297 EXPECT_EQ(DeviceCloudPolicyManagerChromeOS::kDeviceStateKeyFutureQuanta, | |
| 298 static_cast<int>(state_keys.size())); | |
| 299 | |
| 300 // All state keys are different. | |
| 301 std::set<std::string> state_key_set(state_keys.begin(), state_keys.end()); | |
| 302 EXPECT_EQ(DeviceCloudPolicyManagerChromeOS::kDeviceStateKeyFutureQuanta, | |
| 303 static_cast<int>(state_key_set.size())); | |
| 304 | |
| 305 // Incrementing time results in the state keys rolling forward. | |
| 306 int64 step = | |
| 307 GG_INT64_C(1) | |
| 308 << DeviceCloudPolicyManagerChromeOS::kDeviceStateKeyTimeQuantumPower; | |
| 309 current += 2 * base::TimeDelta::FromSeconds(step); | |
| 310 | |
| 311 std::vector<std::string> new_state_keys; | |
| 312 EXPECT_TRUE(DeviceCloudPolicyManagerChromeOS::GetDeviceStateKeys( | |
| 313 current, &new_state_keys)); | |
| 314 ASSERT_EQ(DeviceCloudPolicyManagerChromeOS::kDeviceStateKeyFutureQuanta, | |
| 315 static_cast<int>(new_state_keys.size())); | |
| 316 EXPECT_TRUE(std::equal(state_keys.begin() + 2, state_keys.end(), | |
| 317 new_state_keys.begin())); | |
| 318 } | |
|
Joao da Silva
2014/03/27 15:45:40
Suggestion: verify that a small time increase with
Mattias Nissler (ping if slow)
2014/03/27 16:12:41
Good idea, done.
| |
| 319 | |
| 264 class DeviceCloudPolicyManagerChromeOSEnrollmentTest | 320 class DeviceCloudPolicyManagerChromeOSEnrollmentTest |
| 265 : public DeviceCloudPolicyManagerChromeOSTest { | 321 : public DeviceCloudPolicyManagerChromeOSTest { |
| 266 public: | 322 public: |
| 267 void Done(EnrollmentStatus status) { | 323 void Done(EnrollmentStatus status) { |
| 268 status_ = status; | 324 status_ = status; |
| 269 done_ = true; | 325 done_ = true; |
| 270 } | 326 } |
| 271 | 327 |
| 272 protected: | 328 protected: |
| 273 DeviceCloudPolicyManagerChromeOSEnrollmentTest() | 329 DeviceCloudPolicyManagerChromeOSEnrollmentTest() |
| (...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 575 | 631 |
| 576 TEST_F(DeviceCloudPolicyManagerChromeOSEnrollmentBlankSystemSaltTest, | 632 TEST_F(DeviceCloudPolicyManagerChromeOSEnrollmentBlankSystemSaltTest, |
| 577 RobotRefreshSaveFailed) { | 633 RobotRefreshSaveFailed) { |
| 578 // Without the system salt, the robot token can't be stored. | 634 // Without the system salt, the robot token can't be stored. |
| 579 RunTest(); | 635 RunTest(); |
| 580 ExpectFailedEnrollment(EnrollmentStatus::STATUS_ROBOT_REFRESH_STORE_FAILED); | 636 ExpectFailedEnrollment(EnrollmentStatus::STATUS_ROBOT_REFRESH_STORE_FAILED); |
| 581 } | 637 } |
| 582 | 638 |
| 583 } // namespace | 639 } // namespace |
| 584 } // namespace policy | 640 } // namespace policy |
| OLD | NEW |