OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "components/policy/core/common/policy_map.h" | 5 #include "components/policy/core/common/policy_map.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/callback.h" | 10 #include "base/callback.h" |
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
178 nullptr); | 178 nullptr); |
179 a.Set(kTestPolicyName3, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, | 179 a.Set(kTestPolicyName3, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
180 POLICY_SOURCE_ENTERPRISE_DEFAULT, nullptr, | 180 POLICY_SOURCE_ENTERPRISE_DEFAULT, nullptr, |
181 CreateExternalDataFetcher("a")); | 181 CreateExternalDataFetcher("a")); |
182 a.Set(kTestPolicyName4, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER, | 182 a.Set(kTestPolicyName4, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER, |
183 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>(false), | 183 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>(false), |
184 nullptr); | 184 nullptr); |
185 a.Set(kTestPolicyName5, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_MACHINE, | 185 a.Set(kTestPolicyName5, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_MACHINE, |
186 POLICY_SOURCE_CLOUD, | 186 POLICY_SOURCE_CLOUD, |
187 base::MakeUnique<base::StringValue>("google.com/q={x}"), nullptr); | 187 base::MakeUnique<base::StringValue>("google.com/q={x}"), nullptr); |
| 188 a.Set(kTestPolicyName7, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 189 POLICY_SOURCE_ENTERPRISE_DEFAULT, |
| 190 base::MakeUnique<base::FundamentalValue>(false), nullptr); |
188 | 191 |
189 PolicyMap b; | 192 PolicyMap b; |
190 b.Set(kTestPolicyName1, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, | 193 b.Set(kTestPolicyName1, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
191 POLICY_SOURCE_CLOUD, | 194 POLICY_SOURCE_CLOUD, |
192 base::MakeUnique<base::StringValue>("chromium.org"), nullptr); | 195 base::MakeUnique<base::StringValue>("chromium.org"), nullptr); |
193 b.Set(kTestPolicyName2, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, | 196 b.Set(kTestPolicyName2, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
194 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>(false), | 197 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>(false), |
195 nullptr); | 198 nullptr); |
196 b.Set(kTestPolicyName3, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, | 199 b.Set(kTestPolicyName3, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
197 POLICY_SOURCE_CLOUD, nullptr, CreateExternalDataFetcher("b")); | 200 POLICY_SOURCE_ENTERPRISE_DEFAULT, nullptr, |
| 201 CreateExternalDataFetcher("b")); |
198 b.Set(kTestPolicyName4, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_MACHINE, | 202 b.Set(kTestPolicyName4, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_MACHINE, |
199 POLICY_SOURCE_PUBLIC_SESSION_OVERRIDE, | 203 POLICY_SOURCE_PUBLIC_SESSION_OVERRIDE, |
200 base::MakeUnique<base::FundamentalValue>(true), nullptr); | 204 base::MakeUnique<base::FundamentalValue>(true), nullptr); |
201 b.Set(kTestPolicyName5, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, | 205 b.Set(kTestPolicyName5, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
202 POLICY_SOURCE_PLATFORM, | 206 POLICY_SOURCE_PLATFORM, |
203 base::MakeUnique<base::StringValue>(std::string()), nullptr); | 207 base::MakeUnique<base::StringValue>(std::string()), nullptr); |
204 b.Set(kTestPolicyName6, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER, | 208 b.Set(kTestPolicyName6, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER, |
205 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>(true), | 209 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>(true), |
206 nullptr); | 210 nullptr); |
| 211 b.Set(kTestPolicyName7, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 212 POLICY_SOURCE_ACTIVE_DIRECTORY, |
| 213 base::MakeUnique<base::FundamentalValue>(true), nullptr); |
207 | 214 |
208 a.MergeFrom(b); | 215 a.MergeFrom(b); |
209 | 216 |
210 PolicyMap c; | 217 PolicyMap c; |
211 // POLICY_SCOPE_MACHINE over POLICY_SCOPE_USER. | 218 // POLICY_SCOPE_MACHINE over POLICY_SCOPE_USER. |
212 c.Set(kTestPolicyName1, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, | 219 c.Set(kTestPolicyName1, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
213 POLICY_SOURCE_CLOUD, | 220 POLICY_SOURCE_CLOUD, |
214 base::MakeUnique<base::StringValue>("chromium.org"), nullptr); | 221 base::MakeUnique<base::StringValue>("chromium.org"), nullptr); |
215 // |a| has precedence over |b|. | 222 // |a| has precedence over |b|. |
216 c.Set(kTestPolicyName2, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, | 223 c.Set(kTestPolicyName2, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
217 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>(true), | 224 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>(true), |
218 nullptr); | 225 nullptr); |
219 c.Set(kTestPolicyName3, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, | 226 c.Set(kTestPolicyName3, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
220 POLICY_SOURCE_ENTERPRISE_DEFAULT, nullptr, | 227 POLICY_SOURCE_ENTERPRISE_DEFAULT, nullptr, |
221 CreateExternalDataFetcher("a")); | 228 CreateExternalDataFetcher("a")); |
222 // POLICY_SCOPE_MACHINE over POLICY_SCOPE_USER for POLICY_LEVEL_RECOMMENDED. | 229 // POLICY_SCOPE_MACHINE over POLICY_SCOPE_USER for POLICY_LEVEL_RECOMMENDED. |
223 c.Set(kTestPolicyName4, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_MACHINE, | 230 c.Set(kTestPolicyName4, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_MACHINE, |
224 POLICY_SOURCE_PUBLIC_SESSION_OVERRIDE, | 231 POLICY_SOURCE_PUBLIC_SESSION_OVERRIDE, |
225 base::MakeUnique<base::FundamentalValue>(true), nullptr); | 232 base::MakeUnique<base::FundamentalValue>(true), nullptr); |
226 // POLICY_LEVEL_MANDATORY over POLICY_LEVEL_RECOMMENDED. | 233 // POLICY_LEVEL_MANDATORY over POLICY_LEVEL_RECOMMENDED. |
227 c.Set(kTestPolicyName5, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, | 234 c.Set(kTestPolicyName5, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
228 POLICY_SOURCE_PLATFORM, | 235 POLICY_SOURCE_PLATFORM, |
229 base::MakeUnique<base::StringValue>(std::string()), nullptr); | 236 base::MakeUnique<base::StringValue>(std::string()), nullptr); |
230 // Merge new ones. | 237 // Merge new ones. |
231 c.Set(kTestPolicyName6, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER, | 238 c.Set(kTestPolicyName6, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER, |
232 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>(true), | 239 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>(true), |
233 nullptr); | 240 nullptr); |
| 241 // POLICY_SOURCE_ACTIVE_DIRECTORY over POLICY_SOURCE_ENTERPRISE_DEFAULT. |
| 242 c.Set(kTestPolicyName7, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 243 POLICY_SOURCE_ACTIVE_DIRECTORY, |
| 244 base::MakeUnique<base::FundamentalValue>(true), nullptr); |
234 | 245 |
235 EXPECT_TRUE(a.Equals(c)); | 246 EXPECT_TRUE(a.Equals(c)); |
236 } | 247 } |
237 | 248 |
238 TEST_F(PolicyMapTest, GetDifferingKeys) { | 249 TEST_F(PolicyMapTest, GetDifferingKeys) { |
239 PolicyMap a; | 250 PolicyMap a; |
240 a.Set(kTestPolicyName1, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 251 a.Set(kTestPolicyName1, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
241 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>("google.com"), | 252 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>("google.com"), |
242 nullptr); | 253 nullptr); |
243 a.Set(kTestPolicyName2, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, | 254 a.Set(kTestPolicyName2, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
344 a.EraseNonmatching(base::Bind(&IsMandatory)); | 355 a.EraseNonmatching(base::Bind(&IsMandatory)); |
345 | 356 |
346 PolicyMap b; | 357 PolicyMap b; |
347 b.Set(kTestPolicyName1, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 358 b.Set(kTestPolicyName1, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
348 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>("google.com"), | 359 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>("google.com"), |
349 nullptr); | 360 nullptr); |
350 EXPECT_TRUE(a.Equals(b)); | 361 EXPECT_TRUE(a.Equals(b)); |
351 } | 362 } |
352 | 363 |
353 } // namespace policy | 364 } // namespace policy |
OLD | NEW |