| Index: chrome/browser/policy/cloud/cloud_policy_validator_unittest.cc
|
| diff --git a/chrome/browser/policy/cloud/cloud_policy_validator_unittest.cc b/chrome/browser/policy/cloud/cloud_policy_validator_unittest.cc
|
| index ad5ed2bda4b915c3cb81ab8e6891c5e883f9324d..98804da6c2926dab7fe5b02783c7c5ba774adb42 100644
|
| --- a/chrome/browser/policy/cloud/cloud_policy_validator_unittest.cc
|
| +++ b/chrome/browser/policy/cloud/cloud_policy_validator_unittest.cc
|
| @@ -2,9 +2,11 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| +#include <string>
|
| #include <vector>
|
|
|
| #include "base/bind.h"
|
| +#include "base/hash.h"
|
| #include "base/memory/scoped_ptr.h"
|
| #include "base/message_loop/message_loop.h"
|
| #include "base/strings/string_util.h"
|
| @@ -38,6 +40,7 @@ class CloudPolicyValidatorTest : public testing::Test {
|
| PolicyBuilder::kFakeTimestamp)),
|
| ignore_missing_timestamp_(CloudPolicyValidatorBase::TIMESTAMP_REQUIRED),
|
| ignore_missing_dm_token_(CloudPolicyValidatorBase::DM_TOKEN_REQUIRED),
|
| + allow_invalid_payload_(false),
|
| allow_key_rotation_(true),
|
| existing_dm_token_(PolicyBuilder::kFakeToken),
|
| file_thread_(content::BrowserThread::FILE, &loop_) {
|
| @@ -72,7 +75,8 @@ class CloudPolicyValidatorTest : public testing::Test {
|
| validator->ValidateDomain(PolicyBuilder::kFakeDomain);
|
| validator->ValidateDMToken(existing_dm_token_, ignore_missing_dm_token_);
|
| validator->ValidatePolicyType(dm_protocol::kChromeUserPolicyType);
|
| - validator->ValidatePayload();
|
| + if (!allow_invalid_payload_)
|
| + validator->ValidatePayload();
|
| validator->ValidateSignature(public_key, allow_key_rotation_);
|
| if (allow_key_rotation_)
|
| validator->ValidateInitialKey();
|
| @@ -95,6 +99,7 @@ class CloudPolicyValidatorTest : public testing::Test {
|
| CloudPolicyValidatorBase::ValidateTimestampOption ignore_missing_timestamp_;
|
| CloudPolicyValidatorBase::ValidateDMTokenOption ignore_missing_dm_token_;
|
| std::string signing_key_;
|
| + bool allow_invalid_payload_;
|
| bool allow_key_rotation_;
|
| std::string existing_dm_token_;
|
|
|
| @@ -286,6 +291,21 @@ TEST_F(CloudPolicyValidatorTest, NoRotation) {
|
| Validate(CheckStatus(CloudPolicyValidatorBase::VALIDATION_OK));
|
| }
|
|
|
| +TEST_F(CloudPolicyValidatorTest, HashValue) {
|
| + allow_invalid_payload_ = true;
|
| + std::string policy_value = "test";
|
| + uint32 expected_value = base::Hash(policy_value);
|
| + policy_.clear_payload();
|
| + policy_.policy_data().set_policy_value(policy_value);
|
| +
|
| + scoped_ptr<UserCloudPolicyValidator> validator = CreateValidator();
|
| + EXPECT_EQ(0U, validator->hash_value());
|
| + validator->ValidateHashValue();
|
| + validator->RunValidation();
|
| + CheckSuccessfulValidation(validator.get());
|
| + EXPECT_EQ(expected_value, validator->hash_value());
|
| +}
|
| +
|
| } // namespace
|
|
|
| } // namespace policy
|
|
|