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

Unified Diff: chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos_unittest.cc

Issue 212653004: Update server-backed state key generation. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Make state keys time-dependent. Created 6 years, 9 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/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..b33633042aa872acbf616f3aec22179c928ac22b 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,60 @@ 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_);
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.
+ EXPECT_CALL(statistics_provider_, GetMachineStatistic(_, _))
+ .WillRepeatedly(Invoke(this,
+ &DeviceCloudPolicyManagerChromeOSStateKeyTest::
+ GetMachineStatistic));
+ }
+
+ 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()));
+
+ // Incrementing time results in the state keys rolling forward.
+ int64 step =
+ GG_INT64_C(1)
+ << DeviceCloudPolicyManagerChromeOS::kDeviceStateKeyTimeQuantumPower;
+ current += 2 * base::TimeDelta::FromSeconds(step);
+
+ std::vector<std::string> new_state_keys;
+ 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()));
+}
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.
+
class DeviceCloudPolicyManagerChromeOSEnrollmentTest
: public DeviceCloudPolicyManagerChromeOSTest {
public:

Powered by Google App Engine
This is Rietveld 408576698