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 <vector> | 5 #include <vector> |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #include "base/message_loop.h" | 9 #include "base/message_loop.h" |
| 10 #include "base/string_util.h" | 10 #include "base/string_util.h" |
| (...skipping 18 matching lines...) Expand all Loading... | |
| 29 EXPECT_EQ(expected_status, arg0->status()); | 29 EXPECT_EQ(expected_status, arg0->status()); |
| 30 }; | 30 }; |
| 31 | 31 |
| 32 class CloudPolicyValidatorTest : public testing::Test { | 32 class CloudPolicyValidatorTest : public testing::Test { |
| 33 public: | 33 public: |
| 34 CloudPolicyValidatorTest() | 34 CloudPolicyValidatorTest() |
| 35 : loop_(MessageLoop::TYPE_UI), | 35 : loop_(MessageLoop::TYPE_UI), |
| 36 timestamp_(base::Time::UnixEpoch() + | 36 timestamp_(base::Time::UnixEpoch() + |
| 37 base::TimeDelta::FromMilliseconds( | 37 base::TimeDelta::FromMilliseconds( |
| 38 PolicyBuilder::kFakeTimestamp)), | 38 PolicyBuilder::kFakeTimestamp)), |
| 39 file_thread_(content::BrowserThread::FILE, &loop_) {} | 39 file_thread_(content::BrowserThread::FILE, &loop_) { |
| 40 policy_.set_new_signing_key(PolicyBuilder::CreateTestNewSigningKey()); | |
|
pastarmovj
2012/07/30 12:19:19
Again I think that tests that don't need special k
Mattias Nissler (ping if slow)
2012/07/31 13:02:15
Have you checked PolicyBuilder? This function actu
| |
| 41 } | |
| 40 | 42 |
| 41 void Validate(testing::Action<void(UserCloudPolicyValidator*)> check_action) { | 43 void Validate(testing::Action<void(UserCloudPolicyValidator*)> check_action) { |
| 42 std::vector<uint8> public_key; | 44 std::vector<uint8> public_key; |
| 43 ASSERT_TRUE( | 45 ASSERT_TRUE( |
| 44 PolicyBuilder::CreateTestSigningKey()->ExportPublicKey(&public_key)); | 46 PolicyBuilder::CreateTestSigningKey()->ExportPublicKey(&public_key)); |
| 45 | 47 |
| 46 // Create a validator. | 48 // Create a validator. |
| 47 policy_.Build(); | 49 policy_.Build(); |
| 48 UserCloudPolicyValidator* validator = | 50 UserCloudPolicyValidator* validator = |
| 49 UserCloudPolicyValidator::Create( | 51 UserCloudPolicyValidator::Create( |
| 50 policy_.GetCopy(), | 52 policy_.GetCopy(), |
| 51 base::Bind(&CloudPolicyValidatorTest::ValidationCompletion, | 53 base::Bind(&CloudPolicyValidatorTest::ValidationCompletion, |
| 52 base::Unretained(this))); | 54 base::Unretained(this))); |
| 53 validator->ValidateTimestamp(timestamp_, timestamp_); | 55 validator->ValidateTimestamp(timestamp_, timestamp_, false); |
|
pastarmovj
2012/07/30 12:19:19
Given that we have some more degrees of freedom no
Mattias Nissler (ping if slow)
2012/07/31 13:02:15
Done.
| |
| 54 validator->ValidateUsername(PolicyBuilder::kFakeUsername); | 56 validator->ValidateUsername(PolicyBuilder::kFakeUsername); |
| 55 validator->ValidateDomain(PolicyBuilder::kFakeDomain); | 57 validator->ValidateDomain(PolicyBuilder::kFakeDomain); |
| 56 validator->ValidateDMToken(PolicyBuilder::kFakeToken); | 58 validator->ValidateDMToken(PolicyBuilder::kFakeToken); |
| 57 validator->ValidatePolicyType(dm_protocol::kChromeUserPolicyType); | 59 validator->ValidatePolicyType(dm_protocol::kChromeUserPolicyType); |
| 58 validator->ValidatePayload(); | 60 validator->ValidatePayload(); |
| 59 validator->ValidateSignature(std::string(public_key.begin(), | 61 validator->ValidateSignature(std::string(public_key.begin(), |
| 60 public_key.end())); | 62 public_key.end()), |
| 63 true); | |
| 61 validator->ValidateInitialKey(); | 64 validator->ValidateInitialKey(); |
| 62 | 65 |
| 63 // Run validation and check the result. | 66 // Run validation and check the result. |
| 64 EXPECT_CALL(*this, ValidationCompletion(validator)).WillOnce(check_action); | 67 EXPECT_CALL(*this, ValidationCompletion(validator)).WillOnce(check_action); |
| 65 validator->StartValidation(); | 68 validator->StartValidation(); |
| 66 loop_.RunAllPending(); | 69 loop_.RunAllPending(); |
| 67 Mock::VerifyAndClearExpectations(this); | 70 Mock::VerifyAndClearExpectations(this); |
| 68 } | 71 } |
| 69 | 72 |
| 70 void CheckSuccessfulValidation(UserCloudPolicyValidator* validator) { | 73 void CheckSuccessfulValidation(UserCloudPolicyValidator* validator) { |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 213 TEST_F(CloudPolicyValidatorTest, ErrorInvalidPublicKeySignature) { | 216 TEST_F(CloudPolicyValidatorTest, ErrorInvalidPublicKeySignature) { |
| 214 policy_.set_signing_key(scoped_ptr<crypto::RSAPrivateKey>()); | 217 policy_.set_signing_key(scoped_ptr<crypto::RSAPrivateKey>()); |
| 215 policy_.set_new_signing_key(scoped_ptr<crypto::RSAPrivateKey>()); | 218 policy_.set_new_signing_key(scoped_ptr<crypto::RSAPrivateKey>()); |
| 216 policy_.policy().set_new_public_key_signature("invalid"); | 219 policy_.policy().set_new_public_key_signature("invalid"); |
| 217 Validate(CheckStatus(CloudPolicyValidatorBase::VALIDATION_BAD_SIGNATURE)); | 220 Validate(CheckStatus(CloudPolicyValidatorBase::VALIDATION_BAD_SIGNATURE)); |
| 218 } | 221 } |
| 219 | 222 |
| 220 } // namespace | 223 } // namespace |
| 221 | 224 |
| 222 } // namespace policy | 225 } // namespace policy |
| OLD | NEW |