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

Side by Side Diff: chrome/browser/policy/configuration_policy_provider_test.cc

Issue 58313002: Removed the PolicyDefinitionList. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@chrome-policy-schema-10-use-registry
Patch Set: rebase Created 7 years, 1 month 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "chrome/browser/policy/configuration_policy_provider_test.h" 5 #include "chrome/browser/policy/configuration_policy_provider_test.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "base/message_loop/message_loop_proxy.h" 9 #include "base/message_loop/message_loop_proxy.h"
10 #include "base/values.h" 10 #include "base/values.h"
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 " }" 105 " }"
106 " }" 106 " }"
107 " }" 107 " }"
108 " }" 108 " }"
109 " }" 109 " }"
110 " }" 110 " }"
111 " }" 111 " }"
112 " }" 112 " }"
113 "}"; 113 "}";
114 114
115 namespace test_policy_definitions { 115 namespace test_keys {
116 116
117 const char kKeyString[] = "StringPolicy"; 117 const char kKeyString[] = "StringPolicy";
118 const char kKeyBoolean[] = "BooleanPolicy"; 118 const char kKeyBoolean[] = "BooleanPolicy";
119 const char kKeyInteger[] = "IntegerPolicy"; 119 const char kKeyInteger[] = "IntegerPolicy";
120 const char kKeyStringList[] = "StringListPolicy"; 120 const char kKeyStringList[] = "StringListPolicy";
121 const char kKeyDictionary[] = "DictionaryPolicy"; 121 const char kKeyDictionary[] = "DictionaryPolicy";
122 122
123 static const PolicyDefinitionList::Entry kEntries[] = { 123 } // namespace test_keys
124 { kKeyString, base::Value::TYPE_STRING },
125 { kKeyBoolean, base::Value::TYPE_BOOLEAN },
126 { kKeyInteger, base::Value::TYPE_INTEGER },
127 { kKeyStringList, base::Value::TYPE_LIST },
128 { kKeyDictionary, base::Value::TYPE_DICTIONARY },
129 };
130
131 const PolicyDefinitionList kList = {
132 kEntries, kEntries + arraysize(kEntries)
133 };
134
135 } // namespace test_policy_definitions
136 124
137 PolicyTestBase::PolicyTestBase() {} 125 PolicyTestBase::PolicyTestBase() {}
138 126
139 PolicyTestBase::~PolicyTestBase() {} 127 PolicyTestBase::~PolicyTestBase() {}
140 128
141 void PolicyTestBase::SetUp() { 129 void PolicyTestBase::SetUp() {
142 std::string error; 130 std::string error;
143 chrome_schema_ = Schema::Parse(kTestChromeSchema, &error); 131 chrome_schema_ = Schema::Parse(kTestChromeSchema, &error);
144 ASSERT_TRUE(chrome_schema_.valid()) << error; 132 ASSERT_TRUE(chrome_schema_.valid()) << error;
145 schema_registry_.RegisterComponent(PolicyNamespace(POLICY_DOMAIN_CHROME, ""), 133 schema_registry_.RegisterComponent(PolicyNamespace(POLICY_DOMAIN_CHROME, ""),
(...skipping 27 matching lines...) Expand all
173 161
174 ConfigurationPolicyProviderTest::~ConfigurationPolicyProviderTest() {} 162 ConfigurationPolicyProviderTest::~ConfigurationPolicyProviderTest() {}
175 163
176 void ConfigurationPolicyProviderTest::SetUp() { 164 void ConfigurationPolicyProviderTest::SetUp() {
177 PolicyTestBase::SetUp(); 165 PolicyTestBase::SetUp();
178 166
179 test_harness_.reset((*GetParam())()); 167 test_harness_.reset((*GetParam())());
180 test_harness_->SetUp(); 168 test_harness_->SetUp();
181 169
182 Schema extension_schema = 170 Schema extension_schema =
183 chrome_schema_.GetKnownProperty(test_policy_definitions::kKeyDictionary); 171 chrome_schema_.GetKnownProperty(test_keys::kKeyDictionary);
184 ASSERT_TRUE(extension_schema.valid()); 172 ASSERT_TRUE(extension_schema.valid());
185 schema_registry_.RegisterComponent( 173 schema_registry_.RegisterComponent(
186 PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, 174 PolicyNamespace(POLICY_DOMAIN_EXTENSIONS,
187 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"), 175 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"),
188 extension_schema); 176 extension_schema);
189 schema_registry_.RegisterComponent( 177 schema_registry_.RegisterComponent(
190 PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, 178 PolicyNamespace(POLICY_DOMAIN_EXTENSIONS,
191 "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"), 179 "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"),
192 extension_schema); 180 extension_schema);
193 schema_registry_.RegisterComponent( 181 schema_registry_.RegisterComponent(
194 PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, 182 PolicyNamespace(POLICY_DOMAIN_EXTENSIONS,
195 "cccccccccccccccccccccccccccccccc"), 183 "cccccccccccccccccccccccccccccccc"),
196 extension_schema); 184 extension_schema);
197 185
198 provider_.reset(test_harness_->CreateProvider( 186 provider_.reset(test_harness_->CreateProvider(&schema_registry_,
199 &schema_registry_, 187 loop_.message_loop_proxy()));
200 loop_.message_loop_proxy(),
201 &test_policy_definitions::kList));
202 provider_->Init(&schema_registry_); 188 provider_->Init(&schema_registry_);
203 // Some providers do a reload on init. Make sure any notifications generated 189 // Some providers do a reload on init. Make sure any notifications generated
204 // are fired now. 190 // are fired now.
205 loop_.RunUntilIdle(); 191 loop_.RunUntilIdle();
206 192
207 const PolicyBundle kEmptyBundle; 193 const PolicyBundle kEmptyBundle;
208 EXPECT_TRUE(provider_->policies().Equals(kEmptyBundle)); 194 EXPECT_TRUE(provider_->policies().Equals(kEmptyBundle));
209 } 195 }
210 196
211 void ConfigurationPolicyProviderTest::TearDown() { 197 void ConfigurationPolicyProviderTest::TearDown() {
(...skipping 27 matching lines...) Expand all
239 TEST_P(ConfigurationPolicyProviderTest, Empty) { 225 TEST_P(ConfigurationPolicyProviderTest, Empty) {
240 provider_->RefreshPolicies(); 226 provider_->RefreshPolicies();
241 loop_.RunUntilIdle(); 227 loop_.RunUntilIdle();
242 const PolicyBundle kEmptyBundle; 228 const PolicyBundle kEmptyBundle;
243 EXPECT_TRUE(provider_->policies().Equals(kEmptyBundle)); 229 EXPECT_TRUE(provider_->policies().Equals(kEmptyBundle));
244 } 230 }
245 231
246 TEST_P(ConfigurationPolicyProviderTest, StringValue) { 232 TEST_P(ConfigurationPolicyProviderTest, StringValue) {
247 const char kTestString[] = "string_value"; 233 const char kTestString[] = "string_value";
248 base::StringValue expected_value(kTestString); 234 base::StringValue expected_value(kTestString);
249 CheckValue(test_policy_definitions::kKeyString, 235 CheckValue(test_keys::kKeyString,
250 expected_value, 236 expected_value,
251 base::Bind(&PolicyProviderTestHarness::InstallStringPolicy, 237 base::Bind(&PolicyProviderTestHarness::InstallStringPolicy,
252 base::Unretained(test_harness_.get()), 238 base::Unretained(test_harness_.get()),
253 test_policy_definitions::kKeyString, 239 test_keys::kKeyString,
254 kTestString)); 240 kTestString));
255 } 241 }
256 242
257 TEST_P(ConfigurationPolicyProviderTest, BooleanValue) { 243 TEST_P(ConfigurationPolicyProviderTest, BooleanValue) {
258 base::FundamentalValue expected_value(true); 244 base::FundamentalValue expected_value(true);
259 CheckValue(test_policy_definitions::kKeyBoolean, 245 CheckValue(test_keys::kKeyBoolean,
260 expected_value, 246 expected_value,
261 base::Bind(&PolicyProviderTestHarness::InstallBooleanPolicy, 247 base::Bind(&PolicyProviderTestHarness::InstallBooleanPolicy,
262 base::Unretained(test_harness_.get()), 248 base::Unretained(test_harness_.get()),
263 test_policy_definitions::kKeyBoolean, 249 test_keys::kKeyBoolean,
264 true)); 250 true));
265 } 251 }
266 252
267 TEST_P(ConfigurationPolicyProviderTest, IntegerValue) { 253 TEST_P(ConfigurationPolicyProviderTest, IntegerValue) {
268 base::FundamentalValue expected_value(42); 254 base::FundamentalValue expected_value(42);
269 CheckValue(test_policy_definitions::kKeyInteger, 255 CheckValue(test_keys::kKeyInteger,
270 expected_value, 256 expected_value,
271 base::Bind(&PolicyProviderTestHarness::InstallIntegerPolicy, 257 base::Bind(&PolicyProviderTestHarness::InstallIntegerPolicy,
272 base::Unretained(test_harness_.get()), 258 base::Unretained(test_harness_.get()),
273 test_policy_definitions::kKeyInteger, 259 test_keys::kKeyInteger,
274 42)); 260 42));
275 } 261 }
276 262
277 TEST_P(ConfigurationPolicyProviderTest, StringListValue) { 263 TEST_P(ConfigurationPolicyProviderTest, StringListValue) {
278 base::ListValue expected_value; 264 base::ListValue expected_value;
279 expected_value.Set(0U, base::Value::CreateStringValue("first")); 265 expected_value.Set(0U, base::Value::CreateStringValue("first"));
280 expected_value.Set(1U, base::Value::CreateStringValue("second")); 266 expected_value.Set(1U, base::Value::CreateStringValue("second"));
281 CheckValue(test_policy_definitions::kKeyStringList, 267 CheckValue(test_keys::kKeyStringList,
282 expected_value, 268 expected_value,
283 base::Bind(&PolicyProviderTestHarness::InstallStringListPolicy, 269 base::Bind(&PolicyProviderTestHarness::InstallStringListPolicy,
284 base::Unretained(test_harness_.get()), 270 base::Unretained(test_harness_.get()),
285 test_policy_definitions::kKeyStringList, 271 test_keys::kKeyStringList,
286 &expected_value)); 272 &expected_value));
287 } 273 }
288 274
289 TEST_P(ConfigurationPolicyProviderTest, DictionaryValue) { 275 TEST_P(ConfigurationPolicyProviderTest, DictionaryValue) {
290 base::DictionaryValue expected_value; 276 base::DictionaryValue expected_value;
291 expected_value.SetBoolean("bool", true); 277 expected_value.SetBoolean("bool", true);
292 expected_value.SetDouble("double", 123.456); 278 expected_value.SetDouble("double", 123.456);
293 expected_value.SetInteger("int", 123); 279 expected_value.SetInteger("int", 123);
294 expected_value.SetString("string", "omg"); 280 expected_value.SetString("string", "omg");
295 281
296 base::ListValue* list = new base::ListValue(); 282 base::ListValue* list = new base::ListValue();
297 list->Set(0U, base::Value::CreateStringValue("first")); 283 list->Set(0U, base::Value::CreateStringValue("first"));
298 list->Set(1U, base::Value::CreateStringValue("second")); 284 list->Set(1U, base::Value::CreateStringValue("second"));
299 expected_value.Set("array", list); 285 expected_value.Set("array", list);
300 286
301 base::DictionaryValue* dict = new base::DictionaryValue(); 287 base::DictionaryValue* dict = new base::DictionaryValue();
302 dict->SetString("sub", "value"); 288 dict->SetString("sub", "value");
303 list = new base::ListValue(); 289 list = new base::ListValue();
304 base::DictionaryValue* sub = new base::DictionaryValue(); 290 base::DictionaryValue* sub = new base::DictionaryValue();
305 sub->SetInteger("aaa", 111); 291 sub->SetInteger("aaa", 111);
306 sub->SetInteger("bbb", 222); 292 sub->SetInteger("bbb", 222);
307 list->Append(sub); 293 list->Append(sub);
308 sub = new base::DictionaryValue(); 294 sub = new base::DictionaryValue();
309 sub->SetString("ccc", "333"); 295 sub->SetString("ccc", "333");
310 sub->SetString("ddd", "444"); 296 sub->SetString("ddd", "444");
311 list->Append(sub); 297 list->Append(sub);
312 dict->Set("sublist", list); 298 dict->Set("sublist", list);
313 expected_value.Set("dictionary", dict); 299 expected_value.Set("dictionary", dict);
314 300
315 CheckValue(test_policy_definitions::kKeyDictionary, 301 CheckValue(test_keys::kKeyDictionary,
316 expected_value, 302 expected_value,
317 base::Bind(&PolicyProviderTestHarness::InstallDictionaryPolicy, 303 base::Bind(&PolicyProviderTestHarness::InstallDictionaryPolicy,
318 base::Unretained(test_harness_.get()), 304 base::Unretained(test_harness_.get()),
319 test_policy_definitions::kKeyDictionary, 305 test_keys::kKeyDictionary,
320 &expected_value)); 306 &expected_value));
321 } 307 }
322 308
323 TEST_P(ConfigurationPolicyProviderTest, RefreshPolicies) { 309 TEST_P(ConfigurationPolicyProviderTest, RefreshPolicies) {
324 PolicyBundle bundle; 310 PolicyBundle bundle;
325 EXPECT_TRUE(provider_->policies().Equals(bundle)); 311 EXPECT_TRUE(provider_->policies().Equals(bundle));
326 312
327 // OnUpdatePolicy is called even when there are no changes. 313 // OnUpdatePolicy is called even when there are no changes.
328 MockConfigurationPolicyObserver observer; 314 MockConfigurationPolicyObserver observer;
329 provider_->AddObserver(&observer); 315 provider_->AddObserver(&observer);
330 EXPECT_CALL(observer, OnUpdatePolicy(provider_.get())).Times(1); 316 EXPECT_CALL(observer, OnUpdatePolicy(provider_.get())).Times(1);
331 provider_->RefreshPolicies(); 317 provider_->RefreshPolicies();
332 loop_.RunUntilIdle(); 318 loop_.RunUntilIdle();
333 Mock::VerifyAndClearExpectations(&observer); 319 Mock::VerifyAndClearExpectations(&observer);
334 320
335 EXPECT_TRUE(provider_->policies().Equals(bundle)); 321 EXPECT_TRUE(provider_->policies().Equals(bundle));
336 322
337 // OnUpdatePolicy is called when there are changes. 323 // OnUpdatePolicy is called when there are changes.
338 test_harness_->InstallStringPolicy(test_policy_definitions::kKeyString, 324 test_harness_->InstallStringPolicy(test_keys::kKeyString, "value");
339 "value");
340 EXPECT_CALL(observer, OnUpdatePolicy(provider_.get())).Times(1); 325 EXPECT_CALL(observer, OnUpdatePolicy(provider_.get())).Times(1);
341 provider_->RefreshPolicies(); 326 provider_->RefreshPolicies();
342 loop_.RunUntilIdle(); 327 loop_.RunUntilIdle();
343 Mock::VerifyAndClearExpectations(&observer); 328 Mock::VerifyAndClearExpectations(&observer);
344 329
345 bundle.Get(PolicyNamespace(POLICY_DOMAIN_CHROME, std::string())) 330 bundle.Get(PolicyNamespace(POLICY_DOMAIN_CHROME, std::string()))
346 .Set(test_policy_definitions::kKeyString, 331 .Set(test_keys::kKeyString,
347 test_harness_->policy_level(), 332 test_harness_->policy_level(),
348 test_harness_->policy_scope(), 333 test_harness_->policy_scope(),
349 base::Value::CreateStringValue("value"), 334 base::Value::CreateStringValue("value"),
350 NULL); 335 NULL);
351 EXPECT_TRUE(provider_->policies().Equals(bundle)); 336 EXPECT_TRUE(provider_->policies().Equals(bundle));
352 provider_->RemoveObserver(&observer); 337 provider_->RemoveObserver(&observer);
353 } 338 }
354 339
355 TEST(ConfigurationPolicyProviderTest, FixDeprecatedPolicies) { 340 TEST(ConfigurationPolicyProviderTest, FixDeprecatedPolicies) {
356 PolicyMap policy_map; 341 PolicyMap policy_map;
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
407 for (int i = 0; i < 2; ++i) { 392 for (int i = 0; i < 2; ++i) {
408 base::DictionaryValue* dict = new base::DictionaryValue(); 393 base::DictionaryValue* dict = new base::DictionaryValue();
409 dict->SetInteger("subdictindex", i); 394 dict->SetInteger("subdictindex", i);
410 dict->Set("subdict", policy_dict.DeepCopy()); 395 dict->Set("subdict", policy_dict.DeepCopy());
411 list->Append(dict); 396 list->Append(dict);
412 } 397 }
413 policy_dict.Set("list", list); 398 policy_dict.Set("list", list);
414 policy_dict.Set("dict", policy_dict.DeepCopy()); 399 policy_dict.Set("dict", policy_dict.DeepCopy());
415 400
416 // Install these policies as a Chrome policy. 401 // Install these policies as a Chrome policy.
417 test_harness_->InstallDictionaryPolicy( 402 test_harness_->InstallDictionaryPolicy(test_keys::kKeyDictionary,
418 test_policy_definitions::kKeyDictionary, &policy_dict); 403 &policy_dict);
419 // Install them as 3rd party policies too. 404 // Install them as 3rd party policies too.
420 base::DictionaryValue policy_3rdparty; 405 base::DictionaryValue policy_3rdparty;
421 policy_3rdparty.Set("extensions.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", 406 policy_3rdparty.Set("extensions.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
422 policy_dict.DeepCopy()); 407 policy_dict.DeepCopy());
423 policy_3rdparty.Set("extensions.bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", 408 policy_3rdparty.Set("extensions.bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
424 policy_dict.DeepCopy()); 409 policy_dict.DeepCopy());
425 // Install invalid 3rd party policies that shouldn't be loaded. These also 410 // Install invalid 3rd party policies that shouldn't be loaded. These also
426 // help detecting memory leaks in the code paths that detect invalid input. 411 // help detecting memory leaks in the code paths that detect invalid input.
427 policy_3rdparty.Set("invalid-domain.component", policy_dict.DeepCopy()); 412 policy_3rdparty.Set("invalid-domain.component", policy_dict.DeepCopy());
428 policy_3rdparty.Set("extensions.cccccccccccccccccccccccccccccccc", 413 policy_3rdparty.Set("extensions.cccccccccccccccccccccccccccccccc",
429 base::Value::CreateStringValue("invalid-value")); 414 base::Value::CreateStringValue("invalid-value"));
430 test_harness_->Install3rdPartyPolicy(&policy_3rdparty); 415 test_harness_->Install3rdPartyPolicy(&policy_3rdparty);
431 416
432 provider_->RefreshPolicies(); 417 provider_->RefreshPolicies();
433 loop_.RunUntilIdle(); 418 loop_.RunUntilIdle();
434 419
435 PolicyMap expected_policy; 420 PolicyMap expected_policy;
436 expected_policy.Set(test_policy_definitions::kKeyDictionary, 421 expected_policy.Set(test_keys::kKeyDictionary,
437 test_harness_->policy_level(), 422 test_harness_->policy_level(),
438 test_harness_->policy_scope(), 423 test_harness_->policy_scope(),
439 policy_dict.DeepCopy(), 424 policy_dict.DeepCopy(),
440 NULL); 425 NULL);
441 PolicyBundle expected_bundle; 426 PolicyBundle expected_bundle;
442 expected_bundle.Get(PolicyNamespace(POLICY_DOMAIN_CHROME, std::string())) 427 expected_bundle.Get(PolicyNamespace(POLICY_DOMAIN_CHROME, std::string()))
443 .CopyFrom(expected_policy); 428 .CopyFrom(expected_policy);
444 expected_policy.Clear(); 429 expected_policy.Clear();
445 expected_policy.LoadFrom(&policy_dict, 430 expected_policy.LoadFrom(&policy_dict,
446 test_harness_->policy_level(), 431 test_harness_->policy_level(),
447 test_harness_->policy_scope()); 432 test_harness_->policy_scope());
448 expected_bundle.Get(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, 433 expected_bundle.Get(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS,
449 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")) 434 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"))
450 .CopyFrom(expected_policy); 435 .CopyFrom(expected_policy);
451 expected_bundle.Get(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, 436 expected_bundle.Get(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS,
452 "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb")) 437 "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"))
453 .CopyFrom(expected_policy); 438 .CopyFrom(expected_policy);
454 EXPECT_TRUE(provider_->policies().Equals(expected_bundle)); 439 EXPECT_TRUE(provider_->policies().Equals(expected_bundle));
455 } 440 }
456 441
457 } // namespace policy 442 } // namespace policy
OLDNEW
« no previous file with comments | « chrome/browser/policy/configuration_policy_provider_test.h ('k') | chrome/browser/policy/generate_policy_source_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698