Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(436)

Side by Side Diff: components/policy/core/common/schema_map_unittest.cc

Issue 2664753002: Remove base::StringValue (Closed)
Patch Set: Rebase Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
135 PolicyBundle bundle; 135 PolicyBundle bundle;
136 schema_map->FilterBundle(&bundle); 136 schema_map->FilterBundle(&bundle);
137 const PolicyBundle empty_bundle; 137 const PolicyBundle empty_bundle;
138 EXPECT_TRUE(bundle.Equals(empty_bundle)); 138 EXPECT_TRUE(bundle.Equals(empty_bundle));
139 139
140 // The Chrome namespace isn't filtered. 140 // The Chrome namespace isn't filtered.
141 PolicyBundle expected_bundle; 141 PolicyBundle expected_bundle;
142 PolicyNamespace chrome_ns(POLICY_DOMAIN_CHROME, ""); 142 PolicyNamespace chrome_ns(POLICY_DOMAIN_CHROME, "");
143 expected_bundle.Get(chrome_ns).Set( 143 expected_bundle.Get(chrome_ns).Set(
144 "ChromePolicy", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 144 "ChromePolicy", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
145 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>("value"), 145 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>("value"), nullptr);
146 nullptr);
147 bundle.CopyFrom(expected_bundle); 146 bundle.CopyFrom(expected_bundle);
148 147
149 // Unknown components are filtered out. 148 // Unknown components are filtered out.
150 PolicyNamespace another_extension_ns(POLICY_DOMAIN_EXTENSIONS, "xyz"); 149 PolicyNamespace another_extension_ns(POLICY_DOMAIN_EXTENSIONS, "xyz");
151 bundle.Get(another_extension_ns) 150 bundle.Get(another_extension_ns)
152 .Set("AnotherExtensionPolicy", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 151 .Set("AnotherExtensionPolicy", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
153 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>("value"), 152 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>("value"),
154 nullptr); 153 nullptr);
155 schema_map->FilterBundle(&bundle); 154 schema_map->FilterBundle(&bundle);
156 EXPECT_TRUE(bundle.Equals(expected_bundle)); 155 EXPECT_TRUE(bundle.Equals(expected_bundle));
157 156
158 PolicyNamespace extension_ns(POLICY_DOMAIN_EXTENSIONS, "abc"); 157 PolicyNamespace extension_ns(POLICY_DOMAIN_EXTENSIONS, "abc");
159 PolicyMap& map = expected_bundle.Get(extension_ns); 158 PolicyMap& map = expected_bundle.Get(extension_ns);
160 base::ListValue list; 159 base::ListValue list;
161 list.AppendString("a"); 160 list.AppendString("a");
162 list.AppendString("b"); 161 list.AppendString("b");
163 map.Set("list", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 162 map.Set("list", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
164 POLICY_SOURCE_CLOUD, list.CreateDeepCopy(), nullptr); 163 POLICY_SOURCE_CLOUD, list.CreateDeepCopy(), nullptr);
165 map.Set("boolean", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 164 map.Set("boolean", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
166 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(true), nullptr); 165 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(true), nullptr);
167 map.Set("integer", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 166 map.Set("integer", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
168 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(1), nullptr); 167 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(1), nullptr);
169 map.Set("null", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 168 map.Set("null", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
170 POLICY_SOURCE_CLOUD, base::Value::CreateNullValue(), nullptr); 169 POLICY_SOURCE_CLOUD, base::Value::CreateNullValue(), nullptr);
171 map.Set("double", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 170 map.Set("double", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
172 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(1.2), nullptr); 171 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(1.2), nullptr);
173 base::DictionaryValue dict; 172 base::DictionaryValue dict;
174 dict.SetString("a", "b"); 173 dict.SetString("a", "b");
175 dict.SetInteger("b", 2); 174 dict.SetInteger("b", 2);
176 map.Set("object", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 175 map.Set("object", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
177 POLICY_SOURCE_CLOUD, dict.CreateDeepCopy(), nullptr); 176 POLICY_SOURCE_CLOUD, dict.CreateDeepCopy(), nullptr);
178 map.Set("string", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 177 map.Set("string", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
179 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>("value"), 178 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>("value"), nullptr);
180 nullptr);
181 179
182 bundle.MergeFrom(expected_bundle); 180 bundle.MergeFrom(expected_bundle);
183 bundle.Get(extension_ns) 181 bundle.Get(extension_ns)
184 .Set("Unexpected", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 182 .Set("Unexpected", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
185 POLICY_SOURCE_CLOUD, 183 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>("to-be-removed"),
186 base::MakeUnique<base::StringValue>("to-be-removed"), nullptr); 184 nullptr);
187 185
188 schema_map->FilterBundle(&bundle); 186 schema_map->FilterBundle(&bundle);
189 EXPECT_TRUE(bundle.Equals(expected_bundle)); 187 EXPECT_TRUE(bundle.Equals(expected_bundle));
190 188
191 // Mismatched types are also removed. 189 // Mismatched types are also removed.
192 bundle.Clear(); 190 bundle.Clear();
193 PolicyMap& badmap = bundle.Get(extension_ns); 191 PolicyMap& badmap = bundle.Get(extension_ns);
194 badmap.Set("list", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 192 badmap.Set("list", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
195 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(false), 193 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(false),
196 nullptr); 194 nullptr);
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
232 domain_map[POLICY_DOMAIN_EXTENSIONS]["without-schema"] = Schema(); 230 domain_map[POLICY_DOMAIN_EXTENSIONS]["without-schema"] = Schema();
233 scoped_refptr<SchemaMap> schema_map = new SchemaMap(domain_map); 231 scoped_refptr<SchemaMap> schema_map = new SchemaMap(domain_map);
234 232
235 // |bundle| contains policies loaded by a policy provider. 233 // |bundle| contains policies loaded by a policy provider.
236 PolicyBundle bundle; 234 PolicyBundle bundle;
237 235
238 // Known components with schemas are filtered. 236 // Known components with schemas are filtered.
239 PolicyNamespace extension_ns(POLICY_DOMAIN_EXTENSIONS, "with-schema"); 237 PolicyNamespace extension_ns(POLICY_DOMAIN_EXTENSIONS, "with-schema");
240 bundle.Get(extension_ns) 238 bundle.Get(extension_ns)
241 .Set("String", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 239 .Set("String", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
242 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>("value 1"), 240 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>("value 1"),
243 nullptr); 241 nullptr);
244 242
245 // The Chrome namespace isn't filtered. 243 // The Chrome namespace isn't filtered.
246 PolicyNamespace chrome_ns(POLICY_DOMAIN_CHROME, ""); 244 PolicyNamespace chrome_ns(POLICY_DOMAIN_CHROME, "");
247 bundle.Get(chrome_ns).Set("ChromePolicy", POLICY_LEVEL_MANDATORY, 245 bundle.Get(chrome_ns).Set("ChromePolicy", POLICY_LEVEL_MANDATORY,
248 POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD, 246 POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD,
249 base::MakeUnique<base::StringValue>("value 3"), 247 base::MakeUnique<base::Value>("value 3"), nullptr);
250 nullptr);
251 248
252 PolicyBundle expected_bundle; 249 PolicyBundle expected_bundle;
253 expected_bundle.MergeFrom(bundle); 250 expected_bundle.MergeFrom(bundle);
254 251
255 // Known components without a schema are filtered out completely. 252 // Known components without a schema are filtered out completely.
256 PolicyNamespace without_schema_ns(POLICY_DOMAIN_EXTENSIONS, "without-schema"); 253 PolicyNamespace without_schema_ns(POLICY_DOMAIN_EXTENSIONS, "without-schema");
257 bundle.Get(without_schema_ns) 254 bundle.Get(without_schema_ns)
258 .Set("Schemaless", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 255 .Set("Schemaless", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
259 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>("value 2"), 256 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>("value 2"),
260 nullptr); 257 nullptr);
261 258
262 // Unknown policies of known components with a schema are removed. 259 // Unknown policies of known components with a schema are removed.
263 bundle.Get(extension_ns) 260 bundle.Get(extension_ns)
264 .Set("Surprise", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 261 .Set("Surprise", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
265 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>("value 4"), 262 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>("value 4"),
266 nullptr); 263 nullptr);
267 264
268 // Unknown components are removed. 265 // Unknown components are removed.
269 PolicyNamespace unknown_ns(POLICY_DOMAIN_EXTENSIONS, "unknown"); 266 PolicyNamespace unknown_ns(POLICY_DOMAIN_EXTENSIONS, "unknown");
270 bundle.Get(unknown_ns) 267 bundle.Get(unknown_ns)
271 .Set("Surprise", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 268 .Set("Surprise", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
272 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>("value 5"), 269 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>("value 5"),
273 nullptr); 270 nullptr);
274 271
275 schema_map->FilterBundle(&bundle); 272 schema_map->FilterBundle(&bundle);
276 EXPECT_TRUE(bundle.Equals(expected_bundle)); 273 EXPECT_TRUE(bundle.Equals(expected_bundle));
277 } 274 }
278 275
279 TEST_F(SchemaMapTest, GetChanges) { 276 TEST_F(SchemaMapTest, GetChanges) {
280 DomainMap map; 277 DomainMap map;
281 map[POLICY_DOMAIN_CHROME][""] = Schema(); 278 map[POLICY_DOMAIN_CHROME][""] = Schema();
282 scoped_refptr<SchemaMap> older = new SchemaMap(map); 279 scoped_refptr<SchemaMap> older = new SchemaMap(map);
(...skipping 19 matching lines...) Expand all
302 newer = new SchemaMap(map); 299 newer = new SchemaMap(map);
303 newer->GetChanges(older, &removed, &added); 300 newer->GetChanges(older, &removed, &added);
304 ASSERT_EQ(2u, removed.size()); 301 ASSERT_EQ(2u, removed.size());
305 EXPECT_EQ(PolicyNamespace(POLICY_DOMAIN_CHROME, ""), removed[0]); 302 EXPECT_EQ(PolicyNamespace(POLICY_DOMAIN_CHROME, ""), removed[0]);
306 EXPECT_EQ(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, "xyz"), removed[1]); 303 EXPECT_EQ(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, "xyz"), removed[1]);
307 ASSERT_EQ(1u, added.size()); 304 ASSERT_EQ(1u, added.size());
308 EXPECT_EQ(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, "abc"), added[0]); 305 EXPECT_EQ(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, "abc"), added[0]);
309 } 306 }
310 307
311 } // namespace policy 308 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698