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/callback.h" | 10 #include "base/callback.h" |
10 #include "base/memory/ptr_util.h" | 11 #include "base/memory/ptr_util.h" |
11 #include "base/memory/weak_ptr.h" | 12 #include "base/memory/weak_ptr.h" |
12 #include "components/policy/core/common/external_data_manager.h" | 13 #include "components/policy/core/common/external_data_manager.h" |
13 #include "components/policy/core/common/policy_types.h" | 14 #include "components/policy/core/common/policy_types.h" |
14 #include "testing/gtest/include/gtest/gtest.h" | 15 #include "testing/gtest/include/gtest/gtest.h" |
15 | 16 |
16 namespace policy { | 17 namespace policy { |
17 | 18 |
18 namespace { | 19 namespace { |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
62 base::WrapUnique(new base::StringValue("aaa"))); | 63 base::WrapUnique(new base::StringValue("aaa"))); |
63 base::StringValue expected("aaa"); | 64 base::StringValue expected("aaa"); |
64 EXPECT_TRUE(expected.Equals(map.GetValue(kTestPolicyName1))); | 65 EXPECT_TRUE(expected.Equals(map.GetValue(kTestPolicyName1))); |
65 SetPolicy(&map, kTestPolicyName1, | 66 SetPolicy(&map, kTestPolicyName1, |
66 base::WrapUnique(new base::StringValue("bbb"))); | 67 base::WrapUnique(new base::StringValue("bbb"))); |
67 base::StringValue expected_b("bbb"); | 68 base::StringValue expected_b("bbb"); |
68 EXPECT_TRUE(expected_b.Equals(map.GetValue(kTestPolicyName1))); | 69 EXPECT_TRUE(expected_b.Equals(map.GetValue(kTestPolicyName1))); |
69 SetPolicy(&map, kTestPolicyName1, CreateExternalDataFetcher("dummy")); | 70 SetPolicy(&map, kTestPolicyName1, CreateExternalDataFetcher("dummy")); |
70 EXPECT_FALSE(map.GetValue(kTestPolicyName1)); | 71 EXPECT_FALSE(map.GetValue(kTestPolicyName1)); |
71 const PolicyMap::Entry* entry = map.Get(kTestPolicyName1); | 72 const PolicyMap::Entry* entry = map.Get(kTestPolicyName1); |
72 ASSERT_TRUE(entry != NULL); | 73 ASSERT_TRUE(entry != nullptr); |
73 EXPECT_EQ(POLICY_LEVEL_MANDATORY, entry->level); | 74 EXPECT_EQ(POLICY_LEVEL_MANDATORY, entry->level); |
74 EXPECT_EQ(POLICY_SCOPE_USER, entry->scope); | 75 EXPECT_EQ(POLICY_SCOPE_USER, entry->scope); |
75 EXPECT_EQ(POLICY_SOURCE_CLOUD, entry->source); | 76 EXPECT_EQ(POLICY_SOURCE_CLOUD, entry->source); |
76 EXPECT_TRUE( | 77 EXPECT_TRUE( |
77 ExternalDataFetcher::Equals(entry->external_data_fetcher.get(), | 78 ExternalDataFetcher::Equals(entry->external_data_fetcher.get(), |
78 CreateExternalDataFetcher("dummy").get())); | 79 CreateExternalDataFetcher("dummy").get())); |
79 map.Set(kTestPolicyName1, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_MACHINE, | 80 map.Set(kTestPolicyName1, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_MACHINE, |
80 POLICY_SOURCE_ENTERPRISE_DEFAULT, nullptr, nullptr); | 81 POLICY_SOURCE_ENTERPRISE_DEFAULT, nullptr, nullptr); |
81 EXPECT_FALSE(map.GetValue(kTestPolicyName1)); | 82 EXPECT_FALSE(map.GetValue(kTestPolicyName1)); |
82 entry = map.Get(kTestPolicyName1); | 83 entry = map.Get(kTestPolicyName1); |
83 ASSERT_TRUE(entry != NULL); | 84 ASSERT_TRUE(entry != nullptr); |
84 EXPECT_EQ(POLICY_LEVEL_RECOMMENDED, entry->level); | 85 EXPECT_EQ(POLICY_LEVEL_RECOMMENDED, entry->level); |
85 EXPECT_EQ(POLICY_SCOPE_MACHINE, entry->scope); | 86 EXPECT_EQ(POLICY_SCOPE_MACHINE, entry->scope); |
86 EXPECT_EQ(POLICY_SOURCE_ENTERPRISE_DEFAULT, entry->source); | 87 EXPECT_EQ(POLICY_SOURCE_ENTERPRISE_DEFAULT, entry->source); |
87 EXPECT_FALSE(entry->external_data_fetcher); | 88 EXPECT_FALSE(entry->external_data_fetcher); |
88 } | 89 } |
89 | 90 |
90 TEST_F(PolicyMapTest, Equals) { | 91 TEST_F(PolicyMapTest, Equals) { |
91 PolicyMap a; | 92 PolicyMap a; |
92 SetPolicy(&a, kTestPolicyName1, | 93 SetPolicy(&a, kTestPolicyName1, |
93 base::WrapUnique(new base::StringValue("aaa"))); | 94 base::WrapUnique(new base::StringValue("aaa"))); |
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
328 base::WrapUnique(new base::StringValue("google.com")), nullptr); | 329 base::WrapUnique(new base::StringValue("google.com")), nullptr); |
329 expected.Set("TestPolicy2", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 330 expected.Set("TestPolicy2", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
330 POLICY_SOURCE_PLATFORM, | 331 POLICY_SOURCE_PLATFORM, |
331 base::WrapUnique(new base::FundamentalValue(true)), nullptr); | 332 base::WrapUnique(new base::FundamentalValue(true)), nullptr); |
332 expected.Set("TestPolicy3", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 333 expected.Set("TestPolicy3", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
333 POLICY_SOURCE_PLATFORM, | 334 POLICY_SOURCE_PLATFORM, |
334 base::WrapUnique(new base::FundamentalValue(-12321)), nullptr); | 335 base::WrapUnique(new base::FundamentalValue(-12321)), nullptr); |
335 EXPECT_TRUE(loaded.Equals(expected)); | 336 EXPECT_TRUE(loaded.Equals(expected)); |
336 } | 337 } |
337 | 338 |
| 339 bool IsMandatory(const PolicyMap::PolicyMapType::const_iterator iter) { |
| 340 return iter->second.level == POLICY_LEVEL_MANDATORY; |
| 341 } |
| 342 |
| 343 TEST_F(PolicyMapTest, EraseNonmatching) { |
| 344 PolicyMap a; |
| 345 a.Set(kTestPolicyName1, |
| 346 POLICY_LEVEL_MANDATORY, |
| 347 POLICY_SCOPE_USER, |
| 348 POLICY_SOURCE_CLOUD, |
| 349 base::WrapUnique(new base::StringValue("google.com")), |
| 350 nullptr); |
| 351 a.Set(kTestPolicyName2, |
| 352 POLICY_LEVEL_RECOMMENDED, |
| 353 POLICY_SCOPE_MACHINE, |
| 354 POLICY_SOURCE_CLOUD, |
| 355 base::WrapUnique(new base::FundamentalValue(true)), |
| 356 nullptr); |
| 357 |
| 358 a.EraseNonmatching(base::Bind(&IsMandatory)); |
| 359 |
| 360 PolicyMap b; |
| 361 b.Set(kTestPolicyName1, |
| 362 POLICY_LEVEL_MANDATORY, |
| 363 POLICY_SCOPE_USER, |
| 364 POLICY_SOURCE_CLOUD, |
| 365 base::WrapUnique(new base::StringValue("google.com")), |
| 366 nullptr); |
| 367 EXPECT_TRUE(a.Equals(b)); |
| 368 } |
| 369 |
338 } // namespace policy | 370 } // namespace policy |
OLD | NEW |