| 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/schema_map.h" | 5 #include "components/policy/core/common/schema_map.h" |
| 6 | 6 |
| 7 #include "base/memory/ptr_util.h" | 7 #include "base/memory/ptr_util.h" |
| 8 #include "base/memory/weak_ptr.h" | 8 #include "base/memory/weak_ptr.h" |
| 9 #include "base/values.h" | 9 #include "base/values.h" |
| 10 #include "components/policy/core/common/external_data_fetcher.h" | 10 #include "components/policy/core/common/external_data_fetcher.h" |
| (...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 156 EXPECT_TRUE(bundle.Equals(expected_bundle)); | 156 EXPECT_TRUE(bundle.Equals(expected_bundle)); |
| 157 | 157 |
| 158 PolicyNamespace extension_ns(POLICY_DOMAIN_EXTENSIONS, "abc"); | 158 PolicyNamespace extension_ns(POLICY_DOMAIN_EXTENSIONS, "abc"); |
| 159 PolicyMap& map = expected_bundle.Get(extension_ns); | 159 PolicyMap& map = expected_bundle.Get(extension_ns); |
| 160 base::ListValue list; | 160 base::ListValue list; |
| 161 list.AppendString("a"); | 161 list.AppendString("a"); |
| 162 list.AppendString("b"); | 162 list.AppendString("b"); |
| 163 map.Set("list", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 163 map.Set("list", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 164 POLICY_SOURCE_CLOUD, list.CreateDeepCopy(), nullptr); | 164 POLICY_SOURCE_CLOUD, list.CreateDeepCopy(), nullptr); |
| 165 map.Set("boolean", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 165 map.Set("boolean", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 166 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>(true), | 166 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(true), nullptr); |
| 167 nullptr); | |
| 168 map.Set("integer", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 167 map.Set("integer", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 169 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>(1), | 168 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(1), nullptr); |
| 170 nullptr); | |
| 171 map.Set("null", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 169 map.Set("null", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 172 POLICY_SOURCE_CLOUD, base::Value::CreateNullValue(), nullptr); | 170 POLICY_SOURCE_CLOUD, base::Value::CreateNullValue(), nullptr); |
| 173 map.Set("double", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 171 map.Set("double", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 174 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>(1.2), | 172 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(1.2), nullptr); |
| 175 nullptr); | |
| 176 base::DictionaryValue dict; | 173 base::DictionaryValue dict; |
| 177 dict.SetString("a", "b"); | 174 dict.SetString("a", "b"); |
| 178 dict.SetInteger("b", 2); | 175 dict.SetInteger("b", 2); |
| 179 map.Set("object", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 176 map.Set("object", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 180 POLICY_SOURCE_CLOUD, dict.CreateDeepCopy(), nullptr); | 177 POLICY_SOURCE_CLOUD, dict.CreateDeepCopy(), nullptr); |
| 181 map.Set("string", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 178 map.Set("string", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 182 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>("value"), | 179 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>("value"), |
| 183 nullptr); | 180 nullptr); |
| 184 | 181 |
| 185 bundle.MergeFrom(expected_bundle); | 182 bundle.MergeFrom(expected_bundle); |
| 186 bundle.Get(extension_ns) | 183 bundle.Get(extension_ns) |
| 187 .Set("Unexpected", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 184 .Set("Unexpected", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 188 POLICY_SOURCE_CLOUD, | 185 POLICY_SOURCE_CLOUD, |
| 189 base::MakeUnique<base::StringValue>("to-be-removed"), nullptr); | 186 base::MakeUnique<base::StringValue>("to-be-removed"), nullptr); |
| 190 | 187 |
| 191 schema_map->FilterBundle(&bundle); | 188 schema_map->FilterBundle(&bundle); |
| 192 EXPECT_TRUE(bundle.Equals(expected_bundle)); | 189 EXPECT_TRUE(bundle.Equals(expected_bundle)); |
| 193 | 190 |
| 194 // Mismatched types are also removed. | 191 // Mismatched types are also removed. |
| 195 bundle.Clear(); | 192 bundle.Clear(); |
| 196 PolicyMap& badmap = bundle.Get(extension_ns); | 193 PolicyMap& badmap = bundle.Get(extension_ns); |
| 197 badmap.Set("list", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 194 badmap.Set("list", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 198 POLICY_SOURCE_CLOUD, | 195 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(false), |
| 199 base::MakeUnique<base::FundamentalValue>(false), nullptr); | 196 nullptr); |
| 200 badmap.Set("boolean", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 197 badmap.Set("boolean", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 201 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>(0), | 198 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(0), nullptr); |
| 199 badmap.Set("integer", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 200 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(false), |
| 202 nullptr); | 201 nullptr); |
| 203 badmap.Set("integer", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | |
| 204 POLICY_SOURCE_CLOUD, | |
| 205 base::MakeUnique<base::FundamentalValue>(false), nullptr); | |
| 206 badmap.Set("null", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 202 badmap.Set("null", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 207 POLICY_SOURCE_CLOUD, | 203 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(false), |
| 208 base::MakeUnique<base::FundamentalValue>(false), nullptr); | 204 nullptr); |
| 209 badmap.Set("double", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 205 badmap.Set("double", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 210 POLICY_SOURCE_CLOUD, | 206 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(false), |
| 211 base::MakeUnique<base::FundamentalValue>(false), nullptr); | 207 nullptr); |
| 212 badmap.Set("object", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 208 badmap.Set("object", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 213 POLICY_SOURCE_CLOUD, | 209 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(false), |
| 214 base::MakeUnique<base::FundamentalValue>(false), nullptr); | 210 nullptr); |
| 215 badmap.Set("string", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 211 badmap.Set("string", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 216 POLICY_SOURCE_CLOUD, nullptr, | 212 POLICY_SOURCE_CLOUD, nullptr, |
| 217 base::MakeUnique<ExternalDataFetcher>(nullptr, std::string())); | 213 base::MakeUnique<ExternalDataFetcher>(nullptr, std::string())); |
| 218 | 214 |
| 219 schema_map->FilterBundle(&bundle); | 215 schema_map->FilterBundle(&bundle); |
| 220 EXPECT_TRUE(bundle.Equals(empty_bundle)); | 216 EXPECT_TRUE(bundle.Equals(empty_bundle)); |
| 221 } | 217 } |
| 222 | 218 |
| 223 TEST_F(SchemaMapTest, LegacyComponents) { | 219 TEST_F(SchemaMapTest, LegacyComponents) { |
| 224 std::string error; | 220 std::string error; |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 306 newer = new SchemaMap(map); | 302 newer = new SchemaMap(map); |
| 307 newer->GetChanges(older, &removed, &added); | 303 newer->GetChanges(older, &removed, &added); |
| 308 ASSERT_EQ(2u, removed.size()); | 304 ASSERT_EQ(2u, removed.size()); |
| 309 EXPECT_EQ(PolicyNamespace(POLICY_DOMAIN_CHROME, ""), removed[0]); | 305 EXPECT_EQ(PolicyNamespace(POLICY_DOMAIN_CHROME, ""), removed[0]); |
| 310 EXPECT_EQ(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, "xyz"), removed[1]); | 306 EXPECT_EQ(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, "xyz"), removed[1]); |
| 311 ASSERT_EQ(1u, added.size()); | 307 ASSERT_EQ(1u, added.size()); |
| 312 EXPECT_EQ(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, "abc"), added[0]); | 308 EXPECT_EQ(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, "abc"), added[0]); |
| 313 } | 309 } |
| 314 | 310 |
| 315 } // namespace policy | 311 } // namespace policy |
| OLD | NEW |