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

Unified Diff: components/policy/core/common/configuration_policy_provider_test.cc

Issue 99333002: Revert of Move ConfigurationPolicyProvider, etc. to components/policy. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years 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 side-by-side diff with in-line comments
Download patch
Index: components/policy/core/common/configuration_policy_provider_test.cc
diff --git a/components/policy/core/common/configuration_policy_provider_test.cc b/components/policy/core/common/configuration_policy_provider_test.cc
deleted file mode 100644
index 337935b354cd58f89d6deb0122168a59806b9614..0000000000000000000000000000000000000000
--- a/components/policy/core/common/configuration_policy_provider_test.cc
+++ /dev/null
@@ -1,403 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "components/policy/core/common/configuration_policy_provider_test.h"
-
-#include "base/bind.h"
-#include "base/callback.h"
-#include "base/message_loop/message_loop_proxy.h"
-#include "base/values.h"
-#include "components/policy/core/common/configuration_policy_provider.h"
-#include "components/policy/core/common/external_data_fetcher.h"
-#include "components/policy/core/common/mock_configuration_policy_provider.h"
-#include "components/policy/core/common/policy_bundle.h"
-#include "components/policy/core/common/policy_map.h"
-#include "components/policy/core/common/policy_namespace.h"
-#include "testing/gmock/include/gmock/gmock.h"
-
-using ::testing::Mock;
-using ::testing::_;
-
-namespace policy {
-
-const char kTestChromeSchema[] =
- "{"
- " \"type\": \"object\","
- " \"properties\": {"
- " \"StringPolicy\": { \"type\": \"string\" },"
- " \"BooleanPolicy\": { \"type\": \"boolean\" },"
- " \"IntegerPolicy\": { \"type\": \"integer\" },"
- " \"StringListPolicy\": {"
- " \"type\": \"array\","
- " \"items\": { \"type\": \"string\" }"
- " },"
- " \"DictionaryPolicy\": {"
- " \"type\": \"object\","
- " \"properties\": {"
- " \"bool\": { \"type\": \"boolean\" },"
- " \"double\": { \"type\": \"number\" },"
- " \"int\": { \"type\": \"integer\" },"
- " \"string\": { \"type\": \"string\" },"
- " \"array\": {"
- " \"type\": \"array\","
- " \"items\": { \"type\": \"string\" }"
- " },"
- " \"dictionary\": {"
- " \"type\": \"object\","
- " \"properties\": {"
- " \"sub\": { \"type\": \"string\" },"
- " \"sublist\": {"
- " \"type\": \"array\","
- " \"items\": {"
- " \"type\": \"object\","
- " \"properties\": {"
- " \"aaa\": { \"type\": \"integer\" },"
- " \"bbb\": { \"type\": \"integer\" },"
- " \"ccc\": { \"type\": \"string\" },"
- " \"ddd\": { \"type\": \"string\" }"
- " }"
- " }"
- " }"
- " }"
- " },"
- " \"list\": {"
- " \"type\": \"array\","
- " \"items\": {"
- " \"type\": \"object\","
- " \"properties\": {"
- " \"subdictindex\": { \"type\": \"integer\" },"
- " \"subdict\": {"
- " \"type\": \"object\","
- " \"properties\": {"
- " \"bool\": { \"type\": \"boolean\" },"
- " \"double\": { \"type\": \"number\" },"
- " \"int\": { \"type\": \"integer\" },"
- " \"string\": { \"type\": \"string\" }"
- " }"
- " }"
- " }"
- " }"
- " },"
- " \"dict\": {"
- " \"type\": \"object\","
- " \"properties\": {"
- " \"bool\": { \"type\": \"boolean\" },"
- " \"double\": { \"type\": \"number\" },"
- " \"int\": { \"type\": \"integer\" },"
- " \"string\": { \"type\": \"string\" },"
- " \"list\": {"
- " \"type\": \"array\","
- " \"items\": {"
- " \"type\": \"object\","
- " \"properties\": {"
- " \"subdictindex\": { \"type\": \"integer\" },"
- " \"subdict\": {"
- " \"type\": \"object\","
- " \"properties\": {"
- " \"bool\": { \"type\": \"boolean\" },"
- " \"double\": { \"type\": \"number\" },"
- " \"int\": { \"type\": \"integer\" },"
- " \"string\": { \"type\": \"string\" }"
- " }"
- " }"
- " }"
- " }"
- " }"
- " }"
- " }"
- " }"
- " }"
- " }"
- "}";
-
-namespace test_keys {
-
-const char kKeyString[] = "StringPolicy";
-const char kKeyBoolean[] = "BooleanPolicy";
-const char kKeyInteger[] = "IntegerPolicy";
-const char kKeyStringList[] = "StringListPolicy";
-const char kKeyDictionary[] = "DictionaryPolicy";
-
-} // namespace test_keys
-
-PolicyTestBase::PolicyTestBase() {}
-
-PolicyTestBase::~PolicyTestBase() {}
-
-void PolicyTestBase::SetUp() {
- std::string error;
- chrome_schema_ = Schema::Parse(kTestChromeSchema, &error);
- ASSERT_TRUE(chrome_schema_.valid()) << error;
- schema_registry_.RegisterComponent(PolicyNamespace(POLICY_DOMAIN_CHROME, ""),
- chrome_schema_);
-}
-
-void PolicyTestBase::TearDown() {
- loop_.RunUntilIdle();
-}
-
-PolicyProviderTestHarness::PolicyProviderTestHarness(PolicyLevel level,
- PolicyScope scope)
- : level_(level), scope_(scope) {}
-
-PolicyProviderTestHarness::~PolicyProviderTestHarness() {}
-
-PolicyLevel PolicyProviderTestHarness::policy_level() const {
- return level_;
-}
-
-PolicyScope PolicyProviderTestHarness::policy_scope() const {
- return scope_;
-}
-
-void PolicyProviderTestHarness::Install3rdPartyPolicy(
- const base::DictionaryValue* policies) {
- FAIL();
-}
-
-ConfigurationPolicyProviderTest::ConfigurationPolicyProviderTest() {}
-
-ConfigurationPolicyProviderTest::~ConfigurationPolicyProviderTest() {}
-
-void ConfigurationPolicyProviderTest::SetUp() {
- PolicyTestBase::SetUp();
-
- test_harness_.reset((*GetParam())());
- test_harness_->SetUp();
-
- Schema extension_schema =
- chrome_schema_.GetKnownProperty(test_keys::kKeyDictionary);
- ASSERT_TRUE(extension_schema.valid());
- schema_registry_.RegisterComponent(
- PolicyNamespace(POLICY_DOMAIN_EXTENSIONS,
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"),
- extension_schema);
- schema_registry_.RegisterComponent(
- PolicyNamespace(POLICY_DOMAIN_EXTENSIONS,
- "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"),
- extension_schema);
- schema_registry_.RegisterComponent(
- PolicyNamespace(POLICY_DOMAIN_EXTENSIONS,
- "cccccccccccccccccccccccccccccccc"),
- extension_schema);
-
- provider_.reset(test_harness_->CreateProvider(&schema_registry_,
- loop_.message_loop_proxy()));
- provider_->Init(&schema_registry_);
- // Some providers do a reload on init. Make sure any notifications generated
- // are fired now.
- loop_.RunUntilIdle();
-
- const PolicyBundle kEmptyBundle;
- EXPECT_TRUE(provider_->policies().Equals(kEmptyBundle));
-}
-
-void ConfigurationPolicyProviderTest::TearDown() {
- // Give providers the chance to clean up after themselves on the file thread.
- provider_->Shutdown();
- provider_.reset();
-
- PolicyTestBase::TearDown();
-}
-
-void ConfigurationPolicyProviderTest::CheckValue(
- const char* policy_name,
- const base::Value& expected_value,
- base::Closure install_value) {
- // Install the value, reload policy and check the provider for the value.
- install_value.Run();
- provider_->RefreshPolicies();
- loop_.RunUntilIdle();
- PolicyBundle expected_bundle;
- expected_bundle.Get(PolicyNamespace(POLICY_DOMAIN_CHROME, std::string()))
- .Set(policy_name,
- test_harness_->policy_level(),
- test_harness_->policy_scope(),
- expected_value.DeepCopy(),
- NULL);
- EXPECT_TRUE(provider_->policies().Equals(expected_bundle));
- // TODO(joaodasilva): set the policy in the POLICY_DOMAIN_EXTENSIONS too,
- // and extend the |expected_bundle|, once all providers are ready.
-}
-
-TEST_P(ConfigurationPolicyProviderTest, Empty) {
- provider_->RefreshPolicies();
- loop_.RunUntilIdle();
- const PolicyBundle kEmptyBundle;
- EXPECT_TRUE(provider_->policies().Equals(kEmptyBundle));
-}
-
-TEST_P(ConfigurationPolicyProviderTest, StringValue) {
- const char kTestString[] = "string_value";
- base::StringValue expected_value(kTestString);
- CheckValue(test_keys::kKeyString,
- expected_value,
- base::Bind(&PolicyProviderTestHarness::InstallStringPolicy,
- base::Unretained(test_harness_.get()),
- test_keys::kKeyString,
- kTestString));
-}
-
-TEST_P(ConfigurationPolicyProviderTest, BooleanValue) {
- base::FundamentalValue expected_value(true);
- CheckValue(test_keys::kKeyBoolean,
- expected_value,
- base::Bind(&PolicyProviderTestHarness::InstallBooleanPolicy,
- base::Unretained(test_harness_.get()),
- test_keys::kKeyBoolean,
- true));
-}
-
-TEST_P(ConfigurationPolicyProviderTest, IntegerValue) {
- base::FundamentalValue expected_value(42);
- CheckValue(test_keys::kKeyInteger,
- expected_value,
- base::Bind(&PolicyProviderTestHarness::InstallIntegerPolicy,
- base::Unretained(test_harness_.get()),
- test_keys::kKeyInteger,
- 42));
-}
-
-TEST_P(ConfigurationPolicyProviderTest, StringListValue) {
- base::ListValue expected_value;
- expected_value.Set(0U, base::Value::CreateStringValue("first"));
- expected_value.Set(1U, base::Value::CreateStringValue("second"));
- CheckValue(test_keys::kKeyStringList,
- expected_value,
- base::Bind(&PolicyProviderTestHarness::InstallStringListPolicy,
- base::Unretained(test_harness_.get()),
- test_keys::kKeyStringList,
- &expected_value));
-}
-
-TEST_P(ConfigurationPolicyProviderTest, DictionaryValue) {
- base::DictionaryValue expected_value;
- expected_value.SetBoolean("bool", true);
- expected_value.SetDouble("double", 123.456);
- expected_value.SetInteger("int", 123);
- expected_value.SetString("string", "omg");
-
- base::ListValue* list = new base::ListValue();
- list->Set(0U, base::Value::CreateStringValue("first"));
- list->Set(1U, base::Value::CreateStringValue("second"));
- expected_value.Set("array", list);
-
- base::DictionaryValue* dict = new base::DictionaryValue();
- dict->SetString("sub", "value");
- list = new base::ListValue();
- base::DictionaryValue* sub = new base::DictionaryValue();
- sub->SetInteger("aaa", 111);
- sub->SetInteger("bbb", 222);
- list->Append(sub);
- sub = new base::DictionaryValue();
- sub->SetString("ccc", "333");
- sub->SetString("ddd", "444");
- list->Append(sub);
- dict->Set("sublist", list);
- expected_value.Set("dictionary", dict);
-
- CheckValue(test_keys::kKeyDictionary,
- expected_value,
- base::Bind(&PolicyProviderTestHarness::InstallDictionaryPolicy,
- base::Unretained(test_harness_.get()),
- test_keys::kKeyDictionary,
- &expected_value));
-}
-
-TEST_P(ConfigurationPolicyProviderTest, RefreshPolicies) {
- PolicyBundle bundle;
- EXPECT_TRUE(provider_->policies().Equals(bundle));
-
- // OnUpdatePolicy is called even when there are no changes.
- MockConfigurationPolicyObserver observer;
- provider_->AddObserver(&observer);
- EXPECT_CALL(observer, OnUpdatePolicy(provider_.get())).Times(1);
- provider_->RefreshPolicies();
- loop_.RunUntilIdle();
- Mock::VerifyAndClearExpectations(&observer);
-
- EXPECT_TRUE(provider_->policies().Equals(bundle));
-
- // OnUpdatePolicy is called when there are changes.
- test_harness_->InstallStringPolicy(test_keys::kKeyString, "value");
- EXPECT_CALL(observer, OnUpdatePolicy(provider_.get())).Times(1);
- provider_->RefreshPolicies();
- loop_.RunUntilIdle();
- Mock::VerifyAndClearExpectations(&observer);
-
- bundle.Get(PolicyNamespace(POLICY_DOMAIN_CHROME, std::string()))
- .Set(test_keys::kKeyString,
- test_harness_->policy_level(),
- test_harness_->policy_scope(),
- base::Value::CreateStringValue("value"),
- NULL);
- EXPECT_TRUE(provider_->policies().Equals(bundle));
- provider_->RemoveObserver(&observer);
-}
-
-Configuration3rdPartyPolicyProviderTest::
- Configuration3rdPartyPolicyProviderTest() {}
-
-Configuration3rdPartyPolicyProviderTest::
- ~Configuration3rdPartyPolicyProviderTest() {}
-
-TEST_P(Configuration3rdPartyPolicyProviderTest, Load3rdParty) {
- base::DictionaryValue policy_dict;
- policy_dict.SetBoolean("bool", true);
- policy_dict.SetDouble("double", 123.456);
- policy_dict.SetInteger("int", 789);
- policy_dict.SetString("string", "string value");
-
- base::ListValue* list = new base::ListValue();
- for (int i = 0; i < 2; ++i) {
- base::DictionaryValue* dict = new base::DictionaryValue();
- dict->SetInteger("subdictindex", i);
- dict->Set("subdict", policy_dict.DeepCopy());
- list->Append(dict);
- }
- policy_dict.Set("list", list);
- policy_dict.Set("dict", policy_dict.DeepCopy());
-
- // Install these policies as a Chrome policy.
- test_harness_->InstallDictionaryPolicy(test_keys::kKeyDictionary,
- &policy_dict);
- // Install them as 3rd party policies too.
- base::DictionaryValue policy_3rdparty;
- policy_3rdparty.Set("extensions.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
- policy_dict.DeepCopy());
- policy_3rdparty.Set("extensions.bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
- policy_dict.DeepCopy());
- // Install invalid 3rd party policies that shouldn't be loaded. These also
- // help detecting memory leaks in the code paths that detect invalid input.
- policy_3rdparty.Set("invalid-domain.component", policy_dict.DeepCopy());
- policy_3rdparty.Set("extensions.cccccccccccccccccccccccccccccccc",
- base::Value::CreateStringValue("invalid-value"));
- test_harness_->Install3rdPartyPolicy(&policy_3rdparty);
-
- provider_->RefreshPolicies();
- loop_.RunUntilIdle();
-
- PolicyMap expected_policy;
- expected_policy.Set(test_keys::kKeyDictionary,
- test_harness_->policy_level(),
- test_harness_->policy_scope(),
- policy_dict.DeepCopy(),
- NULL);
- PolicyBundle expected_bundle;
- expected_bundle.Get(PolicyNamespace(POLICY_DOMAIN_CHROME, std::string()))
- .CopyFrom(expected_policy);
- expected_policy.Clear();
- expected_policy.LoadFrom(&policy_dict,
- test_harness_->policy_level(),
- test_harness_->policy_scope());
- expected_bundle.Get(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS,
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"))
- .CopyFrom(expected_policy);
- expected_bundle.Get(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS,
- "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"))
- .CopyFrom(expected_policy);
- EXPECT_TRUE(provider_->policies().Equals(expected_bundle));
-}
-
-} // namespace policy

Powered by Google App Engine
This is Rietveld 408576698