| 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 |