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

Side by Side Diff: components/policy/core/browser/configuration_policy_handler_unittest.cc

Issue 1940153002: Use std::unique_ptr to express ownership of base::Value in PolicyMap::Entry (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: another-fix Created 4 years, 7 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
OLDNEW
1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2014 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 "components/policy/core/browser/configuration_policy_handler.h" 5 #include "components/policy/core/browser/configuration_policy_handler.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/callback.h" 10 #include "base/callback.h"
11 #include "base/json/json_reader.h" 11 #include "base/json/json_reader.h"
12 #include "base/memory/ptr_util.h"
12 #include "base/values.h" 13 #include "base/values.h"
13 #include "components/policy/core/browser/policy_error_map.h" 14 #include "components/policy/core/browser/policy_error_map.h"
14 #include "components/policy/core/common/policy_map.h" 15 #include "components/policy/core/common/policy_map.h"
15 #include "components/policy/core/common/policy_types.h" 16 #include "components/policy/core/common/policy_types.h"
16 #include "components/policy/core/common/schema.h" 17 #include "components/policy/core/common/schema.h"
17 #include "components/prefs/pref_value_map.h" 18 #include "components/prefs/pref_value_map.h"
18 #include "testing/gtest/include/gtest/gtest.h" 19 #include "testing/gtest/include/gtest/gtest.h"
19 20
20 namespace policy { 21 namespace policy {
21 22
(...skipping 30 matching lines...) Expand all
52 53
53 TEST(StringToIntEnumListPolicyHandlerTest, CheckPolicySettings) { 54 TEST(StringToIntEnumListPolicyHandlerTest, CheckPolicySettings) {
54 base::ListValue list; 55 base::ListValue list;
55 PolicyMap policy_map; 56 PolicyMap policy_map;
56 PolicyErrorMap errors; 57 PolicyErrorMap errors;
57 StringMappingListPolicyHandler handler( 58 StringMappingListPolicyHandler handler(
58 kTestPolicy, 59 kTestPolicy,
59 kTestPref, 60 kTestPref,
60 base::Bind(GetIntegerTypeMap)); 61 base::Bind(GetIntegerTypeMap));
61 62
62 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 63 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
63 POLICY_SOURCE_CLOUD, list.DeepCopy(), nullptr); 64 POLICY_SOURCE_CLOUD, list.CreateDeepCopy(), nullptr);
64 errors.Clear(); 65 errors.Clear();
65 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); 66 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
66 EXPECT_TRUE(errors.empty()); 67 EXPECT_TRUE(errors.empty());
67 68
68 list.AppendString("one"); 69 list.AppendString("one");
69 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 70 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
70 POLICY_SOURCE_CLOUD, list.DeepCopy(), nullptr); 71 POLICY_SOURCE_CLOUD, list.CreateDeepCopy(), nullptr);
71 errors.Clear(); 72 errors.Clear();
72 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); 73 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
73 EXPECT_TRUE(errors.empty()); 74 EXPECT_TRUE(errors.empty());
74 75
75 list.AppendString("invalid"); 76 list.AppendString("invalid");
76 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 77 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
77 POLICY_SOURCE_CLOUD, list.DeepCopy(), nullptr); 78 POLICY_SOURCE_CLOUD, list.CreateDeepCopy(), nullptr);
78 errors.Clear(); 79 errors.Clear();
79 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); 80 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
80 EXPECT_FALSE(errors.empty()); 81 EXPECT_FALSE(errors.empty());
81 EXPECT_FALSE(errors.GetErrors(kTestPolicy).empty()); 82 EXPECT_FALSE(errors.GetErrors(kTestPolicy).empty());
82 83
83 policy_map.Set(kTestPolicy, 84 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
84 POLICY_LEVEL_MANDATORY,
85 POLICY_SCOPE_USER,
86 POLICY_SOURCE_CLOUD, 85 POLICY_SOURCE_CLOUD,
87 new base::StringValue("no list"), 86 base::WrapUnique(new base::StringValue("no list")), NULL);
88 NULL);
89 errors.Clear(); 87 errors.Clear();
90 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors)); 88 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors));
91 EXPECT_FALSE(errors.empty()); 89 EXPECT_FALSE(errors.empty());
92 EXPECT_FALSE(errors.GetErrors(kTestPolicy).empty()); 90 EXPECT_FALSE(errors.GetErrors(kTestPolicy).empty());
93 } 91 }
94 92
95 TEST(StringMappingListPolicyHandlerTest, ApplyPolicySettings) { 93 TEST(StringMappingListPolicyHandlerTest, ApplyPolicySettings) {
96 base::ListValue list; 94 base::ListValue list;
97 base::ListValue expected; 95 base::ListValue expected;
98 PolicyMap policy_map; 96 PolicyMap policy_map;
99 PrefValueMap prefs; 97 PrefValueMap prefs;
100 base::Value* value; 98 base::Value* value;
101 StringMappingListPolicyHandler handler( 99 StringMappingListPolicyHandler handler(
102 kTestPolicy, 100 kTestPolicy,
103 kTestPref, 101 kTestPref,
104 base::Bind(GetIntegerTypeMap)); 102 base::Bind(GetIntegerTypeMap));
105 103
106 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 104 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
107 POLICY_SOURCE_CLOUD, list.DeepCopy(), nullptr); 105 POLICY_SOURCE_CLOUD, list.CreateDeepCopy(), nullptr);
108 handler.ApplyPolicySettings(policy_map, &prefs); 106 handler.ApplyPolicySettings(policy_map, &prefs);
109 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); 107 EXPECT_TRUE(prefs.GetValue(kTestPref, &value));
110 EXPECT_TRUE(base::Value::Equals(&expected, value)); 108 EXPECT_TRUE(base::Value::Equals(&expected, value));
111 109
112 list.AppendString("two"); 110 list.AppendString("two");
113 expected.AppendInteger(2); 111 expected.AppendInteger(2);
114 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 112 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
115 POLICY_SOURCE_CLOUD, list.DeepCopy(), nullptr); 113 POLICY_SOURCE_CLOUD, list.CreateDeepCopy(), nullptr);
116 handler.ApplyPolicySettings(policy_map, &prefs); 114 handler.ApplyPolicySettings(policy_map, &prefs);
117 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); 115 EXPECT_TRUE(prefs.GetValue(kTestPref, &value));
118 EXPECT_TRUE(base::Value::Equals(&expected, value)); 116 EXPECT_TRUE(base::Value::Equals(&expected, value));
119 117
120 list.AppendString("invalid"); 118 list.AppendString("invalid");
121 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 119 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
122 POLICY_SOURCE_CLOUD, list.DeepCopy(), nullptr); 120 POLICY_SOURCE_CLOUD, list.CreateDeepCopy(), nullptr);
123 handler.ApplyPolicySettings(policy_map, &prefs); 121 handler.ApplyPolicySettings(policy_map, &prefs);
124 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); 122 EXPECT_TRUE(prefs.GetValue(kTestPref, &value));
125 EXPECT_TRUE(base::Value::Equals(&expected, value)); 123 EXPECT_TRUE(base::Value::Equals(&expected, value));
126 } 124 }
127 125
128 TEST(IntRangePolicyHandler, CheckPolicySettingsClamp) { 126 TEST(IntRangePolicyHandler, CheckPolicySettingsClamp) {
129 PolicyMap policy_map; 127 PolicyMap policy_map;
130 PolicyErrorMap errors; 128 PolicyErrorMap errors;
131 129
132 // This tests needs to modify an int policy. The exact policy used and its 130 // This tests needs to modify an int policy. The exact policy used and its
133 // semantics outside the test are irrelevant. 131 // semantics outside the test are irrelevant.
134 IntRangePolicyHandler handler(kTestPolicy, kTestPref, 0, 10, true); 132 IntRangePolicyHandler handler(kTestPolicy, kTestPref, 0, 10, true);
135 133
136 // Check that values lying in the accepted range are not rejected. 134 // Check that values lying in the accepted range are not rejected.
137 policy_map.Set(kTestPolicy, 135 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
138 POLICY_LEVEL_MANDATORY,
139 POLICY_SCOPE_USER,
140 POLICY_SOURCE_CLOUD, 136 POLICY_SOURCE_CLOUD,
141 new base::FundamentalValue(0), 137 base::WrapUnique(new base::FundamentalValue(0)), nullptr);
142 NULL);
143 errors.Clear(); 138 errors.Clear();
144 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); 139 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
145 EXPECT_TRUE(errors.empty()); 140 EXPECT_TRUE(errors.empty());
146 141
147 policy_map.Set(kTestPolicy, 142 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
148 POLICY_LEVEL_MANDATORY,
149 POLICY_SCOPE_USER,
150 POLICY_SOURCE_CLOUD, 143 POLICY_SOURCE_CLOUD,
151 new base::FundamentalValue(5), 144 base::WrapUnique(new base::FundamentalValue(5)), nullptr);
152 NULL);
153 errors.Clear(); 145 errors.Clear();
154 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); 146 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
155 EXPECT_TRUE(errors.empty()); 147 EXPECT_TRUE(errors.empty());
156 148
157 policy_map.Set(kTestPolicy, 149 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
158 POLICY_LEVEL_MANDATORY,
159 POLICY_SCOPE_USER,
160 POLICY_SOURCE_CLOUD, 150 POLICY_SOURCE_CLOUD,
161 new base::FundamentalValue(10), 151 base::WrapUnique(new base::FundamentalValue(10)), nullptr);
162 NULL);
163 errors.Clear(); 152 errors.Clear();
164 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); 153 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
165 EXPECT_TRUE(errors.empty()); 154 EXPECT_TRUE(errors.empty());
166 155
167 // Check that values lying outside the accepted range are not rejected 156 // Check that values lying outside the accepted range are not rejected
168 // (because clamping is enabled) but do yield a warning message. 157 // (because clamping is enabled) but do yield a warning message.
169 policy_map.Set(kTestPolicy, 158 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
170 POLICY_LEVEL_MANDATORY,
171 POLICY_SCOPE_USER,
172 POLICY_SOURCE_CLOUD, 159 POLICY_SOURCE_CLOUD,
173 new base::FundamentalValue(-5), 160 base::WrapUnique(new base::FundamentalValue(-5)), nullptr);
174 NULL);
175 errors.Clear(); 161 errors.Clear();
176 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); 162 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
177 EXPECT_FALSE(errors.empty()); 163 EXPECT_FALSE(errors.empty());
178 164
179 policy_map.Set(kTestPolicy, 165 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
180 POLICY_LEVEL_MANDATORY,
181 POLICY_SCOPE_USER,
182 POLICY_SOURCE_CLOUD, 166 POLICY_SOURCE_CLOUD,
183 new base::FundamentalValue(15), 167 base::WrapUnique(new base::FundamentalValue(15)), nullptr);
184 NULL);
185 errors.Clear(); 168 errors.Clear();
186 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); 169 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
187 EXPECT_FALSE(errors.empty()); 170 EXPECT_FALSE(errors.empty());
188 171
189 // Check that an entirely invalid value is rejected and yields an error 172 // Check that an entirely invalid value is rejected and yields an error
190 // message. 173 // message.
191 policy_map.Set(kTestPolicy, 174 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
192 POLICY_LEVEL_MANDATORY,
193 POLICY_SCOPE_USER,
194 POLICY_SOURCE_CLOUD, 175 POLICY_SOURCE_CLOUD,
195 new base::StringValue("invalid"), 176 base::WrapUnique(new base::StringValue("invalid")), nullptr);
196 NULL);
197 errors.Clear(); 177 errors.Clear();
198 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors)); 178 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors));
199 EXPECT_FALSE(errors.empty()); 179 EXPECT_FALSE(errors.empty());
200 } 180 }
201 181
202 TEST(IntRangePolicyHandler, CheckPolicySettingsDontClamp) { 182 TEST(IntRangePolicyHandler, CheckPolicySettingsDontClamp) {
203 PolicyMap policy_map; 183 PolicyMap policy_map;
204 PolicyErrorMap errors; 184 PolicyErrorMap errors;
205 185
206 // This tests needs to modify an int policy. The exact policy used and its 186 // This tests needs to modify an int policy. The exact policy used and its
207 // semantics outside the test are irrelevant. 187 // semantics outside the test are irrelevant.
208 IntRangePolicyHandler handler(kTestPolicy, kTestPref, 0, 10, false); 188 IntRangePolicyHandler handler(kTestPolicy, kTestPref, 0, 10, false);
209 189
210 // Check that values lying in the accepted range are not rejected. 190 // Check that values lying in the accepted range are not rejected.
211 policy_map.Set(kTestPolicy, 191 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
212 POLICY_LEVEL_MANDATORY,
213 POLICY_SCOPE_USER,
214 POLICY_SOURCE_CLOUD, 192 POLICY_SOURCE_CLOUD,
215 new base::FundamentalValue(0), 193 base::WrapUnique(new base::FundamentalValue(0)), nullptr);
216 NULL);
217 errors.Clear(); 194 errors.Clear();
218 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); 195 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
219 EXPECT_TRUE(errors.empty()); 196 EXPECT_TRUE(errors.empty());
220 197
221 policy_map.Set(kTestPolicy, 198 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
222 POLICY_LEVEL_MANDATORY,
223 POLICY_SCOPE_USER,
224 POLICY_SOURCE_CLOUD, 199 POLICY_SOURCE_CLOUD,
225 new base::FundamentalValue(5), 200 base::WrapUnique(new base::FundamentalValue(5)), nullptr);
226 NULL);
227 errors.Clear(); 201 errors.Clear();
228 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); 202 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
229 EXPECT_TRUE(errors.empty()); 203 EXPECT_TRUE(errors.empty());
230 204
231 policy_map.Set(kTestPolicy, 205 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
232 POLICY_LEVEL_MANDATORY,
233 POLICY_SCOPE_USER,
234 POLICY_SOURCE_CLOUD, 206 POLICY_SOURCE_CLOUD,
235 new base::FundamentalValue(10), 207 base::WrapUnique(new base::FundamentalValue(10)), nullptr);
236 NULL);
237 errors.Clear(); 208 errors.Clear();
238 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); 209 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
239 EXPECT_TRUE(errors.empty()); 210 EXPECT_TRUE(errors.empty());
240 211
241 // Check that values lying outside the accepted range are rejected and yield 212 // Check that values lying outside the accepted range are rejected and yield
242 // an error message. 213 // an error message.
243 policy_map.Set(kTestPolicy, 214 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
244 POLICY_LEVEL_MANDATORY,
245 POLICY_SCOPE_USER,
246 POLICY_SOURCE_CLOUD, 215 POLICY_SOURCE_CLOUD,
247 new base::FundamentalValue(-5), 216 base::WrapUnique(new base::FundamentalValue(-5)), nullptr);
248 NULL);
249 errors.Clear(); 217 errors.Clear();
250 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors)); 218 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors));
251 EXPECT_FALSE(errors.empty()); 219 EXPECT_FALSE(errors.empty());
252 220
253 policy_map.Set(kTestPolicy, 221 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
254 POLICY_LEVEL_MANDATORY,
255 POLICY_SCOPE_USER,
256 POLICY_SOURCE_CLOUD, 222 POLICY_SOURCE_CLOUD,
257 new base::FundamentalValue(15), 223 base::WrapUnique(new base::FundamentalValue(15)), nullptr);
258 NULL);
259 errors.Clear(); 224 errors.Clear();
260 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors)); 225 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors));
261 EXPECT_FALSE(errors.empty()); 226 EXPECT_FALSE(errors.empty());
262 227
263 // Check that an entirely invalid value is rejected and yields an error 228 // Check that an entirely invalid value is rejected and yields an error
264 // message. 229 // message.
265 policy_map.Set(kTestPolicy, 230 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
266 POLICY_LEVEL_MANDATORY,
267 POLICY_SCOPE_USER,
268 POLICY_SOURCE_CLOUD, 231 POLICY_SOURCE_CLOUD,
269 new base::StringValue("invalid"), 232 base::WrapUnique(new base::StringValue("invalid")), nullptr);
270 NULL);
271 errors.Clear(); 233 errors.Clear();
272 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors)); 234 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors));
273 EXPECT_FALSE(errors.empty()); 235 EXPECT_FALSE(errors.empty());
274 } 236 }
275 237
276 TEST(IntRangePolicyHandler, ApplyPolicySettingsClamp) { 238 TEST(IntRangePolicyHandler, ApplyPolicySettingsClamp) {
277 PolicyMap policy_map; 239 PolicyMap policy_map;
278 PrefValueMap prefs; 240 PrefValueMap prefs;
279 std::unique_ptr<base::Value> expected; 241 std::unique_ptr<base::Value> expected;
280 const base::Value* value; 242 const base::Value* value;
281 243
282 // This tests needs to modify an int policy. The exact policy used and its 244 // This tests needs to modify an int policy. The exact policy used and its
283 // semantics outside the test are irrelevant. 245 // semantics outside the test are irrelevant.
284 IntRangePolicyHandler handler(kTestPolicy, kTestPref, 0, 10, true); 246 IntRangePolicyHandler handler(kTestPolicy, kTestPref, 0, 10, true);
285 247
286 // Check that values lying in the accepted range are written to the pref. 248 // Check that values lying in the accepted range are written to the pref.
287 policy_map.Set(kTestPolicy, 249 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
288 POLICY_LEVEL_MANDATORY,
289 POLICY_SCOPE_USER,
290 POLICY_SOURCE_CLOUD, 250 POLICY_SOURCE_CLOUD,
291 new base::FundamentalValue(0), 251 base::WrapUnique(new base::FundamentalValue(0)), nullptr);
292 NULL);
293 prefs.Clear(); 252 prefs.Clear();
294 handler.ApplyPolicySettings(policy_map, &prefs); 253 handler.ApplyPolicySettings(policy_map, &prefs);
295 expected.reset(new base::FundamentalValue(0)); 254 expected.reset(new base::FundamentalValue(0));
296 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); 255 EXPECT_TRUE(prefs.GetValue(kTestPref, &value));
297 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); 256 EXPECT_TRUE(base::Value::Equals(expected.get(), value));
298 257
299 policy_map.Set(kTestPolicy, 258 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
300 POLICY_LEVEL_MANDATORY,
301 POLICY_SCOPE_USER,
302 POLICY_SOURCE_CLOUD, 259 POLICY_SOURCE_CLOUD,
303 new base::FundamentalValue(5), 260 base::WrapUnique(new base::FundamentalValue(5)), nullptr);
304 NULL);
305 prefs.Clear(); 261 prefs.Clear();
306 handler.ApplyPolicySettings(policy_map, &prefs); 262 handler.ApplyPolicySettings(policy_map, &prefs);
307 expected.reset(new base::FundamentalValue(5)); 263 expected.reset(new base::FundamentalValue(5));
308 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); 264 EXPECT_TRUE(prefs.GetValue(kTestPref, &value));
309 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); 265 EXPECT_TRUE(base::Value::Equals(expected.get(), value));
310 266
311 policy_map.Set(kTestPolicy, 267 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
312 POLICY_LEVEL_MANDATORY,
313 POLICY_SCOPE_USER,
314 POLICY_SOURCE_CLOUD, 268 POLICY_SOURCE_CLOUD,
315 new base::FundamentalValue(10), 269 base::WrapUnique(new base::FundamentalValue(10)), nullptr);
316 NULL);
317 prefs.Clear(); 270 prefs.Clear();
318 handler.ApplyPolicySettings(policy_map, &prefs); 271 handler.ApplyPolicySettings(policy_map, &prefs);
319 expected.reset(new base::FundamentalValue(10)); 272 expected.reset(new base::FundamentalValue(10));
320 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); 273 EXPECT_TRUE(prefs.GetValue(kTestPref, &value));
321 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); 274 EXPECT_TRUE(base::Value::Equals(expected.get(), value));
322 275
323 // Check that values lying outside the accepted range are clamped and written 276 // Check that values lying outside the accepted range are clamped and written
324 // to the pref. 277 // to the pref.
325 policy_map.Set(kTestPolicy, 278 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
326 POLICY_LEVEL_MANDATORY,
327 POLICY_SCOPE_USER,
328 POLICY_SOURCE_CLOUD, 279 POLICY_SOURCE_CLOUD,
329 new base::FundamentalValue(-5), 280 base::WrapUnique(new base::FundamentalValue(-5)), nullptr);
330 NULL);
331 prefs.Clear(); 281 prefs.Clear();
332 handler.ApplyPolicySettings(policy_map, &prefs); 282 handler.ApplyPolicySettings(policy_map, &prefs);
333 expected.reset(new base::FundamentalValue(0)); 283 expected.reset(new base::FundamentalValue(0));
334 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); 284 EXPECT_TRUE(prefs.GetValue(kTestPref, &value));
335 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); 285 EXPECT_TRUE(base::Value::Equals(expected.get(), value));
336 286
337 policy_map.Set(kTestPolicy, 287 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
338 POLICY_LEVEL_MANDATORY,
339 POLICY_SCOPE_USER,
340 POLICY_SOURCE_CLOUD, 288 POLICY_SOURCE_CLOUD,
341 new base::FundamentalValue(15), 289 base::WrapUnique(new base::FundamentalValue(15)), nullptr);
342 NULL);
343 prefs.Clear(); 290 prefs.Clear();
344 handler.ApplyPolicySettings(policy_map, &prefs); 291 handler.ApplyPolicySettings(policy_map, &prefs);
345 expected.reset(new base::FundamentalValue(10)); 292 expected.reset(new base::FundamentalValue(10));
346 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); 293 EXPECT_TRUE(prefs.GetValue(kTestPref, &value));
347 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); 294 EXPECT_TRUE(base::Value::Equals(expected.get(), value));
348 } 295 }
349 296
350 TEST(IntRangePolicyHandler, ApplyPolicySettingsDontClamp) { 297 TEST(IntRangePolicyHandler, ApplyPolicySettingsDontClamp) {
351 PolicyMap policy_map; 298 PolicyMap policy_map;
352 PrefValueMap prefs; 299 PrefValueMap prefs;
353 std::unique_ptr<base::Value> expected; 300 std::unique_ptr<base::Value> expected;
354 const base::Value* value; 301 const base::Value* value;
355 302
356 // This tests needs to modify an int policy. The exact policy used and its 303 // This tests needs to modify an int policy. The exact policy used and its
357 // semantics outside the test are irrelevant. 304 // semantics outside the test are irrelevant.
358 IntRangePolicyHandler handler(kTestPolicy, kTestPref, 0, 10, true); 305 IntRangePolicyHandler handler(kTestPolicy, kTestPref, 0, 10, true);
359 306
360 // Check that values lying in the accepted range are written to the pref. 307 // Check that values lying in the accepted range are written to the pref.
361 policy_map.Set(kTestPolicy, 308 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
362 POLICY_LEVEL_MANDATORY,
363 POLICY_SCOPE_USER,
364 POLICY_SOURCE_CLOUD, 309 POLICY_SOURCE_CLOUD,
365 new base::FundamentalValue(0), 310 base::WrapUnique(new base::FundamentalValue(0)), nullptr);
366 NULL);
367 prefs.Clear(); 311 prefs.Clear();
368 handler.ApplyPolicySettings(policy_map, &prefs); 312 handler.ApplyPolicySettings(policy_map, &prefs);
369 expected.reset(new base::FundamentalValue(0)); 313 expected.reset(new base::FundamentalValue(0));
370 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); 314 EXPECT_TRUE(prefs.GetValue(kTestPref, &value));
371 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); 315 EXPECT_TRUE(base::Value::Equals(expected.get(), value));
372 316
373 policy_map.Set(kTestPolicy, 317 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
374 POLICY_LEVEL_MANDATORY,
375 POLICY_SCOPE_USER,
376 POLICY_SOURCE_CLOUD, 318 POLICY_SOURCE_CLOUD,
377 new base::FundamentalValue(5), 319 base::WrapUnique(new base::FundamentalValue(5)), nullptr);
378 NULL);
379 prefs.Clear(); 320 prefs.Clear();
380 handler.ApplyPolicySettings(policy_map, &prefs); 321 handler.ApplyPolicySettings(policy_map, &prefs);
381 expected.reset(new base::FundamentalValue(5)); 322 expected.reset(new base::FundamentalValue(5));
382 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); 323 EXPECT_TRUE(prefs.GetValue(kTestPref, &value));
383 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); 324 EXPECT_TRUE(base::Value::Equals(expected.get(), value));
384 325
385 policy_map.Set(kTestPolicy, 326 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
386 POLICY_LEVEL_MANDATORY,
387 POLICY_SCOPE_USER,
388 POLICY_SOURCE_CLOUD, 327 POLICY_SOURCE_CLOUD,
389 new base::FundamentalValue(10), 328 base::WrapUnique(new base::FundamentalValue(10)), nullptr);
390 NULL);
391 prefs.Clear(); 329 prefs.Clear();
392 handler.ApplyPolicySettings(policy_map, &prefs); 330 handler.ApplyPolicySettings(policy_map, &prefs);
393 expected.reset(new base::FundamentalValue(10)); 331 expected.reset(new base::FundamentalValue(10));
394 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); 332 EXPECT_TRUE(prefs.GetValue(kTestPref, &value));
395 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); 333 EXPECT_TRUE(base::Value::Equals(expected.get(), value));
396 } 334 }
397 335
398 TEST(IntPercentageToDoublePolicyHandler, CheckPolicySettingsClamp) { 336 TEST(IntPercentageToDoublePolicyHandler, CheckPolicySettingsClamp) {
399 PolicyMap policy_map; 337 PolicyMap policy_map;
400 PolicyErrorMap errors; 338 PolicyErrorMap errors;
401 339
402 // This tests needs to modify an int policy. The exact policy used and its 340 // This tests needs to modify an int policy. The exact policy used and its
403 // semantics outside the test are irrelevant. 341 // semantics outside the test are irrelevant.
404 IntPercentageToDoublePolicyHandler handler( 342 IntPercentageToDoublePolicyHandler handler(
405 kTestPolicy, kTestPref, 0, 10, true); 343 kTestPolicy, kTestPref, 0, 10, true);
406 344
407 // Check that values lying in the accepted range are not rejected. 345 // Check that values lying in the accepted range are not rejected.
408 policy_map.Set(kTestPolicy, 346 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
409 POLICY_LEVEL_MANDATORY,
410 POLICY_SCOPE_USER,
411 POLICY_SOURCE_CLOUD, 347 POLICY_SOURCE_CLOUD,
412 new base::FundamentalValue(0), 348 base::WrapUnique(new base::FundamentalValue(0)), nullptr);
413 NULL);
414 errors.Clear(); 349 errors.Clear();
415 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); 350 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
416 EXPECT_TRUE(errors.empty()); 351 EXPECT_TRUE(errors.empty());
417 352
418 policy_map.Set(kTestPolicy, 353 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
419 POLICY_LEVEL_MANDATORY,
420 POLICY_SCOPE_USER,
421 POLICY_SOURCE_CLOUD, 354 POLICY_SOURCE_CLOUD,
422 new base::FundamentalValue(5), 355 base::WrapUnique(new base::FundamentalValue(5)), nullptr);
423 NULL);
424 errors.Clear(); 356 errors.Clear();
425 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); 357 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
426 EXPECT_TRUE(errors.empty()); 358 EXPECT_TRUE(errors.empty());
427 359
428 policy_map.Set(kTestPolicy, 360 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
429 POLICY_LEVEL_MANDATORY,
430 POLICY_SCOPE_USER,
431 POLICY_SOURCE_CLOUD, 361 POLICY_SOURCE_CLOUD,
432 new base::FundamentalValue(10), 362 base::WrapUnique(new base::FundamentalValue(10)), nullptr);
433 NULL);
434 errors.Clear(); 363 errors.Clear();
435 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); 364 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
436 EXPECT_TRUE(errors.empty()); 365 EXPECT_TRUE(errors.empty());
437 366
438 // Check that values lying outside the accepted range are not rejected 367 // Check that values lying outside the accepted range are not rejected
439 // (because clamping is enabled) but do yield a warning message. 368 // (because clamping is enabled) but do yield a warning message.
440 policy_map.Set(kTestPolicy, 369 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
441 POLICY_LEVEL_MANDATORY,
442 POLICY_SCOPE_USER,
443 POLICY_SOURCE_CLOUD, 370 POLICY_SOURCE_CLOUD,
444 new base::FundamentalValue(-5), 371 base::WrapUnique(new base::FundamentalValue(-5)), nullptr);
445 NULL);
446 errors.Clear(); 372 errors.Clear();
447 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); 373 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
448 EXPECT_FALSE(errors.empty()); 374 EXPECT_FALSE(errors.empty());
449 375
450 policy_map.Set(kTestPolicy, 376 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
451 POLICY_LEVEL_MANDATORY,
452 POLICY_SCOPE_USER,
453 POLICY_SOURCE_CLOUD, 377 POLICY_SOURCE_CLOUD,
454 new base::FundamentalValue(15), 378 base::WrapUnique(new base::FundamentalValue(15)), nullptr);
455 NULL);
456 errors.Clear(); 379 errors.Clear();
457 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); 380 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
458 EXPECT_FALSE(errors.empty()); 381 EXPECT_FALSE(errors.empty());
459 382
460 // Check that an entirely invalid value is rejected and yields an error 383 // Check that an entirely invalid value is rejected and yields an error
461 // message. 384 // message.
462 policy_map.Set(kTestPolicy, 385 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
463 POLICY_LEVEL_MANDATORY,
464 POLICY_SCOPE_USER,
465 POLICY_SOURCE_CLOUD, 386 POLICY_SOURCE_CLOUD,
466 new base::StringValue("invalid"), 387 base::WrapUnique(new base::StringValue("invalid")), nullptr);
467 NULL);
468 errors.Clear(); 388 errors.Clear();
469 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors)); 389 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors));
470 EXPECT_FALSE(errors.empty()); 390 EXPECT_FALSE(errors.empty());
471 } 391 }
472 392
473 TEST(IntPercentageToDoublePolicyHandler, CheckPolicySettingsDontClamp) { 393 TEST(IntPercentageToDoublePolicyHandler, CheckPolicySettingsDontClamp) {
474 PolicyMap policy_map; 394 PolicyMap policy_map;
475 PolicyErrorMap errors; 395 PolicyErrorMap errors;
476 396
477 // This tests needs to modify an int policy. The exact policy used and its 397 // This tests needs to modify an int policy. The exact policy used and its
478 // semantics outside the test are irrelevant. 398 // semantics outside the test are irrelevant.
479 IntPercentageToDoublePolicyHandler handler( 399 IntPercentageToDoublePolicyHandler handler(
480 kTestPolicy, kTestPref, 0, 10, false); 400 kTestPolicy, kTestPref, 0, 10, false);
481 401
482 // Check that values lying in the accepted range are not rejected. 402 // Check that values lying in the accepted range are not rejected.
483 policy_map.Set(kTestPolicy, 403 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
484 POLICY_LEVEL_MANDATORY,
485 POLICY_SCOPE_USER,
486 POLICY_SOURCE_CLOUD, 404 POLICY_SOURCE_CLOUD,
487 new base::FundamentalValue(0), 405 base::WrapUnique(new base::FundamentalValue(0)), nullptr);
488 NULL);
489 errors.Clear(); 406 errors.Clear();
490 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); 407 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
491 EXPECT_TRUE(errors.empty()); 408 EXPECT_TRUE(errors.empty());
492 409
493 policy_map.Set(kTestPolicy, 410 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
494 POLICY_LEVEL_MANDATORY,
495 POLICY_SCOPE_USER,
496 POLICY_SOURCE_CLOUD, 411 POLICY_SOURCE_CLOUD,
497 new base::FundamentalValue(5), 412 base::WrapUnique(new base::FundamentalValue(5)), nullptr);
498 NULL);
499 errors.Clear(); 413 errors.Clear();
500 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); 414 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
501 EXPECT_TRUE(errors.empty()); 415 EXPECT_TRUE(errors.empty());
502 416
503 policy_map.Set(kTestPolicy, 417 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
504 POLICY_LEVEL_MANDATORY,
505 POLICY_SCOPE_USER,
506 POLICY_SOURCE_CLOUD, 418 POLICY_SOURCE_CLOUD,
507 new base::FundamentalValue(10), 419 base::WrapUnique(new base::FundamentalValue(10)), nullptr);
508 NULL);
509 errors.Clear(); 420 errors.Clear();
510 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); 421 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
511 EXPECT_TRUE(errors.empty()); 422 EXPECT_TRUE(errors.empty());
512 423
513 // Check that values lying outside the accepted range are rejected and yield 424 // Check that values lying outside the accepted range are rejected and yield
514 // an error message. 425 // an error message.
515 policy_map.Set(kTestPolicy, 426 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
516 POLICY_LEVEL_MANDATORY,
517 POLICY_SCOPE_USER,
518 POLICY_SOURCE_CLOUD, 427 POLICY_SOURCE_CLOUD,
519 new base::FundamentalValue(-5), 428 base::WrapUnique(new base::FundamentalValue(-5)), nullptr);
520 NULL);
521 errors.Clear(); 429 errors.Clear();
522 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors)); 430 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors));
523 EXPECT_FALSE(errors.empty()); 431 EXPECT_FALSE(errors.empty());
524 432
525 policy_map.Set(kTestPolicy, 433 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
526 POLICY_LEVEL_MANDATORY,
527 POLICY_SCOPE_USER,
528 POLICY_SOURCE_CLOUD, 434 POLICY_SOURCE_CLOUD,
529 new base::FundamentalValue(15), 435 base::WrapUnique(new base::FundamentalValue(15)), nullptr);
530 NULL);
531 errors.Clear(); 436 errors.Clear();
532 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors)); 437 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors));
533 EXPECT_FALSE(errors.empty()); 438 EXPECT_FALSE(errors.empty());
534 439
535 // Check that an entirely invalid value is rejected and yields an error 440 // Check that an entirely invalid value is rejected and yields an error
536 // message. 441 // message.
537 policy_map.Set(kTestPolicy, 442 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
538 POLICY_LEVEL_MANDATORY,
539 POLICY_SCOPE_USER,
540 POLICY_SOURCE_CLOUD, 443 POLICY_SOURCE_CLOUD,
541 new base::StringValue("invalid"), 444 base::WrapUnique(new base::StringValue("invalid")), nullptr);
542 NULL);
543 errors.Clear(); 445 errors.Clear();
544 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors)); 446 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors));
545 EXPECT_FALSE(errors.empty()); 447 EXPECT_FALSE(errors.empty());
546 } 448 }
547 449
548 TEST(IntPercentageToDoublePolicyHandler, ApplyPolicySettingsClamp) { 450 TEST(IntPercentageToDoublePolicyHandler, ApplyPolicySettingsClamp) {
549 PolicyMap policy_map; 451 PolicyMap policy_map;
550 PrefValueMap prefs; 452 PrefValueMap prefs;
551 std::unique_ptr<base::Value> expected; 453 std::unique_ptr<base::Value> expected;
552 const base::Value* value; 454 const base::Value* value;
553 455
554 // This tests needs to modify an int policy. The exact policy used and its 456 // This tests needs to modify an int policy. The exact policy used and its
555 // semantics outside the test are irrelevant. 457 // semantics outside the test are irrelevant.
556 IntPercentageToDoublePolicyHandler handler( 458 IntPercentageToDoublePolicyHandler handler(
557 kTestPolicy, kTestPref, 0, 10, true); 459 kTestPolicy, kTestPref, 0, 10, true);
558 460
559 // Check that values lying in the accepted range are written to the pref. 461 // Check that values lying in the accepted range are written to the pref.
560 policy_map.Set(kTestPolicy, 462 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
561 POLICY_LEVEL_MANDATORY,
562 POLICY_SCOPE_USER,
563 POLICY_SOURCE_CLOUD, 463 POLICY_SOURCE_CLOUD,
564 new base::FundamentalValue(0), 464 base::WrapUnique(new base::FundamentalValue(0)), nullptr);
565 NULL);
566 prefs.Clear(); 465 prefs.Clear();
567 handler.ApplyPolicySettings(policy_map, &prefs); 466 handler.ApplyPolicySettings(policy_map, &prefs);
568 expected.reset(new base::FundamentalValue(0.0)); 467 expected.reset(new base::FundamentalValue(0.0));
569 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); 468 EXPECT_TRUE(prefs.GetValue(kTestPref, &value));
570 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); 469 EXPECT_TRUE(base::Value::Equals(expected.get(), value));
571 470
572 policy_map.Set(kTestPolicy, 471 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
573 POLICY_LEVEL_MANDATORY,
574 POLICY_SCOPE_USER,
575 POLICY_SOURCE_CLOUD, 472 POLICY_SOURCE_CLOUD,
576 new base::FundamentalValue(5), 473 base::WrapUnique(new base::FundamentalValue(5)), nullptr);
577 NULL);
578 prefs.Clear(); 474 prefs.Clear();
579 handler.ApplyPolicySettings(policy_map, &prefs); 475 handler.ApplyPolicySettings(policy_map, &prefs);
580 expected.reset(new base::FundamentalValue(0.05)); 476 expected.reset(new base::FundamentalValue(0.05));
581 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); 477 EXPECT_TRUE(prefs.GetValue(kTestPref, &value));
582 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); 478 EXPECT_TRUE(base::Value::Equals(expected.get(), value));
583 479
584 policy_map.Set(kTestPolicy, 480 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
585 POLICY_LEVEL_MANDATORY,
586 POLICY_SCOPE_USER,
587 POLICY_SOURCE_CLOUD, 481 POLICY_SOURCE_CLOUD,
588 new base::FundamentalValue(10), 482 base::WrapUnique(new base::FundamentalValue(10)), nullptr);
589 NULL);
590 prefs.Clear(); 483 prefs.Clear();
591 handler.ApplyPolicySettings(policy_map, &prefs); 484 handler.ApplyPolicySettings(policy_map, &prefs);
592 expected.reset(new base::FundamentalValue(0.1)); 485 expected.reset(new base::FundamentalValue(0.1));
593 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); 486 EXPECT_TRUE(prefs.GetValue(kTestPref, &value));
594 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); 487 EXPECT_TRUE(base::Value::Equals(expected.get(), value));
595 488
596 // Check that values lying outside the accepted range are clamped and written 489 // Check that values lying outside the accepted range are clamped and written
597 // to the pref. 490 // to the pref.
598 policy_map.Set(kTestPolicy, 491 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
599 POLICY_LEVEL_MANDATORY,
600 POLICY_SCOPE_USER,
601 POLICY_SOURCE_CLOUD, 492 POLICY_SOURCE_CLOUD,
602 new base::FundamentalValue(-5), 493 base::WrapUnique(new base::FundamentalValue(-5)), nullptr);
603 NULL);
604 prefs.Clear(); 494 prefs.Clear();
605 handler.ApplyPolicySettings(policy_map, &prefs); 495 handler.ApplyPolicySettings(policy_map, &prefs);
606 expected.reset(new base::FundamentalValue(0.0)); 496 expected.reset(new base::FundamentalValue(0.0));
607 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); 497 EXPECT_TRUE(prefs.GetValue(kTestPref, &value));
608 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); 498 EXPECT_TRUE(base::Value::Equals(expected.get(), value));
609 499
610 policy_map.Set(kTestPolicy, 500 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
611 POLICY_LEVEL_MANDATORY,
612 POLICY_SCOPE_USER,
613 POLICY_SOURCE_CLOUD, 501 POLICY_SOURCE_CLOUD,
614 new base::FundamentalValue(15), 502 base::WrapUnique(new base::FundamentalValue(15)), nullptr);
615 NULL);
616 prefs.Clear(); 503 prefs.Clear();
617 handler.ApplyPolicySettings(policy_map, &prefs); 504 handler.ApplyPolicySettings(policy_map, &prefs);
618 expected.reset(new base::FundamentalValue(0.1)); 505 expected.reset(new base::FundamentalValue(0.1));
619 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); 506 EXPECT_TRUE(prefs.GetValue(kTestPref, &value));
620 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); 507 EXPECT_TRUE(base::Value::Equals(expected.get(), value));
621 } 508 }
622 509
623 TEST(IntPercentageToDoublePolicyHandler, ApplyPolicySettingsDontClamp) { 510 TEST(IntPercentageToDoublePolicyHandler, ApplyPolicySettingsDontClamp) {
624 PolicyMap policy_map; 511 PolicyMap policy_map;
625 PrefValueMap prefs; 512 PrefValueMap prefs;
626 std::unique_ptr<base::Value> expected; 513 std::unique_ptr<base::Value> expected;
627 const base::Value* value; 514 const base::Value* value;
628 515
629 // This tests needs to modify an int policy. The exact policy used and its 516 // This tests needs to modify an int policy. The exact policy used and its
630 // semantics outside the test are irrelevant. 517 // semantics outside the test are irrelevant.
631 IntPercentageToDoublePolicyHandler handler( 518 IntPercentageToDoublePolicyHandler handler(
632 kTestPolicy, kTestPref, 0, 10, true); 519 kTestPolicy, kTestPref, 0, 10, true);
633 520
634 // Check that values lying in the accepted range are written to the pref. 521 // Check that values lying in the accepted range are written to the pref.
635 policy_map.Set(kTestPolicy, 522 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
636 POLICY_LEVEL_MANDATORY,
637 POLICY_SCOPE_USER,
638 POLICY_SOURCE_CLOUD, 523 POLICY_SOURCE_CLOUD,
639 new base::FundamentalValue(0), 524 base::WrapUnique(new base::FundamentalValue(0)), nullptr);
640 NULL);
641 prefs.Clear(); 525 prefs.Clear();
642 handler.ApplyPolicySettings(policy_map, &prefs); 526 handler.ApplyPolicySettings(policy_map, &prefs);
643 expected.reset(new base::FundamentalValue(0.0)); 527 expected.reset(new base::FundamentalValue(0.0));
644 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); 528 EXPECT_TRUE(prefs.GetValue(kTestPref, &value));
645 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); 529 EXPECT_TRUE(base::Value::Equals(expected.get(), value));
646 530
647 policy_map.Set(kTestPolicy, 531 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
648 POLICY_LEVEL_MANDATORY,
649 POLICY_SCOPE_USER,
650 POLICY_SOURCE_CLOUD, 532 POLICY_SOURCE_CLOUD,
651 new base::FundamentalValue(5), 533 base::WrapUnique(new base::FundamentalValue(5)), nullptr);
652 NULL);
653 prefs.Clear(); 534 prefs.Clear();
654 handler.ApplyPolicySettings(policy_map, &prefs); 535 handler.ApplyPolicySettings(policy_map, &prefs);
655 expected.reset(new base::FundamentalValue(0.05)); 536 expected.reset(new base::FundamentalValue(0.05));
656 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); 537 EXPECT_TRUE(prefs.GetValue(kTestPref, &value));
657 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); 538 EXPECT_TRUE(base::Value::Equals(expected.get(), value));
658 539
659 policy_map.Set(kTestPolicy, 540 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
660 POLICY_LEVEL_MANDATORY,
661 POLICY_SCOPE_USER,
662 POLICY_SOURCE_CLOUD, 541 POLICY_SOURCE_CLOUD,
663 new base::FundamentalValue(10), 542 base::WrapUnique(new base::FundamentalValue(10)), nullptr);
664 NULL);
665 prefs.Clear(); 543 prefs.Clear();
666 handler.ApplyPolicySettings(policy_map, &prefs); 544 handler.ApplyPolicySettings(policy_map, &prefs);
667 expected.reset(new base::FundamentalValue(0.1)); 545 expected.reset(new base::FundamentalValue(0.1));
668 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); 546 EXPECT_TRUE(prefs.GetValue(kTestPref, &value));
669 EXPECT_TRUE(base::Value::Equals(expected.get(), value)); 547 EXPECT_TRUE(base::Value::Equals(expected.get(), value));
670 } 548 }
671 549
672 TEST(SchemaValidatingPolicyHandlerTest, CheckAndGetValue) { 550 TEST(SchemaValidatingPolicyHandlerTest, CheckAndGetValue) {
673 std::string error; 551 std::string error;
674 static const char kSchemaJson[] = 552 static const char kSchemaJson[] =
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
856 handler_recommended.ApplyPolicySettings(policy_map_mandatory, &prefs); 734 handler_recommended.ApplyPolicySettings(policy_map_mandatory, &prefs);
857 EXPECT_TRUE(prefs.GetValue(kTestPref, &value_set_in_pref)); 735 EXPECT_TRUE(prefs.GetValue(kTestPref, &value_set_in_pref));
858 EXPECT_TRUE(value_expected_in_pref->Equals(value_set_in_pref)); 736 EXPECT_TRUE(value_expected_in_pref->Equals(value_set_in_pref));
859 737
860 EXPECT_FALSE( 738 EXPECT_FALSE(
861 handler_none.CheckPolicySettings(policy_map_recommended, &errors)); 739 handler_none.CheckPolicySettings(policy_map_recommended, &errors));
862 EXPECT_FALSE(errors.empty()); 740 EXPECT_FALSE(errors.empty());
863 } 741 }
864 742
865 } // namespace policy 743 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698