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 |