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 "base/values.h" | 5 #include "base/values.h" |
| 6 #include "chrome/browser/policy/asynchronous_policy_loader.h" | 6 #include "chrome/browser/policy/asynchronous_policy_loader.h" |
| 7 #include "chrome/browser/policy/asynchronous_policy_provider.h" | 7 #include "chrome/browser/policy/asynchronous_policy_provider.h" |
| 8 #include "chrome/browser/policy/asynchronous_policy_test_base.h" | 8 #include "chrome/browser/policy/asynchronous_policy_test_base.h" |
| 9 #include "chrome/browser/policy/configuration_policy_pref_store.h" | 9 #include "chrome/browser/policy/configuration_policy_pref_store.h" |
| 10 #include "chrome/browser/policy/configuration_policy_provider.h" | 10 #include "chrome/browser/policy/configuration_policy_provider.h" |
| 11 #include "chrome/browser/policy/mock_configuration_policy_provider.h" | 11 #include "chrome/browser/policy/mock_configuration_policy_provider.h" |
| 12 #include "chrome/browser/policy/policy_map.h" | 12 #include "chrome/browser/policy/policy_map.h" |
| 13 #include "policy/policy_constants.h" | 13 #include "policy/policy_constants.h" |
| 14 #include "testing/gmock/include/gmock/gmock.h" | 14 #include "testing/gmock/include/gmock/gmock.h" |
| 15 #include "testing/gtest/include/gtest/gtest.h" | 15 #include "testing/gtest/include/gtest/gtest.h" |
| 16 | 16 |
| 17 using ::testing::InSequence; | 17 using ::testing::InSequence; |
| 18 using ::testing::Return; | 18 using ::testing::Return; |
| 19 using ::testing::_; | 19 using ::testing::_; |
| 20 | 20 |
| 21 namespace policy { | 21 namespace policy { |
| 22 | 22 |
| 23 // Creating the provider should provide initial policy. | 23 // Creating the provider should provide initial policy. |
| 24 TEST_F(AsynchronousPolicyTestBase, Provide) { | 24 TEST_F(AsynchronousPolicyTestBase, Provide) { |
| 25 InSequence s; | 25 InSequence s; |
| 26 PolicyMap* policies = new PolicyMap(); | 26 PolicyBundle* bundle = new PolicyBundle(); |
| 27 policies->Set(key::kSyncDisabled, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 27 bundle->Get(POLICY_DOMAIN_CHROME, "") |
| 28 Value::CreateBooleanValue(true)); | 28 .Set(key::kSyncDisabled, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 29 base::Value::CreateBooleanValue(true)); | |
| 29 ProviderDelegateMock* delegate = new ProviderDelegateMock(); | 30 ProviderDelegateMock* delegate = new ProviderDelegateMock(); |
| 30 EXPECT_CALL(*delegate, Load()).WillOnce(Return(policies)); | 31 EXPECT_CALL(*delegate, MockLoad()).WillOnce(Return(bundle)); |
| 31 AsynchronousPolicyProvider provider( | 32 AsynchronousPolicyProvider provider( |
| 32 GetChromePolicyDefinitionList(), | 33 GetChromePolicyDefinitionList(), |
| 33 new AsynchronousPolicyLoader(delegate, 10)); | 34 new AsynchronousPolicyLoader(delegate, 10)); |
| 34 PolicyMap policy_map; | |
| 35 provider.Provide(&policy_map); | |
| 36 base::FundamentalValue expected(true); | 35 base::FundamentalValue expected(true); |
| 37 EXPECT_TRUE(Value::Equals(&expected, | 36 const PolicyMap& policies = provider.policies().Get(POLICY_DOMAIN_CHROME, ""); |
| 38 policy_map.GetValue(key::kSyncDisabled))); | 37 EXPECT_TRUE(base::Value::Equals(&expected, |
| 39 EXPECT_EQ(1U, policy_map.size()); | 38 policies.GetValue(key::kSyncDisabled))); |
| 39 EXPECT_EQ(1U, policies.size()); | |
|
Mattias Nissler (ping if slow)
2012/05/14 16:55:59
Might want to check that other namespaces are empt
Joao da Silva
2012/05/15 13:07:05
Done.
| |
| 40 } | 40 } |
| 41 | 41 |
| 42 | |
| 43 // Trigger a refresh manually and ensure that policy gets reloaded. | 42 // Trigger a refresh manually and ensure that policy gets reloaded. |
| 44 TEST_F(AsynchronousPolicyTestBase, ProvideAfterRefresh) { | 43 TEST_F(AsynchronousPolicyTestBase, ProvideAfterRefresh) { |
| 45 InSequence s; | 44 InSequence s; |
| 46 PolicyMap* original_policies = new PolicyMap(); | 45 PolicyBundle* original_policies = new PolicyBundle(); |
| 47 original_policies->Set(key::kSyncDisabled, POLICY_LEVEL_MANDATORY, | 46 original_policies->Get(POLICY_DOMAIN_CHROME, "") |
| 48 POLICY_SCOPE_USER, Value::CreateBooleanValue(true)); | 47 .Set(key::kSyncDisabled, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 48 base::Value::CreateBooleanValue(true)); | |
| 49 ProviderDelegateMock* delegate = new ProviderDelegateMock(); | 49 ProviderDelegateMock* delegate = new ProviderDelegateMock(); |
| 50 EXPECT_CALL(*delegate, Load()).WillOnce(Return(original_policies)); | 50 EXPECT_CALL(*delegate, MockLoad()).WillOnce(Return(original_policies)); |
| 51 PolicyMap* refresh_policies = new PolicyMap(); | 51 PolicyBundle* refresh_policies = new PolicyBundle(); |
| 52 refresh_policies->Set(key::kJavascriptEnabled, POLICY_LEVEL_MANDATORY, | 52 refresh_policies->Get(POLICY_DOMAIN_CHROME, "") |
| 53 POLICY_SCOPE_USER, Value::CreateBooleanValue(true)); | 53 .Set(key::kJavascriptEnabled, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 54 EXPECT_CALL(*delegate, Load()).WillOnce(Return(refresh_policies)); | 54 base::Value::CreateBooleanValue(true)); |
| 55 EXPECT_CALL(*delegate, MockLoad()).WillOnce(Return(refresh_policies)); | |
| 55 AsynchronousPolicyLoader* loader = new AsynchronousPolicyLoader(delegate, 10); | 56 AsynchronousPolicyLoader* loader = new AsynchronousPolicyLoader(delegate, 10); |
| 56 AsynchronousPolicyProvider provider(GetChromePolicyDefinitionList(), | 57 AsynchronousPolicyProvider provider(GetChromePolicyDefinitionList(), loader); |
| 57 loader); | |
| 58 // The original policies have been loaded. | 58 // The original policies have been loaded. |
| 59 PolicyMap policy_map; | 59 PolicyMap expected; |
| 60 provider.Provide(&policy_map); | 60 expected.Set(key::kSyncDisabled, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 61 EXPECT_EQ(1U, policy_map.size()); | 61 base::Value::CreateBooleanValue(true)); |
| 62 base::FundamentalValue expected(true); | 62 EXPECT_TRUE( |
| 63 EXPECT_TRUE(Value::Equals(&expected, | 63 expected.Equals(provider.policies().Get(POLICY_DOMAIN_CHROME, ""))); |
|
Mattias Nissler (ping if slow)
2012/05/14 16:55:59
Would be nice if we could just compare the policy
Joao da Silva
2012/05/15 13:07:05
Done.
| |
| 64 policy_map.GetValue(key::kSyncDisabled))); | |
| 65 EXPECT_FALSE(policy_map.Get(key::kJavascriptEnabled)); | |
| 66 | 64 |
| 67 MockConfigurationPolicyObserver observer; | 65 MockConfigurationPolicyObserver observer; |
| 68 ConfigurationPolicyObserverRegistrar registrar; | 66 ConfigurationPolicyObserverRegistrar registrar; |
| 69 registrar.Init(&provider, &observer); | 67 registrar.Init(&provider, &observer); |
| 70 EXPECT_CALL(observer, OnUpdatePolicy(&provider)).Times(1); | 68 EXPECT_CALL(observer, OnUpdatePolicy(&provider)).Times(1); |
| 71 provider.RefreshPolicies(); | 69 provider.RefreshPolicies(); |
| 72 loop_.RunAllPending(); | 70 loop_.RunAllPending(); |
| 73 // The refreshed policies are now provided. | 71 // The refreshed policies are now provided. |
| 74 policy_map.Clear(); | 72 expected.Clear(); |
| 75 provider.Provide(&policy_map); | 73 expected.Set(key::kJavascriptEnabled, POLICY_LEVEL_MANDATORY, |
| 76 EXPECT_EQ(1U, policy_map.size()); | 74 POLICY_SCOPE_USER, base::Value::CreateBooleanValue(true)); |
| 77 EXPECT_TRUE(Value::Equals(&expected, | 75 EXPECT_TRUE( |
| 78 policy_map.GetValue(key::kJavascriptEnabled))); | 76 expected.Equals(provider.policies().Get(POLICY_DOMAIN_CHROME, ""))); |
| 79 EXPECT_FALSE(policy_map.Get(key::kSyncDisabled)); | |
| 80 } | 77 } |
| 81 | 78 |
| 82 } // namespace policy | 79 } // namespace policy |
| OLD | NEW |