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

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

Issue 9111022: Removed ConfigurationPolicyType and extended PolicyMap. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased Created 8 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/policy/policy_map.cc ('k') | chrome/browser/policy/policy_status_info.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/policy/policy_map_unittest.cc
diff --git a/chrome/browser/policy/policy_map_unittest.cc b/chrome/browser/policy/policy_map_unittest.cc
index eb54400c66c5da051813ae6b118ead03d048134e..a2f6207713a4e367ba7d94e0f33332b91ff0cd43 100644
--- a/chrome/browser/policy/policy_map_unittest.cc
+++ b/chrome/browser/policy/policy_map_unittest.cc
@@ -1,35 +1,55 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// 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 "chrome/browser/policy/policy_map.h"
+#include <set>
+#include <string>
+
#include "base/memory/scoped_ptr.h"
-#include "policy/configuration_policy_type.h"
+#include "policy/policy_constants.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace policy {
+namespace {
+
+// Utility function for the tests.
+void SetPolicy(PolicyMap* map, const char* name, Value* value) {
+ map->Set(name, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, value);
+}
+
TEST(PolicyMapTest, SetAndGet) {
PolicyMap map;
- map.Set(kPolicyHomepageLocation, Value::CreateStringValue("aaa"));
+ SetPolicy(&map, key::kHomepageLocation, Value::CreateStringValue("aaa"));
StringValue expected("aaa");
- EXPECT_TRUE(expected.Equals(map.Get(kPolicyHomepageLocation)));
- map.Set(kPolicyHomepageLocation, Value::CreateStringValue("bbb"));
+ EXPECT_TRUE(expected.Equals(map.GetValue(key::kHomepageLocation)));
+ SetPolicy(&map, key::kHomepageLocation, Value::CreateStringValue("bbb"));
StringValue expected_b("bbb");
- EXPECT_TRUE(expected_b.Equals(map.Get(kPolicyHomepageLocation)));
+ EXPECT_TRUE(expected_b.Equals(map.GetValue(key::kHomepageLocation)));
+ const PolicyMap::Entry* entry = map.Get(key::kHomepageLocation);
+ ASSERT_TRUE(entry != NULL);
+ EXPECT_EQ(POLICY_LEVEL_MANDATORY, entry->level);
+ EXPECT_EQ(POLICY_SCOPE_USER, entry->scope);
+ map.Set(key::kHomepageLocation, POLICY_LEVEL_RECOMMENDED,
+ POLICY_SCOPE_MACHINE, NULL);
+ entry = map.Get(key::kHomepageLocation);
+ ASSERT_TRUE(entry != NULL);
+ EXPECT_EQ(POLICY_LEVEL_RECOMMENDED, entry->level);
+ EXPECT_EQ(POLICY_SCOPE_MACHINE, entry->scope);
}
TEST(PolicyMapTest, Equals) {
PolicyMap a;
- a.Set(kPolicyHomepageLocation, Value::CreateStringValue("aaa"));
+ SetPolicy(&a, key::kHomepageLocation, Value::CreateStringValue("aaa"));
PolicyMap a2;
- a2.Set(kPolicyHomepageLocation, Value::CreateStringValue("aaa"));
+ SetPolicy(&a2, key::kHomepageLocation, Value::CreateStringValue("aaa"));
PolicyMap b;
- b.Set(kPolicyHomepageLocation, Value::CreateStringValue("bbb"));
+ SetPolicy(&b, key::kHomepageLocation, Value::CreateStringValue("bbb"));
PolicyMap c;
- c.Set(kPolicyHomepageLocation, Value::CreateStringValue("aaa"));
- c.Set(kPolicyHomepageIsNewTabPage, Value::CreateBooleanValue(true));
+ SetPolicy(&c, key::kHomepageLocation, Value::CreateStringValue("aaa"));
+ SetPolicy(&c, key::kHomepageIsNewTabPage, Value::CreateBooleanValue(true));
EXPECT_FALSE(a.Equals(b));
EXPECT_FALSE(b.Equals(a));
EXPECT_FALSE(a.Equals(c));
@@ -46,17 +66,17 @@ TEST(PolicyMapTest, Equals) {
TEST(PolicyMapTest, Swap) {
PolicyMap a;
- a.Set(kPolicyHomepageLocation, Value::CreateStringValue("aaa"));
+ SetPolicy(&a, key::kHomepageLocation, Value::CreateStringValue("aaa"));
PolicyMap b;
- b.Set(kPolicyHomepageLocation, Value::CreateStringValue("bbb"));
- b.Set(kPolicyHomepageIsNewTabPage, Value::CreateBooleanValue(true));
+ SetPolicy(&b, key::kHomepageLocation, Value::CreateStringValue("bbb"));
+ SetPolicy(&b, key::kHomepageIsNewTabPage, Value::CreateBooleanValue(true));
a.Swap(&b);
base::StringValue expected("bbb");
- EXPECT_TRUE(expected.Equals(a.Get(kPolicyHomepageLocation)));
+ EXPECT_TRUE(expected.Equals(a.GetValue(key::kHomepageLocation)));
base::FundamentalValue expected_bool(true);
- EXPECT_TRUE(expected_bool.Equals(a.Get(kPolicyHomepageIsNewTabPage)));
+ EXPECT_TRUE(expected_bool.Equals(a.GetValue(key::kHomepageIsNewTabPage)));
StringValue expected_a("aaa");
- EXPECT_TRUE(expected_a.Equals(b.Get(kPolicyHomepageLocation)));
+ EXPECT_TRUE(expected_a.Equals(b.GetValue(key::kHomepageLocation)));
b.Clear();
a.Swap(&b);
@@ -65,4 +85,98 @@ TEST(PolicyMapTest, Swap) {
EXPECT_FALSE(b.Equals(empty));
}
+TEST(PolicyMapTest, MergeFrom) {
+ PolicyMap a;
+ a.Set(key::kHomepageLocation, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
+ Value::CreateStringValue("google.com"));
+ a.Set(key::kShowHomeButton, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
+ Value::CreateBooleanValue(true));
+ a.Set(key::kBookmarkBarEnabled, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER,
+ Value::CreateBooleanValue(false));
+ a.Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_RECOMMENDED,
+ POLICY_SCOPE_MACHINE, Value::CreateStringValue("google.com/q={x}"));
+
+ PolicyMap b;
+ b.Set(key::kHomepageLocation, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
+ Value::CreateStringValue("chromium.org"));
+ b.Set(key::kShowHomeButton, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
+ Value::CreateBooleanValue(false));
+ b.Set(key::kBookmarkBarEnabled, POLICY_LEVEL_RECOMMENDED,
+ POLICY_SCOPE_MACHINE, Value::CreateBooleanValue(true));
+ b.Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_MANDATORY,
+ POLICY_SCOPE_MACHINE, Value::CreateStringValue(""));
+ b.Set(key::kDisableSpdy, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER,
+ Value::CreateBooleanValue(true));
+
+ a.MergeFrom(b);
+
+ PolicyMap c;
+ // POLICY_SCOPE_MACHINE over POLICY_SCOPE_USER.
+ c.Set(key::kHomepageLocation, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
+ Value::CreateStringValue("chromium.org"));
+ // |a| has precedence over |b|.
+ c.Set(key::kShowHomeButton, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
+ Value::CreateBooleanValue(true));
+ // POLICY_SCOPE_MACHINE over POLICY_SCOPE_USER for POLICY_LEVEL_RECOMMENDED.
+ c.Set(key::kBookmarkBarEnabled, POLICY_LEVEL_RECOMMENDED,
+ POLICY_SCOPE_MACHINE, Value::CreateBooleanValue(true));
+ // POLICY_LEVEL_MANDATORY over POLICY_LEVEL_RECOMMENDED.
+ c.Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_MANDATORY,
+ POLICY_SCOPE_MACHINE, Value::CreateStringValue(""));
+ // Merge new ones.
+ c.Set(key::kDisableSpdy, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER,
+ Value::CreateBooleanValue(true));
+
+ EXPECT_TRUE(a.Equals(c));
+}
+
+TEST(PolicyMapTest, GetDifferingKeys) {
+ PolicyMap a;
+ a.Set(key::kHomepageLocation, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
+ Value::CreateStringValue("google.com"));
+ a.Set(key::kShowHomeButton, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
+ Value::CreateBooleanValue(true));
+ a.Set(key::kBookmarkBarEnabled, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER,
+ Value::CreateBooleanValue(false));
+ a.Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_RECOMMENDED,
+ POLICY_SCOPE_MACHINE, Value::CreateStringValue("google.com/q={x}"));
+ a.Set(key::kDisable3DAPIs, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
+ Value::CreateBooleanValue(true));
+
+ PolicyMap b;
+ b.Set(key::kHomepageLocation, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
+ Value::CreateStringValue("google.com"));
+ b.Set(key::kShowHomeButton, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
+ Value::CreateBooleanValue(false));
+ b.Set(key::kBookmarkBarEnabled, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
+ Value::CreateBooleanValue(false));
+ b.Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_RECOMMENDED,
+ POLICY_SCOPE_USER, Value::CreateStringValue("google.com/q={x}"));
+ b.Set(key::kDisableSpdy, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER,
+ Value::CreateBooleanValue(true));
+
+ std::set<std::string> diff;
+ std::set<std::string> diff2;
+ a.GetDifferingKeys(b, &diff);
+ b.GetDifferingKeys(a, &diff2);
+ // Order shouldn't matter.
+ EXPECT_EQ(diff, diff2);
+ // No change.
+ EXPECT_TRUE(diff.find(key::kHomepageLocation) == diff.end());
+ // Different values.
+ EXPECT_TRUE(diff.find(key::kShowHomeButton) != diff.end());
+ // Different levels.
+ EXPECT_TRUE(diff.find(key::kBookmarkBarEnabled) != diff.end());
+ // Different scopes.
+ EXPECT_TRUE(diff.find(key::kDefaultSearchProviderSearchURL) != diff.end());
+ // Not in |a|.
+ EXPECT_TRUE(diff.find(key::kDisableSpdy) != diff.end());
+ // Not in |b|.
+ EXPECT_TRUE(diff.find(key::kDisable3DAPIs) != diff.end());
+ // No surprises.
+ EXPECT_EQ(5u, diff.size());
+}
+
+} // namespace
+
} // namespace policy
« no previous file with comments | « chrome/browser/policy/policy_map.cc ('k') | chrome/browser/policy/policy_status_info.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698