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

Unified Diff: chrome/browser/policy/configuration_policy_provider_test.cc

Issue 8467011: Include only policy definitions that apply to the platfrom in the policy definition list. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed feedback. Created 9 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/policy/configuration_policy_provider_test.cc
diff --git a/chrome/browser/policy/configuration_policy_provider_test.cc b/chrome/browser/policy/configuration_policy_provider_test.cc
new file mode 100644
index 0000000000000000000000000000000000000000..6997e6140c7d42665c937a36890add40020906aa
--- /dev/null
+++ b/chrome/browser/policy/configuration_policy_provider_test.cc
@@ -0,0 +1,143 @@
+// Copyright (c) 2011 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 "chrome/browser/policy/configuration_policy_provider_test.h"
+
+#include "base/bind.h"
+#include "base/values.h"
+#include "chrome/browser/policy/asynchronous_policy_loader.h"
+#include "chrome/browser/policy/asynchronous_policy_provider.h"
+#include "chrome/browser/policy/configuration_policy_provider.h"
+#include "chrome/browser/policy/policy_map.h"
+#include "policy/policy_constants.h"
+
+namespace policy {
+
+namespace test_policy_definitions {
+
+const char kKeyString[] = "StringPolicy";
+const char kKeyBoolean[] = "BooleanPolicy";
+const char kKeyInteger[] = "IntegerPolicy";
+const char kKeyStringList[] = "StringListPolicy";
+
+// In order to have correct enum values, we alias these to some actual policies.
+const ConfigurationPolicyType kPolicyString = kPolicyHomepageLocation;
+const ConfigurationPolicyType kPolicyBoolean = kPolicyHomepageIsNewTabPage;
+const ConfigurationPolicyType kPolicyInteger = kPolicyRestoreOnStartup;
+const ConfigurationPolicyType kPolicyStringList = kPolicyRestoreOnStartupURLs;
+
+static const PolicyDefinitionList::Entry kEntries[] = {
+ { kPolicyString, base::Value::TYPE_STRING, kKeyString },
+ { kPolicyBoolean, base::Value::TYPE_BOOLEAN, kKeyBoolean },
+ { kPolicyInteger, base::Value::TYPE_INTEGER, kKeyInteger },
+ { kPolicyStringList, base::Value::TYPE_LIST, kKeyStringList },
+};
+
+const PolicyDefinitionList kList = {
+ kEntries, kEntries + arraysize(kEntries)
+};
+
+} // namespace test_policy_definitions
+
+PolicyProviderTestHarness::PolicyProviderTestHarness() {}
+
+PolicyProviderTestHarness::~PolicyProviderTestHarness() {}
+
+ConfigurationPolicyProviderTest::ConfigurationPolicyProviderTest() {}
+
+ConfigurationPolicyProviderTest::~ConfigurationPolicyProviderTest() {}
+
+void ConfigurationPolicyProviderTest::SetUp() {
+ AsynchronousPolicyTestBase::SetUp();
+
+ test_harness_.reset((*GetParam())());
+ test_harness_->SetUp();
+
+ provider_.reset(
+ test_harness_->CreateProvider(&test_policy_definitions::kList));
+
+ PolicyMap policy_map;
+ EXPECT_TRUE(provider_->Provide(&policy_map));
+ EXPECT_TRUE(policy_map.empty());
+}
+
+void ConfigurationPolicyProviderTest::TearDown() {
+ // Give providers the chance to clean up after themselves on the file thread.
+ provider_.reset();
+
+ AsynchronousPolicyTestBase::TearDown();
+}
+
+void ConfigurationPolicyProviderTest::CheckValue(
+ const char* policy_name,
+ ConfigurationPolicyType policy_type,
+ 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_->ForceReload();
+ loop_.RunAllPending();
+ PolicyMap policy_map;
+ EXPECT_TRUE(provider_->Provide(&policy_map));
+ EXPECT_EQ(1U, policy_map.size());
+ EXPECT_TRUE(base::Value::Equals(&expected_value,
+ policy_map.Get(policy_type)));
+}
+
+TEST_P(ConfigurationPolicyProviderTest, Empty) {
+ provider_->ForceReload();
+ loop_.RunAllPending();
+ PolicyMap policy_map;
+ EXPECT_TRUE(provider_->Provide(&policy_map));
+ EXPECT_TRUE(policy_map.empty());
+}
+
+TEST_P(ConfigurationPolicyProviderTest, StringValue) {
+ const char kTestString[] = "string_value";
+ StringValue expected_value(kTestString);
+ CheckValue(test_policy_definitions::kKeyString,
+ test_policy_definitions::kPolicyString,
+ expected_value,
+ base::Bind(&PolicyProviderTestHarness::InstallStringPolicy,
+ base::Unretained(test_harness_.get()),
+ test_policy_definitions::kKeyString,
+ kTestString));
+}
+
+TEST_P(ConfigurationPolicyProviderTest, BooleanValue) {
+ base::FundamentalValue expected_value(true);
+ CheckValue(test_policy_definitions::kKeyBoolean,
+ test_policy_definitions::kPolicyBoolean,
+ expected_value,
+ base::Bind(&PolicyProviderTestHarness::InstallBooleanPolicy,
+ base::Unretained(test_harness_.get()),
+ test_policy_definitions::kKeyBoolean,
+ true));
+}
+
+TEST_P(ConfigurationPolicyProviderTest, IntegerValue) {
+ base::FundamentalValue expected_value(42);
+ CheckValue(test_policy_definitions::kKeyInteger,
+ test_policy_definitions::kPolicyInteger,
+ expected_value,
+ base::Bind(&PolicyProviderTestHarness::InstallIntegerPolicy,
+ base::Unretained(test_harness_.get()),
+ test_policy_definitions::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_policy_definitions::kKeyStringList,
+ test_policy_definitions::kPolicyStringList,
+ expected_value,
+ base::Bind(&PolicyProviderTestHarness::InstallStringListPolicy,
+ base::Unretained(test_harness_.get()),
+ test_policy_definitions::kKeyStringList,
+ &expected_value));
+}
+
+} // namespace policy

Powered by Google App Engine
This is Rietveld 408576698