| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/cloud_policy_provider.h" | 5 #include "chrome/browser/policy/cloud_policy_provider.h" |
| 6 | 6 |
| 7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
| 8 #include "base/values.h" | 8 #include "base/values.h" |
| 9 #include "chrome/browser/policy/cloud_policy_cache_base.h" | 9 #include "chrome/browser/policy/cloud_policy_cache_base.h" |
| 10 #include "chrome/browser/policy/cloud_policy_provider_impl.h" | 10 #include "chrome/browser/policy/cloud_policy_provider_impl.h" |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 121 TEST_F(CloudPolicyProviderTest, | 121 TEST_F(CloudPolicyProviderTest, |
| 122 ProxySettingDistributedOverMultipleCaches) { | 122 ProxySettingDistributedOverMultipleCaches) { |
| 123 // There are proxy_policy_count()+1 = 6 caches and they are mixed together by | 123 // There are proxy_policy_count()+1 = 6 caches and they are mixed together by |
| 124 // one instance of CloudPolicyProvider. The first cache has some policies but | 124 // one instance of CloudPolicyProvider. The first cache has some policies but |
| 125 // no proxy-related ones. The following caches have each one proxy-policy set. | 125 // no proxy-related ones. The following caches have each one proxy-policy set. |
| 126 const int n = 6; | 126 const int n = 6; |
| 127 MockCloudPolicyCache caches[n]; | 127 MockCloudPolicyCache caches[n]; |
| 128 | 128 |
| 129 // Prepare |cache[0]| to serve some non-proxy policies. | 129 // Prepare |cache[0]| to serve some non-proxy policies. |
| 130 caches[0].raw_mandatory_policy()->Set(kPolicyShowHomeButton, | 130 caches[0].raw_mandatory_policy()->Set(kPolicyShowHomeButton, |
| 131 Value::CreateBooleanValue(true)); | 131 base::TrueValue()); |
| 132 caches[0].raw_mandatory_policy()->Set(kPolicyIncognitoEnabled, | 132 caches[0].raw_mandatory_policy()->Set(kPolicyIncognitoEnabled, |
| 133 Value::CreateBooleanValue(true)); | 133 base::TrueValue()); |
| 134 caches[0].raw_mandatory_policy()->Set(kPolicyTranslateEnabled, | 134 caches[0].raw_mandatory_policy()->Set(kPolicyTranslateEnabled, |
| 135 Value::CreateBooleanValue(true)); | 135 base::TrueValue()); |
| 136 caches[0].set_initialized(true); | 136 caches[0].set_initialized(true); |
| 137 | 137 |
| 138 // Prepare the other caches to serve one proxy-policy each. | 138 // Prepare the other caches to serve one proxy-policy each. |
| 139 caches[1].raw_mandatory_policy()->Set(kPolicyProxyMode, | 139 caches[1].raw_mandatory_policy()->Set(kPolicyProxyMode, |
| 140 Value::CreateStringValue("cache 1")); | 140 base::StringValue::New("cache 1")); |
| 141 caches[1].set_initialized(true); | 141 caches[1].set_initialized(true); |
| 142 caches[2].raw_mandatory_policy()->Set(kPolicyProxyServerMode, | 142 caches[2].raw_mandatory_policy()->Set(kPolicyProxyServerMode, |
| 143 Value::CreateIntegerValue(2)); | 143 base::NumberValue::New(2)); |
| 144 caches[2].set_initialized(true); | 144 caches[2].set_initialized(true); |
| 145 caches[3].raw_mandatory_policy()->Set(kPolicyProxyServer, | 145 caches[3].raw_mandatory_policy()->Set(kPolicyProxyServer, |
| 146 Value::CreateStringValue("cache 3")); | 146 base::StringValue::New("cache 3")); |
| 147 caches[3].set_initialized(true); | 147 caches[3].set_initialized(true); |
| 148 caches[4].raw_mandatory_policy()->Set(kPolicyProxyPacUrl, | 148 caches[4].raw_mandatory_policy()->Set(kPolicyProxyPacUrl, |
| 149 Value::CreateStringValue("cache 4")); | 149 base::StringValue::New("cache 4")); |
| 150 caches[4].set_initialized(true); | 150 caches[4].set_initialized(true); |
| 151 caches[5].raw_mandatory_policy()->Set(kPolicyProxyMode, | 151 caches[5].raw_mandatory_policy()->Set(kPolicyProxyMode, |
| 152 Value::CreateStringValue("cache 5")); | 152 base::StringValue::New("cache 5")); |
| 153 caches[5].set_initialized(true); | 153 caches[5].set_initialized(true); |
| 154 | 154 |
| 155 RunCachesThroughProvider( | 155 RunCachesThroughProvider( |
| 156 caches, n, CloudPolicyCacheBase::POLICY_LEVEL_MANDATORY); | 156 caches, n, CloudPolicyCacheBase::POLICY_LEVEL_MANDATORY); |
| 157 | 157 |
| 158 // Verify expectations. | 158 // Verify expectations. |
| 159 ExpectStringPolicy("cache 1", kPolicyProxyMode); | 159 ExpectStringPolicy("cache 1", kPolicyProxyMode); |
| 160 ExpectNoPolicy(kPolicyProxyServerMode); | 160 ExpectNoPolicy(kPolicyProxyServerMode); |
| 161 ExpectNoPolicy(kPolicyProxyServer); | 161 ExpectNoPolicy(kPolicyProxyServer); |
| 162 ExpectNoPolicy(kPolicyProxyPacUrl); | 162 ExpectNoPolicy(kPolicyProxyPacUrl); |
| 163 ExpectBoolPolicy(true, kPolicyShowHomeButton); | 163 ExpectBoolPolicy(true, kPolicyShowHomeButton); |
| 164 ExpectBoolPolicy(true, kPolicyIncognitoEnabled); | 164 ExpectBoolPolicy(true, kPolicyIncognitoEnabled); |
| 165 ExpectBoolPolicy(true, kPolicyTranslateEnabled); | 165 ExpectBoolPolicy(true, kPolicyTranslateEnabled); |
| 166 } | 166 } |
| 167 | 167 |
| 168 // Combining two PolicyMaps. | 168 // Combining two PolicyMaps. |
| 169 TEST_F(CloudPolicyProviderTest, CombineTwoPolicyMapsSame) { | 169 TEST_F(CloudPolicyProviderTest, CombineTwoPolicyMapsSame) { |
| 170 PolicyMap A, B, C; | 170 PolicyMap A, B, C; |
| 171 CreateCloudPolicyProvider(CloudPolicyCacheBase::POLICY_LEVEL_RECOMMENDED); | 171 CreateCloudPolicyProvider(CloudPolicyCacheBase::POLICY_LEVEL_RECOMMENDED); |
| 172 A.Set(kPolicyHomepageLocation, | 172 A.Set(kPolicyHomepageLocation, |
| 173 Value::CreateStringValue("http://www.chromium.org")); | 173 base::StringValue::New("http://www.chromium.org")); |
| 174 B.Set(kPolicyHomepageLocation, | 174 B.Set(kPolicyHomepageLocation, |
| 175 Value::CreateStringValue("http://www.google.com")); | 175 base::StringValue::New("http://www.google.com")); |
| 176 A.Set(kPolicyApplicationLocaleValue, Value::CreateStringValue("hu")); | 176 A.Set(kPolicyApplicationLocaleValue, base::StringValue::New("hu")); |
| 177 B.Set(kPolicyApplicationLocaleValue, Value::CreateStringValue("us")); | 177 B.Set(kPolicyApplicationLocaleValue, base::StringValue::New("us")); |
| 178 A.Set(kPolicyDevicePolicyRefreshRate, new base::FundamentalValue(100)); | 178 A.Set(kPolicyDevicePolicyRefreshRate, base::NumberValue::New(100)); |
| 179 B.Set(kPolicyDevicePolicyRefreshRate, new base::FundamentalValue(200)); | 179 B.Set(kPolicyDevicePolicyRefreshRate, base::NumberValue::New(200)); |
| 180 CombineTwoPolicyMaps(A, B, &C); | 180 CombineTwoPolicyMaps(A, B, &C); |
| 181 EXPECT_TRUE(A.Equals(C)); | 181 EXPECT_TRUE(A.Equals(C)); |
| 182 } | 182 } |
| 183 | 183 |
| 184 TEST_F(CloudPolicyProviderTest, CombineTwoPolicyMapsEmpty) { | 184 TEST_F(CloudPolicyProviderTest, CombineTwoPolicyMapsEmpty) { |
| 185 PolicyMap A, B, C; | 185 PolicyMap A, B, C; |
| 186 CreateCloudPolicyProvider(CloudPolicyCacheBase::POLICY_LEVEL_RECOMMENDED); | 186 CreateCloudPolicyProvider(CloudPolicyCacheBase::POLICY_LEVEL_RECOMMENDED); |
| 187 CombineTwoPolicyMaps(A, B, &C); | 187 CombineTwoPolicyMaps(A, B, &C); |
| 188 EXPECT_TRUE(C.empty()); | 188 EXPECT_TRUE(C.empty()); |
| 189 } | 189 } |
| 190 | 190 |
| 191 TEST_F(CloudPolicyProviderTest, CombineTwoPolicyMapsPartial) { | 191 TEST_F(CloudPolicyProviderTest, CombineTwoPolicyMapsPartial) { |
| 192 PolicyMap A, B, C; | 192 PolicyMap A, B, C; |
| 193 CreateCloudPolicyProvider(CloudPolicyCacheBase::POLICY_LEVEL_RECOMMENDED); | 193 CreateCloudPolicyProvider(CloudPolicyCacheBase::POLICY_LEVEL_RECOMMENDED); |
| 194 | 194 |
| 195 A.Set(kPolicyHomepageLocation, | 195 A.Set(kPolicyHomepageLocation, |
| 196 Value::CreateStringValue("http://www.chromium.org")); | 196 base::StringValue::New("http://www.chromium.org")); |
| 197 B.Set(kPolicyHomepageLocation, | 197 B.Set(kPolicyHomepageLocation, |
| 198 Value::CreateStringValue("http://www.google.com")); | 198 base::StringValue::New("http://www.google.com")); |
| 199 B.Set(kPolicyApplicationLocaleValue, Value::CreateStringValue("us")); | 199 B.Set(kPolicyApplicationLocaleValue, base::StringValue::New("us")); |
| 200 A.Set(kPolicyDevicePolicyRefreshRate, new base::FundamentalValue(100)); | 200 A.Set(kPolicyDevicePolicyRefreshRate, base::NumberValue::New(100)); |
| 201 B.Set(kPolicyDevicePolicyRefreshRate, new base::FundamentalValue(200)); | 201 B.Set(kPolicyDevicePolicyRefreshRate, base::NumberValue::New(200)); |
| 202 CombineTwoPolicyMaps(A, B, &C); | 202 CombineTwoPolicyMaps(A, B, &C); |
| 203 | 203 |
| 204 const Value* value; | 204 const Value* value; |
| 205 std::string string_value; | 205 std::string string_value; |
| 206 int int_value; | 206 int int_value; |
| 207 value = C.Get(kPolicyHomepageLocation); | 207 value = C.Get(kPolicyHomepageLocation); |
| 208 ASSERT_TRUE(NULL != value); | 208 ASSERT_TRUE(NULL != value); |
| 209 EXPECT_TRUE(value->GetAsString(&string_value)); | 209 EXPECT_TRUE(value->GetAsString(&string_value)); |
| 210 EXPECT_EQ("http://www.chromium.org", string_value); | 210 EXPECT_EQ("http://www.chromium.org", string_value); |
| 211 value = C.Get(kPolicyApplicationLocaleValue); | 211 value = C.Get(kPolicyApplicationLocaleValue); |
| 212 ASSERT_TRUE(NULL != value); | 212 ASSERT_TRUE(NULL != value); |
| 213 EXPECT_TRUE(value->GetAsString(&string_value)); | 213 EXPECT_TRUE(value->GetAsString(&string_value)); |
| 214 EXPECT_EQ("us", string_value); | 214 EXPECT_EQ("us", string_value); |
| 215 value = C.Get(kPolicyDevicePolicyRefreshRate); | 215 value = C.Get(kPolicyDevicePolicyRefreshRate); |
| 216 ASSERT_TRUE(NULL != value); | 216 ASSERT_TRUE(NULL != value); |
| 217 EXPECT_TRUE(value->GetAsInteger(&int_value)); | 217 EXPECT_TRUE(value->GetAsInteger(&int_value)); |
| 218 EXPECT_EQ(100, int_value); | 218 EXPECT_EQ(100, int_value); |
| 219 } | 219 } |
| 220 | 220 |
| 221 TEST_F(CloudPolicyProviderTest, CombineTwoPolicyMapsProxies) { | 221 TEST_F(CloudPolicyProviderTest, CombineTwoPolicyMapsProxies) { |
| 222 const int a_value = 1; | 222 const int a_value = 1; |
| 223 const int b_value = -1; | 223 const int b_value = -1; |
| 224 PolicyMap A, B, C; | 224 PolicyMap A, B, C; |
| 225 CreateCloudPolicyProvider(CloudPolicyCacheBase::POLICY_LEVEL_RECOMMENDED); | 225 CreateCloudPolicyProvider(CloudPolicyCacheBase::POLICY_LEVEL_RECOMMENDED); |
| 226 | 226 |
| 227 A.Set(policy::kPolicyProxyMode, Value::CreateIntegerValue(a_value)); | 227 A.Set(policy::kPolicyProxyMode, base::NumberValue::New(a_value)); |
| 228 | 228 |
| 229 B.Set(policy::kPolicyProxyServerMode, Value::CreateIntegerValue(b_value)); | 229 B.Set(policy::kPolicyProxyServerMode, base::NumberValue::New(b_value)); |
| 230 B.Set(policy::kPolicyProxyServer, Value::CreateIntegerValue(b_value)); | 230 B.Set(policy::kPolicyProxyServer, base::NumberValue::New(b_value)); |
| 231 B.Set(policy::kPolicyProxyPacUrl, Value::CreateIntegerValue(b_value)); | 231 B.Set(policy::kPolicyProxyPacUrl, base::NumberValue::New(b_value)); |
| 232 B.Set(policy::kPolicyProxyBypassList, Value::CreateIntegerValue(b_value)); | 232 B.Set(policy::kPolicyProxyBypassList, base::NumberValue::New(b_value)); |
| 233 | 233 |
| 234 CombineTwoPolicyMaps(A, B, &C); | 234 CombineTwoPolicyMaps(A, B, &C); |
| 235 | 235 |
| 236 EXPECT_TRUE(A.Equals(C)); | 236 EXPECT_TRUE(A.Equals(C)); |
| 237 EXPECT_FALSE(B.Equals(C)); | 237 EXPECT_FALSE(B.Equals(C)); |
| 238 } | 238 } |
| 239 | 239 |
| 240 } // namespace policy | 240 } // namespace policy |
| OLD | NEW |