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 <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/callback.h" | 10 #include "base/callback.h" |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
89 TEST_F(PolicyMapTest, Equals) { | 89 TEST_F(PolicyMapTest, Equals) { |
90 PolicyMap a; | 90 PolicyMap a; |
91 SetPolicy(&a, kTestPolicyName1, base::MakeUnique<base::StringValue>("aaa")); | 91 SetPolicy(&a, kTestPolicyName1, base::MakeUnique<base::StringValue>("aaa")); |
92 PolicyMap a2; | 92 PolicyMap a2; |
93 SetPolicy(&a2, kTestPolicyName1, base::MakeUnique<base::StringValue>("aaa")); | 93 SetPolicy(&a2, kTestPolicyName1, base::MakeUnique<base::StringValue>("aaa")); |
94 PolicyMap b; | 94 PolicyMap b; |
95 SetPolicy(&b, kTestPolicyName1, base::MakeUnique<base::StringValue>("bbb")); | 95 SetPolicy(&b, kTestPolicyName1, base::MakeUnique<base::StringValue>("bbb")); |
96 PolicyMap c; | 96 PolicyMap c; |
97 SetPolicy(&c, kTestPolicyName1, base::MakeUnique<base::StringValue>("aaa")); | 97 SetPolicy(&c, kTestPolicyName1, base::MakeUnique<base::StringValue>("aaa")); |
98 SetPolicy(&c, kTestPolicyName2, | 98 SetPolicy(&c, kTestPolicyName2, |
99 base::MakeUnique<base::FundamentalValue>(true)); | 99 base::MakeUnique<base::Value>(true)); |
100 PolicyMap d; | 100 PolicyMap d; |
101 SetPolicy(&d, kTestPolicyName1, CreateExternalDataFetcher("ddd")); | 101 SetPolicy(&d, kTestPolicyName1, CreateExternalDataFetcher("ddd")); |
102 PolicyMap d2; | 102 PolicyMap d2; |
103 SetPolicy(&d2, kTestPolicyName1, CreateExternalDataFetcher("ddd")); | 103 SetPolicy(&d2, kTestPolicyName1, CreateExternalDataFetcher("ddd")); |
104 PolicyMap e; | 104 PolicyMap e; |
105 SetPolicy(&e, kTestPolicyName1, CreateExternalDataFetcher("eee")); | 105 SetPolicy(&e, kTestPolicyName1, CreateExternalDataFetcher("eee")); |
106 EXPECT_FALSE(a.Equals(b)); | 106 EXPECT_FALSE(a.Equals(b)); |
107 EXPECT_FALSE(a.Equals(c)); | 107 EXPECT_FALSE(a.Equals(c)); |
108 EXPECT_FALSE(a.Equals(d)); | 108 EXPECT_FALSE(a.Equals(d)); |
109 EXPECT_FALSE(a.Equals(e)); | 109 EXPECT_FALSE(a.Equals(e)); |
(...skipping 25 matching lines...) Expand all Loading... |
135 EXPECT_FALSE(a.Equals(empty1)); | 135 EXPECT_FALSE(a.Equals(empty1)); |
136 } | 136 } |
137 | 137 |
138 TEST_F(PolicyMapTest, Swap) { | 138 TEST_F(PolicyMapTest, Swap) { |
139 PolicyMap a; | 139 PolicyMap a; |
140 SetPolicy(&a, kTestPolicyName1, base::MakeUnique<base::StringValue>("aaa")); | 140 SetPolicy(&a, kTestPolicyName1, base::MakeUnique<base::StringValue>("aaa")); |
141 SetPolicy(&a, kTestPolicyName2, CreateExternalDataFetcher("dummy")); | 141 SetPolicy(&a, kTestPolicyName2, CreateExternalDataFetcher("dummy")); |
142 PolicyMap b; | 142 PolicyMap b; |
143 SetPolicy(&b, kTestPolicyName1, base::MakeUnique<base::StringValue>("bbb")); | 143 SetPolicy(&b, kTestPolicyName1, base::MakeUnique<base::StringValue>("bbb")); |
144 SetPolicy(&b, kTestPolicyName3, | 144 SetPolicy(&b, kTestPolicyName3, |
145 base::MakeUnique<base::FundamentalValue>(true)); | 145 base::MakeUnique<base::Value>(true)); |
146 | 146 |
147 a.Swap(&b); | 147 a.Swap(&b); |
148 base::StringValue expected("bbb"); | 148 base::StringValue expected("bbb"); |
149 EXPECT_TRUE(expected.Equals(a.GetValue(kTestPolicyName1))); | 149 EXPECT_TRUE(expected.Equals(a.GetValue(kTestPolicyName1))); |
150 base::FundamentalValue expected_bool(true); | 150 base::Value expected_bool(true); |
151 EXPECT_TRUE(expected_bool.Equals(a.GetValue(kTestPolicyName3))); | 151 EXPECT_TRUE(expected_bool.Equals(a.GetValue(kTestPolicyName3))); |
152 EXPECT_FALSE(a.GetValue(kTestPolicyName2)); | 152 EXPECT_FALSE(a.GetValue(kTestPolicyName2)); |
153 EXPECT_FALSE(a.Get(kTestPolicyName2)); | 153 EXPECT_FALSE(a.Get(kTestPolicyName2)); |
154 base::StringValue expected_a("aaa"); | 154 base::StringValue expected_a("aaa"); |
155 EXPECT_TRUE(expected_a.Equals(b.GetValue(kTestPolicyName1))); | 155 EXPECT_TRUE(expected_a.Equals(b.GetValue(kTestPolicyName1))); |
156 EXPECT_FALSE(b.GetValue(kTestPolicyName3)); | 156 EXPECT_FALSE(b.GetValue(kTestPolicyName3)); |
157 EXPECT_FALSE(a.GetValue(kTestPolicyName2)); | 157 EXPECT_FALSE(a.GetValue(kTestPolicyName2)); |
158 const PolicyMap::Entry* entry = b.Get(kTestPolicyName2); | 158 const PolicyMap::Entry* entry = b.Get(kTestPolicyName2); |
159 ASSERT_TRUE(entry); | 159 ASSERT_TRUE(entry); |
160 EXPECT_TRUE( | 160 EXPECT_TRUE( |
161 ExternalDataFetcher::Equals(CreateExternalDataFetcher("dummy").get(), | 161 ExternalDataFetcher::Equals(CreateExternalDataFetcher("dummy").get(), |
162 entry->external_data_fetcher.get())); | 162 entry->external_data_fetcher.get())); |
163 | 163 |
164 b.Clear(); | 164 b.Clear(); |
165 a.Swap(&b); | 165 a.Swap(&b); |
166 PolicyMap empty; | 166 PolicyMap empty; |
167 EXPECT_TRUE(a.Equals(empty)); | 167 EXPECT_TRUE(a.Equals(empty)); |
168 EXPECT_FALSE(b.Equals(empty)); | 168 EXPECT_FALSE(b.Equals(empty)); |
169 } | 169 } |
170 | 170 |
171 TEST_F(PolicyMapTest, MergeFrom) { | 171 TEST_F(PolicyMapTest, MergeFrom) { |
172 PolicyMap a; | 172 PolicyMap a; |
173 a.Set(kTestPolicyName1, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 173 a.Set(kTestPolicyName1, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
174 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>("google.com"), | 174 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>("google.com"), |
175 nullptr); | 175 nullptr); |
176 a.Set(kTestPolicyName2, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, | 176 a.Set(kTestPolicyName2, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
177 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>(true), | 177 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(true), |
178 nullptr); | 178 nullptr); |
179 a.Set(kTestPolicyName3, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, | 179 a.Set(kTestPolicyName3, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
180 POLICY_SOURCE_ENTERPRISE_DEFAULT, nullptr, | 180 POLICY_SOURCE_ENTERPRISE_DEFAULT, nullptr, |
181 CreateExternalDataFetcher("a")); | 181 CreateExternalDataFetcher("a")); |
182 a.Set(kTestPolicyName4, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER, | 182 a.Set(kTestPolicyName4, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER, |
183 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>(false), | 183 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(false), |
184 nullptr); | 184 nullptr); |
185 a.Set(kTestPolicyName5, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_MACHINE, | 185 a.Set(kTestPolicyName5, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_MACHINE, |
186 POLICY_SOURCE_CLOUD, | 186 POLICY_SOURCE_CLOUD, |
187 base::MakeUnique<base::StringValue>("google.com/q={x}"), nullptr); | 187 base::MakeUnique<base::StringValue>("google.com/q={x}"), nullptr); |
188 | 188 |
189 PolicyMap b; | 189 PolicyMap b; |
190 b.Set(kTestPolicyName1, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, | 190 b.Set(kTestPolicyName1, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
191 POLICY_SOURCE_CLOUD, | 191 POLICY_SOURCE_CLOUD, |
192 base::MakeUnique<base::StringValue>("chromium.org"), nullptr); | 192 base::MakeUnique<base::StringValue>("chromium.org"), nullptr); |
193 b.Set(kTestPolicyName2, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, | 193 b.Set(kTestPolicyName2, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
194 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>(false), | 194 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(false), |
195 nullptr); | 195 nullptr); |
196 b.Set(kTestPolicyName3, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, | 196 b.Set(kTestPolicyName3, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
197 POLICY_SOURCE_CLOUD, nullptr, CreateExternalDataFetcher("b")); | 197 POLICY_SOURCE_CLOUD, nullptr, CreateExternalDataFetcher("b")); |
198 b.Set(kTestPolicyName4, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_MACHINE, | 198 b.Set(kTestPolicyName4, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_MACHINE, |
199 POLICY_SOURCE_PUBLIC_SESSION_OVERRIDE, | 199 POLICY_SOURCE_PUBLIC_SESSION_OVERRIDE, |
200 base::MakeUnique<base::FundamentalValue>(true), nullptr); | 200 base::MakeUnique<base::Value>(true), nullptr); |
201 b.Set(kTestPolicyName5, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, | 201 b.Set(kTestPolicyName5, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
202 POLICY_SOURCE_PLATFORM, | 202 POLICY_SOURCE_PLATFORM, |
203 base::MakeUnique<base::StringValue>(std::string()), nullptr); | 203 base::MakeUnique<base::StringValue>(std::string()), nullptr); |
204 b.Set(kTestPolicyName6, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER, | 204 b.Set(kTestPolicyName6, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER, |
205 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>(true), | 205 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(true), |
206 nullptr); | 206 nullptr); |
207 | 207 |
208 a.MergeFrom(b); | 208 a.MergeFrom(b); |
209 | 209 |
210 PolicyMap c; | 210 PolicyMap c; |
211 // POLICY_SCOPE_MACHINE over POLICY_SCOPE_USER. | 211 // POLICY_SCOPE_MACHINE over POLICY_SCOPE_USER. |
212 c.Set(kTestPolicyName1, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, | 212 c.Set(kTestPolicyName1, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
213 POLICY_SOURCE_CLOUD, | 213 POLICY_SOURCE_CLOUD, |
214 base::MakeUnique<base::StringValue>("chromium.org"), nullptr); | 214 base::MakeUnique<base::StringValue>("chromium.org"), nullptr); |
215 // |a| has precedence over |b|. | 215 // |a| has precedence over |b|. |
216 c.Set(kTestPolicyName2, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, | 216 c.Set(kTestPolicyName2, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
217 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>(true), | 217 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(true), |
218 nullptr); | 218 nullptr); |
219 c.Set(kTestPolicyName3, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, | 219 c.Set(kTestPolicyName3, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
220 POLICY_SOURCE_ENTERPRISE_DEFAULT, nullptr, | 220 POLICY_SOURCE_ENTERPRISE_DEFAULT, nullptr, |
221 CreateExternalDataFetcher("a")); | 221 CreateExternalDataFetcher("a")); |
222 // POLICY_SCOPE_MACHINE over POLICY_SCOPE_USER for POLICY_LEVEL_RECOMMENDED. | 222 // POLICY_SCOPE_MACHINE over POLICY_SCOPE_USER for POLICY_LEVEL_RECOMMENDED. |
223 c.Set(kTestPolicyName4, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_MACHINE, | 223 c.Set(kTestPolicyName4, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_MACHINE, |
224 POLICY_SOURCE_PUBLIC_SESSION_OVERRIDE, | 224 POLICY_SOURCE_PUBLIC_SESSION_OVERRIDE, |
225 base::MakeUnique<base::FundamentalValue>(true), nullptr); | 225 base::MakeUnique<base::Value>(true), nullptr); |
226 // POLICY_LEVEL_MANDATORY over POLICY_LEVEL_RECOMMENDED. | 226 // POLICY_LEVEL_MANDATORY over POLICY_LEVEL_RECOMMENDED. |
227 c.Set(kTestPolicyName5, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, | 227 c.Set(kTestPolicyName5, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
228 POLICY_SOURCE_PLATFORM, | 228 POLICY_SOURCE_PLATFORM, |
229 base::MakeUnique<base::StringValue>(std::string()), nullptr); | 229 base::MakeUnique<base::StringValue>(std::string()), nullptr); |
230 // Merge new ones. | 230 // Merge new ones. |
231 c.Set(kTestPolicyName6, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER, | 231 c.Set(kTestPolicyName6, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER, |
232 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>(true), | 232 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(true), |
233 nullptr); | 233 nullptr); |
234 | 234 |
235 EXPECT_TRUE(a.Equals(c)); | 235 EXPECT_TRUE(a.Equals(c)); |
236 } | 236 } |
237 | 237 |
238 TEST_F(PolicyMapTest, GetDifferingKeys) { | 238 TEST_F(PolicyMapTest, GetDifferingKeys) { |
239 PolicyMap a; | 239 PolicyMap a; |
240 a.Set(kTestPolicyName1, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 240 a.Set(kTestPolicyName1, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
241 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>("google.com"), | 241 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>("google.com"), |
242 nullptr); | 242 nullptr); |
243 a.Set(kTestPolicyName2, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, | 243 a.Set(kTestPolicyName2, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
244 POLICY_SOURCE_CLOUD, nullptr, CreateExternalDataFetcher("dummy")); | 244 POLICY_SOURCE_CLOUD, nullptr, CreateExternalDataFetcher("dummy")); |
245 a.Set(kTestPolicyName3, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, | 245 a.Set(kTestPolicyName3, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
246 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>(true), | 246 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(true), |
247 nullptr); | 247 nullptr); |
248 a.Set(kTestPolicyName4, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, | 248 a.Set(kTestPolicyName4, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
249 POLICY_SOURCE_CLOUD, nullptr, CreateExternalDataFetcher("a")); | 249 POLICY_SOURCE_CLOUD, nullptr, CreateExternalDataFetcher("a")); |
250 a.Set(kTestPolicyName5, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER, | 250 a.Set(kTestPolicyName5, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER, |
251 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>(false), | 251 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(false), |
252 nullptr); | 252 nullptr); |
253 a.Set(kTestPolicyName6, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_MACHINE, | 253 a.Set(kTestPolicyName6, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_MACHINE, |
254 POLICY_SOURCE_CLOUD, | 254 POLICY_SOURCE_CLOUD, |
255 base::MakeUnique<base::StringValue>("google.com/q={x}"), nullptr); | 255 base::MakeUnique<base::StringValue>("google.com/q={x}"), nullptr); |
256 a.Set(kTestPolicyName7, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 256 a.Set(kTestPolicyName7, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
257 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>(true), | 257 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(true), |
258 nullptr); | 258 nullptr); |
259 | 259 |
260 PolicyMap b; | 260 PolicyMap b; |
261 b.Set(kTestPolicyName1, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 261 b.Set(kTestPolicyName1, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
262 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>("google.com"), | 262 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>("google.com"), |
263 nullptr); | 263 nullptr); |
264 b.Set(kTestPolicyName2, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, | 264 b.Set(kTestPolicyName2, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
265 POLICY_SOURCE_CLOUD, nullptr, CreateExternalDataFetcher("dummy")); | 265 POLICY_SOURCE_CLOUD, nullptr, CreateExternalDataFetcher("dummy")); |
266 b.Set(kTestPolicyName3, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, | 266 b.Set(kTestPolicyName3, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
267 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>(false), | 267 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(false), |
268 nullptr); | 268 nullptr); |
269 b.Set(kTestPolicyName4, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, | 269 b.Set(kTestPolicyName4, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
270 POLICY_SOURCE_CLOUD, nullptr, CreateExternalDataFetcher("b")); | 270 POLICY_SOURCE_CLOUD, nullptr, CreateExternalDataFetcher("b")); |
271 b.Set(kTestPolicyName5, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 271 b.Set(kTestPolicyName5, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
272 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>(false), | 272 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(false), |
273 nullptr); | 273 nullptr); |
274 b.Set(kTestPolicyName6, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER, | 274 b.Set(kTestPolicyName6, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER, |
275 POLICY_SOURCE_CLOUD, | 275 POLICY_SOURCE_CLOUD, |
276 base::MakeUnique<base::StringValue>("google.com/q={x}"), nullptr); | 276 base::MakeUnique<base::StringValue>("google.com/q={x}"), nullptr); |
277 b.Set(kTestPolicyName8, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER, | 277 b.Set(kTestPolicyName8, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER, |
278 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>(true), | 278 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(true), |
279 nullptr); | 279 nullptr); |
280 | 280 |
281 std::set<std::string> diff; | 281 std::set<std::string> diff; |
282 std::set<std::string> diff2; | 282 std::set<std::string> diff2; |
283 a.GetDifferingKeys(b, &diff); | 283 a.GetDifferingKeys(b, &diff); |
284 b.GetDifferingKeys(a, &diff2); | 284 b.GetDifferingKeys(a, &diff2); |
285 // Order shouldn't matter. | 285 // Order shouldn't matter. |
286 EXPECT_EQ(diff, diff2); | 286 EXPECT_EQ(diff, diff2); |
287 // No change. | 287 // No change. |
288 EXPECT_TRUE(diff.find(kTestPolicyName1) == diff.end()); | 288 EXPECT_TRUE(diff.find(kTestPolicyName1) == diff.end()); |
(...skipping 25 matching lines...) Expand all Loading... |
314 POLICY_LEVEL_MANDATORY, | 314 POLICY_LEVEL_MANDATORY, |
315 POLICY_SCOPE_USER, | 315 POLICY_SCOPE_USER, |
316 POLICY_SOURCE_PLATFORM); | 316 POLICY_SOURCE_PLATFORM); |
317 | 317 |
318 PolicyMap expected; | 318 PolicyMap expected; |
319 expected.Set("TestPolicy1", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 319 expected.Set("TestPolicy1", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
320 POLICY_SOURCE_PLATFORM, | 320 POLICY_SOURCE_PLATFORM, |
321 base::MakeUnique<base::StringValue>("google.com"), nullptr); | 321 base::MakeUnique<base::StringValue>("google.com"), nullptr); |
322 expected.Set("TestPolicy2", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 322 expected.Set("TestPolicy2", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
323 POLICY_SOURCE_PLATFORM, | 323 POLICY_SOURCE_PLATFORM, |
324 base::MakeUnique<base::FundamentalValue>(true), nullptr); | 324 base::MakeUnique<base::Value>(true), nullptr); |
325 expected.Set("TestPolicy3", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 325 expected.Set("TestPolicy3", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
326 POLICY_SOURCE_PLATFORM, | 326 POLICY_SOURCE_PLATFORM, |
327 base::MakeUnique<base::FundamentalValue>(-12321), nullptr); | 327 base::MakeUnique<base::Value>(-12321), nullptr); |
328 EXPECT_TRUE(loaded.Equals(expected)); | 328 EXPECT_TRUE(loaded.Equals(expected)); |
329 } | 329 } |
330 | 330 |
331 bool IsMandatory(const PolicyMap::PolicyMapType::const_iterator iter) { | 331 bool IsMandatory(const PolicyMap::PolicyMapType::const_iterator iter) { |
332 return iter->second.level == POLICY_LEVEL_MANDATORY; | 332 return iter->second.level == POLICY_LEVEL_MANDATORY; |
333 } | 333 } |
334 | 334 |
335 TEST_F(PolicyMapTest, EraseNonmatching) { | 335 TEST_F(PolicyMapTest, EraseNonmatching) { |
336 PolicyMap a; | 336 PolicyMap a; |
337 a.Set(kTestPolicyName1, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 337 a.Set(kTestPolicyName1, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
338 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>("google.com"), | 338 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>("google.com"), |
339 nullptr); | 339 nullptr); |
340 a.Set(kTestPolicyName2, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_MACHINE, | 340 a.Set(kTestPolicyName2, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_MACHINE, |
341 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>(true), | 341 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(true), |
342 nullptr); | 342 nullptr); |
343 | 343 |
344 a.EraseNonmatching(base::Bind(&IsMandatory)); | 344 a.EraseNonmatching(base::Bind(&IsMandatory)); |
345 | 345 |
346 PolicyMap b; | 346 PolicyMap b; |
347 b.Set(kTestPolicyName1, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 347 b.Set(kTestPolicyName1, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
348 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>("google.com"), | 348 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>("google.com"), |
349 nullptr); | 349 nullptr); |
350 EXPECT_TRUE(a.Equals(b)); | 350 EXPECT_TRUE(a.Equals(b)); |
351 } | 351 } |
352 | 352 |
353 } // namespace policy | 353 } // namespace policy |
OLD | NEW |