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

Unified Diff: chrome/browser/policy/cloud_policy_validator_unittest.cc

Issue 10828032: Add DeviceSettingsService. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase, move to chrome/browser/chromeos/settings. Created 8 years, 5 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/policy/cloud_policy_validator_unittest.cc
diff --git a/chrome/browser/policy/cloud_policy_validator_unittest.cc b/chrome/browser/policy/cloud_policy_validator_unittest.cc
index ee767278e9325bb3a2cc02af99b151a80cdb6c98..3ea44b098fdb9ccccd7d0a29f5c84492d8fe2356 100644
--- a/chrome/browser/policy/cloud_policy_validator_unittest.cc
+++ b/chrome/browser/policy/cloud_policy_validator_unittest.cc
@@ -36,7 +36,11 @@ class CloudPolicyValidatorTest : public testing::Test {
timestamp_(base::Time::UnixEpoch() +
base::TimeDelta::FromMilliseconds(
PolicyBuilder::kFakeTimestamp)),
- file_thread_(content::BrowserThread::FILE, &loop_) {}
+ ignore_missing_timestamp_(false),
+ allow_key_rotation_(true),
+ file_thread_(content::BrowserThread::FILE, &loop_) {
+ policy_.set_new_signing_key(PolicyBuilder::CreateTestNewSigningKey());
+ }
void Validate(testing::Action<void(UserCloudPolicyValidator*)> check_action) {
std::vector<uint8> public_key;
@@ -50,15 +54,18 @@ class CloudPolicyValidatorTest : public testing::Test {
policy_.GetCopy(),
base::Bind(&CloudPolicyValidatorTest::ValidationCompletion,
base::Unretained(this)));
- validator->ValidateTimestamp(timestamp_, timestamp_);
+ validator->ValidateTimestamp(timestamp_, timestamp_,
+ ignore_missing_timestamp_);
validator->ValidateUsername(PolicyBuilder::kFakeUsername);
validator->ValidateDomain(PolicyBuilder::kFakeDomain);
validator->ValidateDMToken(PolicyBuilder::kFakeToken);
validator->ValidatePolicyType(dm_protocol::kChromeUserPolicyType);
validator->ValidatePayload();
- validator->ValidateSignature(std::string(public_key.begin(),
- public_key.end()));
- validator->ValidateInitialKey();
+ validator->ValidateSignature(
+ std::string(public_key.begin(), public_key.end()),
+ allow_key_rotation_);
+ if (allow_key_rotation_)
+ validator->ValidateInitialKey();
// Run validation and check the result.
EXPECT_CALL(*this, ValidationCompletion(validator)).WillOnce(check_action);
@@ -79,7 +86,9 @@ class CloudPolicyValidatorTest : public testing::Test {
MessageLoop loop_;
base::Time timestamp_;
+ bool ignore_missing_timestamp_;
std::string signing_key_;
+ bool allow_key_rotation_;
UserPolicyBuilder policy_;
@@ -116,6 +125,12 @@ TEST_F(CloudPolicyValidatorTest, ErrorNoTimestamp) {
Validate(CheckStatus(CloudPolicyValidatorBase::VALIDATION_BAD_TIMESTAMP));
}
+TEST_F(CloudPolicyValidatorTest, IgnoreMissingTimestamp) {
+ ignore_missing_timestamp_ = true;
+ policy_.policy_data().clear_timestamp();
+ Validate(CheckStatus(CloudPolicyValidatorBase::VALIDATION_OK));
+}
+
TEST_F(CloudPolicyValidatorTest, ErrorOldTimestamp) {
base::Time timestamp(timestamp_ - base::TimeDelta::FromMinutes(5));
policy_.policy_data().set_timestamp(
@@ -217,6 +232,17 @@ TEST_F(CloudPolicyValidatorTest, ErrorInvalidPublicKeySignature) {
Validate(CheckStatus(CloudPolicyValidatorBase::VALIDATION_BAD_SIGNATURE));
}
+TEST_F(CloudPolicyValidatorTest, ErrorNoRotationAllowed) {
+ allow_key_rotation_ = false;
+ Validate(CheckStatus(CloudPolicyValidatorBase::VALIDATION_BAD_SIGNATURE));
+}
+
+TEST_F(CloudPolicyValidatorTest, NoRotation) {
+ allow_key_rotation_ = false;
+ policy_.set_new_signing_key(scoped_ptr<crypto::RSAPrivateKey>());
+ Validate(CheckStatus(CloudPolicyValidatorBase::VALIDATION_OK));
+}
+
} // namespace
} // namespace policy

Powered by Google App Engine
This is Rietveld 408576698