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 |