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

Side by Side 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: Oops. Created 8 years, 4 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698