| OLD | NEW |
| 1 // Copyright (c) 2011 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 "chrome/browser/policy/asynchronous_policy_loader.h" | 5 #include "chrome/browser/policy/asynchronous_policy_loader.h" |
| 6 #include "chrome/browser/policy/asynchronous_policy_provider.h" | 6 #include "chrome/browser/policy/asynchronous_policy_provider.h" |
| 7 #include "chrome/browser/policy/asynchronous_policy_test_base.h" | 7 #include "chrome/browser/policy/asynchronous_policy_test_base.h" |
| 8 #include "chrome/browser/policy/configuration_policy_pref_store.h" | 8 #include "chrome/browser/policy/configuration_policy_pref_store.h" |
| 9 #include "chrome/browser/policy/configuration_policy_provider.h" | 9 #include "chrome/browser/policy/configuration_policy_provider.h" |
| 10 #include "chrome/browser/policy/mock_configuration_policy_provider.h" | 10 #include "chrome/browser/policy/mock_configuration_policy_provider.h" |
| 11 #include "chrome/browser/policy/policy_map.h" | 11 #include "chrome/browser/policy/policy_map.h" |
| 12 #include "policy/policy_constants.h" | 12 #include "policy/policy_constants.h" |
| 13 #include "testing/gmock/include/gmock/gmock.h" | 13 #include "testing/gmock/include/gmock/gmock.h" |
| 14 #include "testing/gtest/include/gtest/gtest.h" | 14 #include "testing/gtest/include/gtest/gtest.h" |
| 15 | 15 |
| 16 using ::testing::InSequence; | 16 using ::testing::InSequence; |
| 17 using ::testing::Return; | 17 using ::testing::Return; |
| 18 using ::testing::_; | 18 using ::testing::_; |
| 19 | 19 |
| 20 namespace policy { | 20 namespace policy { |
| 21 | 21 |
| 22 // Creating the provider should provide initial policy. | 22 // Creating the provider should provide initial policy. |
| 23 TEST_F(AsynchronousPolicyTestBase, Provide) { | 23 TEST_F(AsynchronousPolicyTestBase, Provide) { |
| 24 InSequence s; | 24 InSequence s; |
| 25 DictionaryValue* policies = new DictionaryValue(); | 25 DictionaryValue* policies = new DictionaryValue(); |
| 26 policies->SetBoolean(policy::key::kSyncDisabled, true); | 26 policies->SetBoolean(key::kSyncDisabled, true); |
| 27 ProviderDelegateMock* delegate = new ProviderDelegateMock(); | 27 ProviderDelegateMock* delegate = new ProviderDelegateMock(); |
| 28 EXPECT_CALL(*delegate, Load()).WillOnce(Return(policies)); | 28 EXPECT_CALL(*delegate, Load()).WillOnce(Return(policies)); |
| 29 AsynchronousPolicyProvider provider( | 29 AsynchronousPolicyProvider provider( |
| 30 GetChromePolicyDefinitionList(), | 30 GetChromePolicyDefinitionList(), |
| 31 POLICY_LEVEL_MANDATORY, |
| 32 POLICY_SCOPE_USER, |
| 31 new AsynchronousPolicyLoader(delegate, 10)); | 33 new AsynchronousPolicyLoader(delegate, 10)); |
| 32 PolicyMap policy_map; | 34 PolicyMap policy_map; |
| 33 provider.Provide(&policy_map); | 35 provider.Provide(&policy_map); |
| 34 EXPECT_TRUE(policy_map.Get(policy::kPolicySyncDisabled)); | 36 EXPECT_TRUE(policy_map.Get(key::kSyncDisabled)); |
| 35 EXPECT_EQ(1U, policy_map.size()); | 37 EXPECT_EQ(1U, policy_map.size()); |
| 36 } | 38 } |
| 37 | 39 |
| 38 | 40 |
| 39 // Trigger a refresh manually and ensure that policy gets reloaded. | 41 // Trigger a refresh manually and ensure that policy gets reloaded. |
| 40 TEST_F(AsynchronousPolicyTestBase, ProvideAfterRefresh) { | 42 TEST_F(AsynchronousPolicyTestBase, ProvideAfterRefresh) { |
| 41 InSequence s; | 43 InSequence s; |
| 42 DictionaryValue* original_policies = new DictionaryValue(); | 44 DictionaryValue* original_policies = new DictionaryValue(); |
| 43 original_policies->SetBoolean(policy::key::kSyncDisabled, true); | 45 original_policies->SetBoolean(key::kSyncDisabled, true); |
| 44 ProviderDelegateMock* delegate = new ProviderDelegateMock(); | 46 ProviderDelegateMock* delegate = new ProviderDelegateMock(); |
| 45 EXPECT_CALL(*delegate, Load()).WillOnce(Return(original_policies)); | 47 EXPECT_CALL(*delegate, Load()).WillOnce(Return(original_policies)); |
| 46 DictionaryValue* refresh_policies = new DictionaryValue(); | 48 DictionaryValue* refresh_policies = new DictionaryValue(); |
| 47 refresh_policies->SetBoolean( | 49 refresh_policies->SetBoolean(key::kJavascriptEnabled, true); |
| 48 policy::key::kJavascriptEnabled, | |
| 49 true); | |
| 50 EXPECT_CALL(*delegate, Load()).WillOnce(Return(refresh_policies)); | 50 EXPECT_CALL(*delegate, Load()).WillOnce(Return(refresh_policies)); |
| 51 AsynchronousPolicyLoader* loader = new AsynchronousPolicyLoader(delegate, 10); | 51 AsynchronousPolicyLoader* loader = new AsynchronousPolicyLoader(delegate, 10); |
| 52 AsynchronousPolicyProvider provider(GetChromePolicyDefinitionList(), loader); | 52 AsynchronousPolicyProvider provider(GetChromePolicyDefinitionList(), |
| 53 | 53 POLICY_LEVEL_MANDATORY, |
| 54 POLICY_SCOPE_USER, |
| 55 loader); |
| 54 // The original policies have been loaded. | 56 // The original policies have been loaded. |
| 55 PolicyMap policy_map; | 57 PolicyMap policy_map; |
| 56 provider.Provide(&policy_map); | 58 provider.Provide(&policy_map); |
| 57 EXPECT_EQ(1U, policy_map.size()); | 59 EXPECT_EQ(1U, policy_map.size()); |
| 58 EXPECT_TRUE(policy_map.Get(policy::kPolicySyncDisabled)); | 60 EXPECT_TRUE(policy_map.Get(key::kSyncDisabled)); |
| 59 EXPECT_FALSE(policy_map.Get(policy::kPolicyJavascriptEnabled)); | 61 EXPECT_FALSE(policy_map.Get(key::kJavascriptEnabled)); |
| 60 | 62 |
| 61 MockConfigurationPolicyObserver observer; | 63 MockConfigurationPolicyObserver observer; |
| 62 ConfigurationPolicyObserverRegistrar registrar; | 64 ConfigurationPolicyObserverRegistrar registrar; |
| 63 registrar.Init(&provider, &observer); | 65 registrar.Init(&provider, &observer); |
| 64 EXPECT_CALL(observer, OnUpdatePolicy(&provider)).Times(1); | 66 EXPECT_CALL(observer, OnUpdatePolicy(&provider)).Times(1); |
| 65 provider.RefreshPolicies(); | 67 provider.RefreshPolicies(); |
| 66 loop_.RunAllPending(); | 68 loop_.RunAllPending(); |
| 67 // The refreshed policies are now provided. | 69 // The refreshed policies are now provided. |
| 68 policy_map.Clear(); | 70 policy_map.Clear(); |
| 69 provider.Provide(&policy_map); | 71 provider.Provide(&policy_map); |
| 70 EXPECT_EQ(1U, policy_map.size()); | 72 EXPECT_EQ(1U, policy_map.size()); |
| 71 EXPECT_FALSE(policy_map.Get(policy::kPolicySyncDisabled)); | 73 EXPECT_FALSE(policy_map.Get(key::kSyncDisabled)); |
| 72 EXPECT_TRUE(policy_map.Get(policy::kPolicyJavascriptEnabled)); | 74 EXPECT_TRUE(policy_map.Get(key::kJavascriptEnabled)); |
| 73 } | 75 } |
| 74 | 76 |
| 75 } // namespace policy | 77 } // namespace policy |
| OLD | NEW |