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