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

Side by Side 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 unified diff | Download patch | Annotate | Revision Log
« 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 »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 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/policy_map.h" 5 #include "chrome/browser/policy/policy_map.h"
6 6
7 #include <set>
8 #include <string>
9
7 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
8 #include "policy/configuration_policy_type.h" 11 #include "policy/policy_constants.h"
9 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/gtest/include/gtest/gtest.h"
10 13
11 namespace policy { 14 namespace policy {
12 15
16 namespace {
17
18 // Utility function for the tests.
19 void SetPolicy(PolicyMap* map, const char* name, Value* value) {
20 map->Set(name, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, value);
21 }
22
13 TEST(PolicyMapTest, SetAndGet) { 23 TEST(PolicyMapTest, SetAndGet) {
14 PolicyMap map; 24 PolicyMap map;
15 map.Set(kPolicyHomepageLocation, Value::CreateStringValue("aaa")); 25 SetPolicy(&map, key::kHomepageLocation, Value::CreateStringValue("aaa"));
16 StringValue expected("aaa"); 26 StringValue expected("aaa");
17 EXPECT_TRUE(expected.Equals(map.Get(kPolicyHomepageLocation))); 27 EXPECT_TRUE(expected.Equals(map.GetValue(key::kHomepageLocation)));
18 map.Set(kPolicyHomepageLocation, Value::CreateStringValue("bbb")); 28 SetPolicy(&map, key::kHomepageLocation, Value::CreateStringValue("bbb"));
19 StringValue expected_b("bbb"); 29 StringValue expected_b("bbb");
20 EXPECT_TRUE(expected_b.Equals(map.Get(kPolicyHomepageLocation))); 30 EXPECT_TRUE(expected_b.Equals(map.GetValue(key::kHomepageLocation)));
31 const PolicyMap::Entry* entry = map.Get(key::kHomepageLocation);
32 ASSERT_TRUE(entry != NULL);
33 EXPECT_EQ(POLICY_LEVEL_MANDATORY, entry->level);
34 EXPECT_EQ(POLICY_SCOPE_USER, entry->scope);
35 map.Set(key::kHomepageLocation, POLICY_LEVEL_RECOMMENDED,
36 POLICY_SCOPE_MACHINE, NULL);
37 entry = map.Get(key::kHomepageLocation);
38 ASSERT_TRUE(entry != NULL);
39 EXPECT_EQ(POLICY_LEVEL_RECOMMENDED, entry->level);
40 EXPECT_EQ(POLICY_SCOPE_MACHINE, entry->scope);
21 } 41 }
22 42
23 TEST(PolicyMapTest, Equals) { 43 TEST(PolicyMapTest, Equals) {
24 PolicyMap a; 44 PolicyMap a;
25 a.Set(kPolicyHomepageLocation, Value::CreateStringValue("aaa")); 45 SetPolicy(&a, key::kHomepageLocation, Value::CreateStringValue("aaa"));
26 PolicyMap a2; 46 PolicyMap a2;
27 a2.Set(kPolicyHomepageLocation, Value::CreateStringValue("aaa")); 47 SetPolicy(&a2, key::kHomepageLocation, Value::CreateStringValue("aaa"));
28 PolicyMap b; 48 PolicyMap b;
29 b.Set(kPolicyHomepageLocation, Value::CreateStringValue("bbb")); 49 SetPolicy(&b, key::kHomepageLocation, Value::CreateStringValue("bbb"));
30 PolicyMap c; 50 PolicyMap c;
31 c.Set(kPolicyHomepageLocation, Value::CreateStringValue("aaa")); 51 SetPolicy(&c, key::kHomepageLocation, Value::CreateStringValue("aaa"));
32 c.Set(kPolicyHomepageIsNewTabPage, Value::CreateBooleanValue(true)); 52 SetPolicy(&c, key::kHomepageIsNewTabPage, Value::CreateBooleanValue(true));
33 EXPECT_FALSE(a.Equals(b)); 53 EXPECT_FALSE(a.Equals(b));
34 EXPECT_FALSE(b.Equals(a)); 54 EXPECT_FALSE(b.Equals(a));
35 EXPECT_FALSE(a.Equals(c)); 55 EXPECT_FALSE(a.Equals(c));
36 EXPECT_FALSE(c.Equals(a)); 56 EXPECT_FALSE(c.Equals(a));
37 EXPECT_TRUE(a.Equals(a2)); 57 EXPECT_TRUE(a.Equals(a2));
38 EXPECT_TRUE(a2.Equals(a)); 58 EXPECT_TRUE(a2.Equals(a));
39 PolicyMap empty1; 59 PolicyMap empty1;
40 PolicyMap empty2; 60 PolicyMap empty2;
41 EXPECT_TRUE(empty1.Equals(empty2)); 61 EXPECT_TRUE(empty1.Equals(empty2));
42 EXPECT_TRUE(empty2.Equals(empty1)); 62 EXPECT_TRUE(empty2.Equals(empty1));
43 EXPECT_FALSE(empty1.Equals(a)); 63 EXPECT_FALSE(empty1.Equals(a));
44 EXPECT_FALSE(a.Equals(empty1)); 64 EXPECT_FALSE(a.Equals(empty1));
45 } 65 }
46 66
47 TEST(PolicyMapTest, Swap) { 67 TEST(PolicyMapTest, Swap) {
48 PolicyMap a; 68 PolicyMap a;
49 a.Set(kPolicyHomepageLocation, Value::CreateStringValue("aaa")); 69 SetPolicy(&a, key::kHomepageLocation, Value::CreateStringValue("aaa"));
50 PolicyMap b; 70 PolicyMap b;
51 b.Set(kPolicyHomepageLocation, Value::CreateStringValue("bbb")); 71 SetPolicy(&b, key::kHomepageLocation, Value::CreateStringValue("bbb"));
52 b.Set(kPolicyHomepageIsNewTabPage, Value::CreateBooleanValue(true)); 72 SetPolicy(&b, key::kHomepageIsNewTabPage, Value::CreateBooleanValue(true));
53 a.Swap(&b); 73 a.Swap(&b);
54 base::StringValue expected("bbb"); 74 base::StringValue expected("bbb");
55 EXPECT_TRUE(expected.Equals(a.Get(kPolicyHomepageLocation))); 75 EXPECT_TRUE(expected.Equals(a.GetValue(key::kHomepageLocation)));
56 base::FundamentalValue expected_bool(true); 76 base::FundamentalValue expected_bool(true);
57 EXPECT_TRUE(expected_bool.Equals(a.Get(kPolicyHomepageIsNewTabPage))); 77 EXPECT_TRUE(expected_bool.Equals(a.GetValue(key::kHomepageIsNewTabPage)));
58 StringValue expected_a("aaa"); 78 StringValue expected_a("aaa");
59 EXPECT_TRUE(expected_a.Equals(b.Get(kPolicyHomepageLocation))); 79 EXPECT_TRUE(expected_a.Equals(b.GetValue(key::kHomepageLocation)));
60 80
61 b.Clear(); 81 b.Clear();
62 a.Swap(&b); 82 a.Swap(&b);
63 PolicyMap empty; 83 PolicyMap empty;
64 EXPECT_TRUE(a.Equals(empty)); 84 EXPECT_TRUE(a.Equals(empty));
65 EXPECT_FALSE(b.Equals(empty)); 85 EXPECT_FALSE(b.Equals(empty));
66 } 86 }
67 87
88 TEST(PolicyMapTest, MergeFrom) {
89 PolicyMap a;
90 a.Set(key::kHomepageLocation, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
91 Value::CreateStringValue("google.com"));
92 a.Set(key::kShowHomeButton, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
93 Value::CreateBooleanValue(true));
94 a.Set(key::kBookmarkBarEnabled, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER,
95 Value::CreateBooleanValue(false));
96 a.Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_RECOMMENDED,
97 POLICY_SCOPE_MACHINE, Value::CreateStringValue("google.com/q={x}"));
98
99 PolicyMap b;
100 b.Set(key::kHomepageLocation, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
101 Value::CreateStringValue("chromium.org"));
102 b.Set(key::kShowHomeButton, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
103 Value::CreateBooleanValue(false));
104 b.Set(key::kBookmarkBarEnabled, POLICY_LEVEL_RECOMMENDED,
105 POLICY_SCOPE_MACHINE, Value::CreateBooleanValue(true));
106 b.Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_MANDATORY,
107 POLICY_SCOPE_MACHINE, Value::CreateStringValue(""));
108 b.Set(key::kDisableSpdy, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER,
109 Value::CreateBooleanValue(true));
110
111 a.MergeFrom(b);
112
113 PolicyMap c;
114 // POLICY_SCOPE_MACHINE over POLICY_SCOPE_USER.
115 c.Set(key::kHomepageLocation, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
116 Value::CreateStringValue("chromium.org"));
117 // |a| has precedence over |b|.
118 c.Set(key::kShowHomeButton, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
119 Value::CreateBooleanValue(true));
120 // POLICY_SCOPE_MACHINE over POLICY_SCOPE_USER for POLICY_LEVEL_RECOMMENDED.
121 c.Set(key::kBookmarkBarEnabled, POLICY_LEVEL_RECOMMENDED,
122 POLICY_SCOPE_MACHINE, Value::CreateBooleanValue(true));
123 // POLICY_LEVEL_MANDATORY over POLICY_LEVEL_RECOMMENDED.
124 c.Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_MANDATORY,
125 POLICY_SCOPE_MACHINE, Value::CreateStringValue(""));
126 // Merge new ones.
127 c.Set(key::kDisableSpdy, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER,
128 Value::CreateBooleanValue(true));
129
130 EXPECT_TRUE(a.Equals(c));
131 }
132
133 TEST(PolicyMapTest, GetDifferingKeys) {
134 PolicyMap a;
135 a.Set(key::kHomepageLocation, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
136 Value::CreateStringValue("google.com"));
137 a.Set(key::kShowHomeButton, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
138 Value::CreateBooleanValue(true));
139 a.Set(key::kBookmarkBarEnabled, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER,
140 Value::CreateBooleanValue(false));
141 a.Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_RECOMMENDED,
142 POLICY_SCOPE_MACHINE, Value::CreateStringValue("google.com/q={x}"));
143 a.Set(key::kDisable3DAPIs, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
144 Value::CreateBooleanValue(true));
145
146 PolicyMap b;
147 b.Set(key::kHomepageLocation, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
148 Value::CreateStringValue("google.com"));
149 b.Set(key::kShowHomeButton, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
150 Value::CreateBooleanValue(false));
151 b.Set(key::kBookmarkBarEnabled, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
152 Value::CreateBooleanValue(false));
153 b.Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_RECOMMENDED,
154 POLICY_SCOPE_USER, Value::CreateStringValue("google.com/q={x}"));
155 b.Set(key::kDisableSpdy, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER,
156 Value::CreateBooleanValue(true));
157
158 std::set<std::string> diff;
159 std::set<std::string> diff2;
160 a.GetDifferingKeys(b, &diff);
161 b.GetDifferingKeys(a, &diff2);
162 // Order shouldn't matter.
163 EXPECT_EQ(diff, diff2);
164 // No change.
165 EXPECT_TRUE(diff.find(key::kHomepageLocation) == diff.end());
166 // Different values.
167 EXPECT_TRUE(diff.find(key::kShowHomeButton) != diff.end());
168 // Different levels.
169 EXPECT_TRUE(diff.find(key::kBookmarkBarEnabled) != diff.end());
170 // Different scopes.
171 EXPECT_TRUE(diff.find(key::kDefaultSearchProviderSearchURL) != diff.end());
172 // Not in |a|.
173 EXPECT_TRUE(diff.find(key::kDisableSpdy) != diff.end());
174 // Not in |b|.
175 EXPECT_TRUE(diff.find(key::kDisable3DAPIs) != diff.end());
176 // No surprises.
177 EXPECT_EQ(5u, diff.size());
178 }
179
180 } // namespace
181
68 } // namespace policy 182 } // namespace policy
OLDNEW
« 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