OLD | NEW |
---|---|
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/common/policy_map.h" | 5 #include "components/policy/core/common/policy_map.h" |
6 | 6 |
7 #include "base/callback.h" | 7 #include "base/callback.h" |
8 #include "base/memory/weak_ptr.h" | 8 #include "base/memory/weak_ptr.h" |
9 #include "components/policy/core/common/external_data_manager.h" | 9 #include "components/policy/core/common/external_data_manager.h" |
10 #include "components/policy/core/common/policy_types.h" | |
10 #include "testing/gtest/include/gtest/gtest.h" | 11 #include "testing/gtest/include/gtest/gtest.h" |
11 | 12 |
12 namespace policy { | 13 namespace policy { |
13 | 14 |
14 namespace { | 15 namespace { |
15 | 16 |
16 // Dummy policy names. | 17 // Dummy policy names. |
17 const char kTestPolicyName1[] = "policy.test.1"; | 18 const char kTestPolicyName1[] = "policy.test.1"; |
18 const char kTestPolicyName2[] = "policy.test.2"; | 19 const char kTestPolicyName2[] = "policy.test.2"; |
19 const char kTestPolicyName3[] = "policy.test.3"; | 20 const char kTestPolicyName3[] = "policy.test.3"; |
20 const char kTestPolicyName4[] = "policy.test.4"; | 21 const char kTestPolicyName4[] = "policy.test.4"; |
21 const char kTestPolicyName5[] = "policy.test.5"; | 22 const char kTestPolicyName5[] = "policy.test.5"; |
22 const char kTestPolicyName6[] = "policy.test.6"; | 23 const char kTestPolicyName6[] = "policy.test.6"; |
23 const char kTestPolicyName7[] = "policy.test.7"; | 24 const char kTestPolicyName7[] = "policy.test.7"; |
24 const char kTestPolicyName8[] = "policy.test.8"; | 25 const char kTestPolicyName8[] = "policy.test.8"; |
25 | 26 |
26 // Utility functions for the tests. | 27 // Utility functions for the tests. |
27 void SetPolicy(PolicyMap* map, const char* name, base::Value* value) { | 28 void SetPolicy(PolicyMap* map, const char* name, base::Value* value) { |
28 map->Set(name, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, value, NULL); | 29 map->Set(name, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD, |
30 value, nullptr); | |
29 } | 31 } |
30 | 32 |
31 void SetPolicy(PolicyMap* map, | 33 void SetPolicy(PolicyMap* map, |
32 const char* name, | 34 const char* name, |
33 ExternalDataFetcher* external_data_fetcher) { | 35 ExternalDataFetcher* external_data_fetcher) { |
34 map->Set(name, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 36 map->Set(name, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD, |
35 NULL, external_data_fetcher); | 37 NULL, external_data_fetcher); |
36 } | 38 } |
37 | 39 |
38 } // namespace | 40 } // namespace |
39 | 41 |
40 class PolicyMapTest : public testing::Test { | 42 class PolicyMapTest : public testing::Test { |
41 protected: | 43 protected: |
42 scoped_ptr<ExternalDataFetcher> CreateExternalDataFetcher( | 44 scoped_ptr<ExternalDataFetcher> CreateExternalDataFetcher( |
43 const std::string& policy) const; | 45 const std::string& policy) const; |
44 }; | 46 }; |
(...skipping 14 matching lines...) Expand all Loading... | |
59 EXPECT_TRUE(expected_b.Equals(map.GetValue(kTestPolicyName1))); | 61 EXPECT_TRUE(expected_b.Equals(map.GetValue(kTestPolicyName1))); |
60 SetPolicy(&map, kTestPolicyName1, | 62 SetPolicy(&map, kTestPolicyName1, |
61 CreateExternalDataFetcher("dummy").release()); | 63 CreateExternalDataFetcher("dummy").release()); |
62 EXPECT_FALSE(map.GetValue(kTestPolicyName1)); | 64 EXPECT_FALSE(map.GetValue(kTestPolicyName1)); |
63 const PolicyMap::Entry* entry = map.Get(kTestPolicyName1); | 65 const PolicyMap::Entry* entry = map.Get(kTestPolicyName1); |
64 ASSERT_TRUE(entry != NULL); | 66 ASSERT_TRUE(entry != NULL); |
65 EXPECT_EQ(POLICY_LEVEL_MANDATORY, entry->level); | 67 EXPECT_EQ(POLICY_LEVEL_MANDATORY, entry->level); |
66 EXPECT_EQ(POLICY_SCOPE_USER, entry->scope); | 68 EXPECT_EQ(POLICY_SCOPE_USER, entry->scope); |
67 EXPECT_TRUE(ExternalDataFetcher::Equals( | 69 EXPECT_TRUE(ExternalDataFetcher::Equals( |
68 entry->external_data_fetcher, CreateExternalDataFetcher("dummy").get())); | 70 entry->external_data_fetcher, CreateExternalDataFetcher("dummy").get())); |
69 map.Set(kTestPolicyName1, POLICY_LEVEL_RECOMMENDED, | 71 map.Set(kTestPolicyName1, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_MACHINE, |
70 POLICY_SCOPE_MACHINE, NULL, NULL); | 72 POLICY_SOURCE_CLOUD, nullptr, nullptr); |
71 EXPECT_FALSE(map.GetValue(kTestPolicyName1)); | 73 EXPECT_FALSE(map.GetValue(kTestPolicyName1)); |
72 entry = map.Get(kTestPolicyName1); | 74 entry = map.Get(kTestPolicyName1); |
73 ASSERT_TRUE(entry != NULL); | 75 ASSERT_TRUE(entry != NULL); |
74 EXPECT_EQ(POLICY_LEVEL_RECOMMENDED, entry->level); | 76 EXPECT_EQ(POLICY_LEVEL_RECOMMENDED, entry->level); |
75 EXPECT_EQ(POLICY_SCOPE_MACHINE, entry->scope); | 77 EXPECT_EQ(POLICY_SCOPE_MACHINE, entry->scope); |
76 EXPECT_FALSE(entry->external_data_fetcher); | 78 EXPECT_FALSE(entry->external_data_fetcher); |
77 } | 79 } |
78 | 80 |
bartfab (slow)
2015/09/16 15:58:41
Nit: Please include one or more of the other sourc
fhorschig
2015/09/17 11:20:42
Done.
| |
79 TEST_F(PolicyMapTest, Equals) { | 81 TEST_F(PolicyMapTest, Equals) { |
80 PolicyMap a; | 82 PolicyMap a; |
81 SetPolicy(&a, kTestPolicyName1, new base::StringValue("aaa")); | 83 SetPolicy(&a, kTestPolicyName1, new base::StringValue("aaa")); |
82 PolicyMap a2; | 84 PolicyMap a2; |
83 SetPolicy(&a2, kTestPolicyName1, new base::StringValue("aaa")); | 85 SetPolicy(&a2, kTestPolicyName1, new base::StringValue("aaa")); |
84 PolicyMap b; | 86 PolicyMap b; |
85 SetPolicy(&b, kTestPolicyName1, new base::StringValue("bbb")); | 87 SetPolicy(&b, kTestPolicyName1, new base::StringValue("bbb")); |
86 PolicyMap c; | 88 PolicyMap c; |
87 SetPolicy(&c, kTestPolicyName1, new base::StringValue("aaa")); | 89 SetPolicy(&c, kTestPolicyName1, new base::StringValue("aaa")); |
88 SetPolicy(&c, kTestPolicyName2, new base::FundamentalValue(true)); | 90 SetPolicy(&c, kTestPolicyName2, new base::FundamentalValue(true)); |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
157 PolicyMap empty; | 159 PolicyMap empty; |
158 EXPECT_TRUE(a.Equals(empty)); | 160 EXPECT_TRUE(a.Equals(empty)); |
159 EXPECT_FALSE(b.Equals(empty)); | 161 EXPECT_FALSE(b.Equals(empty)); |
160 } | 162 } |
161 | 163 |
162 TEST_F(PolicyMapTest, MergeFrom) { | 164 TEST_F(PolicyMapTest, MergeFrom) { |
163 PolicyMap a; | 165 PolicyMap a; |
164 a.Set(kTestPolicyName1, | 166 a.Set(kTestPolicyName1, |
165 POLICY_LEVEL_MANDATORY, | 167 POLICY_LEVEL_MANDATORY, |
166 POLICY_SCOPE_USER, | 168 POLICY_SCOPE_USER, |
169 POLICY_SOURCE_CLOUD, | |
167 new base::StringValue("google.com"), | 170 new base::StringValue("google.com"), |
168 NULL); | 171 NULL); |
169 a.Set(kTestPolicyName2, | 172 a.Set(kTestPolicyName2, |
170 POLICY_LEVEL_MANDATORY, | 173 POLICY_LEVEL_MANDATORY, |
171 POLICY_SCOPE_MACHINE, | 174 POLICY_SCOPE_MACHINE, |
175 POLICY_SOURCE_CLOUD, | |
172 new base::FundamentalValue(true), | 176 new base::FundamentalValue(true), |
173 NULL); | 177 NULL); |
174 a.Set(kTestPolicyName3, | 178 a.Set(kTestPolicyName3, |
175 POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, | 179 POLICY_LEVEL_MANDATORY, |
180 POLICY_SCOPE_MACHINE, | |
181 POLICY_SOURCE_CLOUD, | |
176 NULL, CreateExternalDataFetcher("a").release()); | 182 NULL, CreateExternalDataFetcher("a").release()); |
177 a.Set(kTestPolicyName4, | 183 a.Set(kTestPolicyName4, |
178 POLICY_LEVEL_RECOMMENDED, | 184 POLICY_LEVEL_RECOMMENDED, |
179 POLICY_SCOPE_USER, | 185 POLICY_SCOPE_USER, |
186 POLICY_SOURCE_CLOUD, | |
180 new base::FundamentalValue(false), | 187 new base::FundamentalValue(false), |
181 NULL); | 188 NULL); |
182 a.Set(kTestPolicyName5, | 189 a.Set(kTestPolicyName5, |
183 POLICY_LEVEL_RECOMMENDED, | 190 POLICY_LEVEL_RECOMMENDED, |
184 POLICY_SCOPE_MACHINE, | 191 POLICY_SCOPE_MACHINE, |
192 POLICY_SOURCE_CLOUD, | |
185 new base::StringValue("google.com/q={x}"), | 193 new base::StringValue("google.com/q={x}"), |
186 NULL); | 194 NULL); |
187 | 195 |
188 PolicyMap b; | 196 PolicyMap b; |
189 b.Set(kTestPolicyName1, | 197 b.Set(kTestPolicyName1, |
190 POLICY_LEVEL_MANDATORY, | 198 POLICY_LEVEL_MANDATORY, |
191 POLICY_SCOPE_MACHINE, | 199 POLICY_SCOPE_MACHINE, |
200 POLICY_SOURCE_CLOUD, | |
192 new base::StringValue("chromium.org"), | 201 new base::StringValue("chromium.org"), |
193 NULL); | 202 NULL); |
194 b.Set(kTestPolicyName2, | 203 b.Set(kTestPolicyName2, |
195 POLICY_LEVEL_MANDATORY, | 204 POLICY_LEVEL_MANDATORY, |
196 POLICY_SCOPE_MACHINE, | 205 POLICY_SCOPE_MACHINE, |
206 POLICY_SOURCE_CLOUD, | |
197 new base::FundamentalValue(false), | 207 new base::FundamentalValue(false), |
198 NULL); | 208 NULL); |
199 b.Set(kTestPolicyName3, | 209 b.Set(kTestPolicyName3, |
200 POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, | 210 POLICY_LEVEL_MANDATORY, |
211 POLICY_SCOPE_MACHINE, | |
212 POLICY_SOURCE_CLOUD, | |
201 NULL, CreateExternalDataFetcher("b").release()); | 213 NULL, CreateExternalDataFetcher("b").release()); |
202 b.Set(kTestPolicyName4, | 214 b.Set(kTestPolicyName4, |
203 POLICY_LEVEL_RECOMMENDED, | 215 POLICY_LEVEL_RECOMMENDED, |
204 POLICY_SCOPE_MACHINE, | 216 POLICY_SCOPE_MACHINE, |
217 POLICY_SOURCE_CLOUD, | |
205 new base::FundamentalValue(true), | 218 new base::FundamentalValue(true), |
206 NULL); | 219 NULL); |
207 b.Set(kTestPolicyName5, | 220 b.Set(kTestPolicyName5, |
208 POLICY_LEVEL_MANDATORY, | 221 POLICY_LEVEL_MANDATORY, |
209 POLICY_SCOPE_MACHINE, | 222 POLICY_SCOPE_MACHINE, |
223 POLICY_SOURCE_CLOUD, | |
210 new base::StringValue(std::string()), | 224 new base::StringValue(std::string()), |
211 NULL); | 225 NULL); |
212 b.Set(kTestPolicyName6, | 226 b.Set(kTestPolicyName6, |
213 POLICY_LEVEL_RECOMMENDED, | 227 POLICY_LEVEL_RECOMMENDED, |
214 POLICY_SCOPE_USER, | 228 POLICY_SCOPE_USER, |
229 POLICY_SOURCE_CLOUD, | |
215 new base::FundamentalValue(true), | 230 new base::FundamentalValue(true), |
216 NULL); | 231 NULL); |
217 | 232 |
218 a.MergeFrom(b); | 233 a.MergeFrom(b); |
219 | 234 |
220 PolicyMap c; | 235 PolicyMap c; |
221 // POLICY_SCOPE_MACHINE over POLICY_SCOPE_USER. | 236 // POLICY_SCOPE_MACHINE over POLICY_SCOPE_USER. |
222 c.Set(kTestPolicyName1, | 237 c.Set(kTestPolicyName1, |
223 POLICY_LEVEL_MANDATORY, | 238 POLICY_LEVEL_MANDATORY, |
224 POLICY_SCOPE_MACHINE, | 239 POLICY_SCOPE_MACHINE, |
240 POLICY_SOURCE_CLOUD, | |
225 new base::StringValue("chromium.org"), | 241 new base::StringValue("chromium.org"), |
226 NULL); | 242 NULL); |
227 // |a| has precedence over |b|. | 243 // |a| has precedence over |b|. |
228 c.Set(kTestPolicyName2, | 244 c.Set(kTestPolicyName2, |
229 POLICY_LEVEL_MANDATORY, | 245 POLICY_LEVEL_MANDATORY, |
230 POLICY_SCOPE_MACHINE, | 246 POLICY_SCOPE_MACHINE, |
247 POLICY_SOURCE_CLOUD, | |
231 new base::FundamentalValue(true), | 248 new base::FundamentalValue(true), |
232 NULL); | 249 NULL); |
233 c.Set(kTestPolicyName3, | 250 c.Set(kTestPolicyName3, |
234 POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, | 251 POLICY_LEVEL_MANDATORY, |
252 POLICY_SCOPE_MACHINE, | |
253 POLICY_SOURCE_CLOUD, | |
235 NULL, CreateExternalDataFetcher("a").release()); | 254 NULL, CreateExternalDataFetcher("a").release()); |
236 // POLICY_SCOPE_MACHINE over POLICY_SCOPE_USER for POLICY_LEVEL_RECOMMENDED. | 255 // POLICY_SCOPE_MACHINE over POLICY_SCOPE_USER for POLICY_LEVEL_RECOMMENDED. |
237 c.Set(kTestPolicyName4, | 256 c.Set(kTestPolicyName4, |
238 POLICY_LEVEL_RECOMMENDED, | 257 POLICY_LEVEL_RECOMMENDED, |
239 POLICY_SCOPE_MACHINE, | 258 POLICY_SCOPE_MACHINE, |
259 POLICY_SOURCE_CLOUD, | |
240 new base::FundamentalValue(true), | 260 new base::FundamentalValue(true), |
241 NULL); | 261 NULL); |
242 // POLICY_LEVEL_MANDATORY over POLICY_LEVEL_RECOMMENDED. | 262 // POLICY_LEVEL_MANDATORY over POLICY_LEVEL_RECOMMENDED. |
243 c.Set(kTestPolicyName5, | 263 c.Set(kTestPolicyName5, |
244 POLICY_LEVEL_MANDATORY, | 264 POLICY_LEVEL_MANDATORY, |
245 POLICY_SCOPE_MACHINE, | 265 POLICY_SCOPE_MACHINE, |
266 POLICY_SOURCE_CLOUD, | |
246 new base::StringValue(std::string()), | 267 new base::StringValue(std::string()), |
247 NULL); | 268 NULL); |
248 // Merge new ones. | 269 // Merge new ones. |
249 c.Set(kTestPolicyName6, | 270 c.Set(kTestPolicyName6, |
250 POLICY_LEVEL_RECOMMENDED, | 271 POLICY_LEVEL_RECOMMENDED, |
251 POLICY_SCOPE_USER, | 272 POLICY_SCOPE_USER, |
273 POLICY_SOURCE_CLOUD, | |
252 new base::FundamentalValue(true), | 274 new base::FundamentalValue(true), |
253 NULL); | 275 NULL); |
254 | 276 |
255 EXPECT_TRUE(a.Equals(c)); | 277 EXPECT_TRUE(a.Equals(c)); |
256 } | 278 } |
257 | 279 |
258 TEST_F(PolicyMapTest, GetDifferingKeys) { | 280 TEST_F(PolicyMapTest, GetDifferingKeys) { |
259 PolicyMap a; | 281 PolicyMap a; |
260 a.Set(kTestPolicyName1, | 282 a.Set(kTestPolicyName1, |
261 POLICY_LEVEL_MANDATORY, | 283 POLICY_LEVEL_MANDATORY, |
262 POLICY_SCOPE_USER, | 284 POLICY_SCOPE_USER, |
285 POLICY_SOURCE_CLOUD, | |
263 new base::StringValue("google.com"), | 286 new base::StringValue("google.com"), |
264 NULL); | 287 NULL); |
265 a.Set(kTestPolicyName2, | 288 a.Set(kTestPolicyName2, |
266 POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, | 289 POLICY_LEVEL_MANDATORY, |
290 POLICY_SCOPE_MACHINE, | |
291 POLICY_SOURCE_CLOUD, | |
267 NULL, CreateExternalDataFetcher("dummy").release()); | 292 NULL, CreateExternalDataFetcher("dummy").release()); |
268 a.Set(kTestPolicyName3, | 293 a.Set(kTestPolicyName3, |
269 POLICY_LEVEL_MANDATORY, | 294 POLICY_LEVEL_MANDATORY, |
270 POLICY_SCOPE_MACHINE, | 295 POLICY_SCOPE_MACHINE, |
296 POLICY_SOURCE_CLOUD, | |
271 new base::FundamentalValue(true), | 297 new base::FundamentalValue(true), |
272 NULL); | 298 NULL); |
273 a.Set(kTestPolicyName4, | 299 a.Set(kTestPolicyName4, |
274 POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, | 300 POLICY_LEVEL_MANDATORY, |
301 POLICY_SCOPE_MACHINE, | |
302 POLICY_SOURCE_CLOUD, | |
275 NULL, CreateExternalDataFetcher("a").release()); | 303 NULL, CreateExternalDataFetcher("a").release()); |
276 a.Set(kTestPolicyName5, | 304 a.Set(kTestPolicyName5, |
277 POLICY_LEVEL_RECOMMENDED, | 305 POLICY_LEVEL_RECOMMENDED, |
278 POLICY_SCOPE_USER, | 306 POLICY_SCOPE_USER, |
307 POLICY_SOURCE_CLOUD, | |
279 new base::FundamentalValue(false), | 308 new base::FundamentalValue(false), |
280 NULL); | 309 NULL); |
281 a.Set(kTestPolicyName6, | 310 a.Set(kTestPolicyName6, |
282 POLICY_LEVEL_RECOMMENDED, | 311 POLICY_LEVEL_RECOMMENDED, |
283 POLICY_SCOPE_MACHINE, | 312 POLICY_SCOPE_MACHINE, |
313 POLICY_SOURCE_CLOUD, | |
284 new base::StringValue("google.com/q={x}"), | 314 new base::StringValue("google.com/q={x}"), |
285 NULL); | 315 NULL); |
286 a.Set(kTestPolicyName7, | 316 a.Set(kTestPolicyName7, |
287 POLICY_LEVEL_MANDATORY, | 317 POLICY_LEVEL_MANDATORY, |
288 POLICY_SCOPE_USER, | 318 POLICY_SCOPE_USER, |
319 POLICY_SOURCE_CLOUD, | |
289 new base::FundamentalValue(true), | 320 new base::FundamentalValue(true), |
290 NULL); | 321 NULL); |
291 | 322 |
292 PolicyMap b; | 323 PolicyMap b; |
293 b.Set(kTestPolicyName1, | 324 b.Set(kTestPolicyName1, |
294 POLICY_LEVEL_MANDATORY, | 325 POLICY_LEVEL_MANDATORY, |
295 POLICY_SCOPE_USER, | 326 POLICY_SCOPE_USER, |
327 POLICY_SOURCE_CLOUD, | |
296 new base::StringValue("google.com"), | 328 new base::StringValue("google.com"), |
297 NULL); | 329 NULL); |
298 b.Set(kTestPolicyName2, | 330 b.Set(kTestPolicyName2, |
299 POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, | 331 POLICY_LEVEL_MANDATORY, |
332 POLICY_SCOPE_MACHINE, | |
333 POLICY_SOURCE_CLOUD, | |
300 NULL, CreateExternalDataFetcher("dummy").release()); | 334 NULL, CreateExternalDataFetcher("dummy").release()); |
301 b.Set(kTestPolicyName3, | 335 b.Set(kTestPolicyName3, |
302 POLICY_LEVEL_MANDATORY, | 336 POLICY_LEVEL_MANDATORY, |
303 POLICY_SCOPE_MACHINE, | 337 POLICY_SCOPE_MACHINE, |
338 POLICY_SOURCE_CLOUD, | |
304 new base::FundamentalValue(false), | 339 new base::FundamentalValue(false), |
305 NULL); | 340 NULL); |
306 b.Set(kTestPolicyName4, | 341 b.Set(kTestPolicyName4, |
307 POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, | 342 POLICY_LEVEL_MANDATORY, |
343 POLICY_SCOPE_MACHINE, | |
344 POLICY_SOURCE_CLOUD, | |
308 NULL, CreateExternalDataFetcher("b").release()); | 345 NULL, CreateExternalDataFetcher("b").release()); |
309 b.Set(kTestPolicyName5, | 346 b.Set(kTestPolicyName5, |
310 POLICY_LEVEL_MANDATORY, | 347 POLICY_LEVEL_MANDATORY, |
311 POLICY_SCOPE_USER, | 348 POLICY_SCOPE_USER, |
349 POLICY_SOURCE_CLOUD, | |
312 new base::FundamentalValue(false), | 350 new base::FundamentalValue(false), |
313 NULL); | 351 NULL); |
314 b.Set(kTestPolicyName6, | 352 b.Set(kTestPolicyName6, |
315 POLICY_LEVEL_RECOMMENDED, | 353 POLICY_LEVEL_RECOMMENDED, |
316 POLICY_SCOPE_USER, | 354 POLICY_SCOPE_USER, |
355 POLICY_SOURCE_CLOUD, | |
317 new base::StringValue("google.com/q={x}"), | 356 new base::StringValue("google.com/q={x}"), |
318 NULL); | 357 NULL); |
319 b.Set(kTestPolicyName8, | 358 b.Set(kTestPolicyName8, |
320 POLICY_LEVEL_RECOMMENDED, | 359 POLICY_LEVEL_RECOMMENDED, |
321 POLICY_SCOPE_USER, | 360 POLICY_SCOPE_USER, |
361 POLICY_SOURCE_CLOUD, | |
322 new base::FundamentalValue(true), | 362 new base::FundamentalValue(true), |
323 NULL); | 363 NULL); |
324 | 364 |
325 std::set<std::string> diff; | 365 std::set<std::string> diff; |
326 std::set<std::string> diff2; | 366 std::set<std::string> diff2; |
327 a.GetDifferingKeys(b, &diff); | 367 a.GetDifferingKeys(b, &diff); |
328 b.GetDifferingKeys(a, &diff2); | 368 b.GetDifferingKeys(a, &diff2); |
329 // Order shouldn't matter. | 369 // Order shouldn't matter. |
330 EXPECT_EQ(diff, diff2); | 370 EXPECT_EQ(diff, diff2); |
331 // No change. | 371 // No change. |
332 EXPECT_TRUE(diff.find(kTestPolicyName1) == diff.end()); | 372 EXPECT_TRUE(diff.find(kTestPolicyName1) == diff.end()); |
333 EXPECT_TRUE(diff.find(kTestPolicyName2) == diff.end()); | 373 EXPECT_TRUE(diff.find(kTestPolicyName2) == diff.end()); |
334 // Different values. | 374 // Different values. |
335 EXPECT_TRUE(diff.find(kTestPolicyName3) != diff.end()); | 375 EXPECT_TRUE(diff.find(kTestPolicyName3) != diff.end()); |
336 // Different external data references. | 376 // Different external data references. |
337 EXPECT_TRUE(diff.find(kTestPolicyName4) != diff.end()); | 377 EXPECT_TRUE(diff.find(kTestPolicyName4) != diff.end()); |
338 // Different levels. | 378 // Different levels. |
339 EXPECT_TRUE(diff.find(kTestPolicyName5) != diff.end()); | 379 EXPECT_TRUE(diff.find(kTestPolicyName5) != diff.end()); |
340 // Different scopes. | 380 // Different scopes. |
341 EXPECT_TRUE(diff.find(kTestPolicyName6) != diff.end()); | 381 EXPECT_TRUE(diff.find(kTestPolicyName6) != diff.end()); |
342 // Not in |a|. | 382 // Not in |a|. |
343 EXPECT_TRUE(diff.find(kTestPolicyName8) != diff.end()); | 383 EXPECT_TRUE(diff.find(kTestPolicyName8) != diff.end()); |
344 // Not in |b|. | 384 // Not in |b|. |
345 EXPECT_TRUE(diff.find(kTestPolicyName7) != diff.end()); | 385 EXPECT_TRUE(diff.find(kTestPolicyName7) != diff.end()); |
346 // No surprises. | 386 // No surprises. |
347 EXPECT_EQ(6u, diff.size()); | 387 EXPECT_EQ(6u, diff.size()); |
348 } | 388 } |
349 | 389 |
350 } // namespace policy | 390 } // namespace policy |
OLD | NEW |