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 |