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

Side by Side Diff: components/policy/core/common/policy_service_impl_unittest.cc

Issue 2476493003: Remove FundamentalValue
Patch Set: Fix Created 4 years 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) 2012 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 "components/policy/core/common/policy_service_impl.h" 5 #include "components/policy/core/common/policy_service_impl.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 explicit ChangePolicyObserver(MockConfigurationPolicyProvider* provider) 75 explicit ChangePolicyObserver(MockConfigurationPolicyProvider* provider)
76 : provider_(provider), 76 : provider_(provider),
77 observer_invoked_(false) {} 77 observer_invoked_(false) {}
78 78
79 void OnPolicyUpdated(const PolicyNamespace&, 79 void OnPolicyUpdated(const PolicyNamespace&,
80 const PolicyMap& previous, 80 const PolicyMap& previous,
81 const PolicyMap& current) override { 81 const PolicyMap& current) override {
82 PolicyMap new_policy; 82 PolicyMap new_policy;
83 new_policy.Set("foo", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 83 new_policy.Set("foo", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
84 POLICY_SOURCE_CLOUD, 84 POLICY_SOURCE_CLOUD,
85 base::MakeUnique<base::FundamentalValue>(14), nullptr); 85 base::MakeUnique<base::Value>(14), nullptr);
86 provider_->UpdateChromePolicy(new_policy); 86 provider_->UpdateChromePolicy(new_policy);
87 observer_invoked_ = true; 87 observer_invoked_ = true;
88 } 88 }
89 89
90 bool observer_invoked() const { return observer_invoked_; } 90 bool observer_invoked() const { return observer_invoked_; }
91 91
92 private: 92 private:
93 MockConfigurationPolicyProvider* provider_; 93 MockConfigurationPolicyProvider* provider_;
94 bool observer_invoked_; 94 bool observer_invoked_;
95 }; 95 };
(...skipping 10 matching lines...) Expand all
106 .WillRepeatedly(Return(true)); 106 .WillRepeatedly(Return(true));
107 EXPECT_CALL(provider2_, IsInitializationComplete(_)) 107 EXPECT_CALL(provider2_, IsInitializationComplete(_))
108 .WillRepeatedly(Return(true)); 108 .WillRepeatedly(Return(true));
109 109
110 provider0_.Init(); 110 provider0_.Init();
111 provider1_.Init(); 111 provider1_.Init();
112 provider2_.Init(); 112 provider2_.Init();
113 113
114 policy0_.Set("pre", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 114 policy0_.Set("pre", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
115 POLICY_SOURCE_ENTERPRISE_DEFAULT, 115 POLICY_SOURCE_ENTERPRISE_DEFAULT,
116 base::MakeUnique<base::FundamentalValue>(13), nullptr); 116 base::MakeUnique<base::Value>(13), nullptr);
117 provider0_.UpdateChromePolicy(policy0_); 117 provider0_.UpdateChromePolicy(policy0_);
118 118
119 PolicyServiceImpl::Providers providers; 119 PolicyServiceImpl::Providers providers;
120 providers.push_back(&provider0_); 120 providers.push_back(&provider0_);
121 providers.push_back(&provider1_); 121 providers.push_back(&provider1_);
122 providers.push_back(&provider2_); 122 providers.push_back(&provider2_);
123 policy_service_.reset(new PolicyServiceImpl(providers)); 123 policy_service_.reset(new PolicyServiceImpl(providers));
124 } 124 }
125 125
126 void TearDown() override { 126 void TearDown() override {
(...skipping 29 matching lines...) Expand all
156 std::unique_ptr<PolicyServiceImpl> policy_service_; 156 std::unique_ptr<PolicyServiceImpl> policy_service_;
157 157
158 private: 158 private:
159 DISALLOW_COPY_AND_ASSIGN(PolicyServiceTest); 159 DISALLOW_COPY_AND_ASSIGN(PolicyServiceTest);
160 }; 160 };
161 161
162 TEST_F(PolicyServiceTest, LoadsPoliciesBeforeProvidersRefresh) { 162 TEST_F(PolicyServiceTest, LoadsPoliciesBeforeProvidersRefresh) {
163 PolicyMap expected; 163 PolicyMap expected;
164 expected.Set("pre", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 164 expected.Set("pre", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
165 POLICY_SOURCE_ENTERPRISE_DEFAULT, 165 POLICY_SOURCE_ENTERPRISE_DEFAULT,
166 base::MakeUnique<base::FundamentalValue>(13), nullptr); 166 base::MakeUnique<base::Value>(13), nullptr);
167 EXPECT_TRUE(VerifyPolicies( 167 EXPECT_TRUE(VerifyPolicies(
168 PolicyNamespace(POLICY_DOMAIN_CHROME, std::string()), expected)); 168 PolicyNamespace(POLICY_DOMAIN_CHROME, std::string()), expected));
169 } 169 }
170 170
171 TEST_F(PolicyServiceTest, NotifyObservers) { 171 TEST_F(PolicyServiceTest, NotifyObservers) {
172 MockPolicyServiceObserver observer; 172 MockPolicyServiceObserver observer;
173 policy_service_->AddObserver(POLICY_DOMAIN_CHROME, &observer); 173 policy_service_->AddObserver(POLICY_DOMAIN_CHROME, &observer);
174 174
175 PolicyMap expectedPrevious; 175 PolicyMap expectedPrevious;
176 expectedPrevious.Set("pre", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 176 expectedPrevious.Set("pre", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
177 POLICY_SOURCE_ENTERPRISE_DEFAULT, 177 POLICY_SOURCE_ENTERPRISE_DEFAULT,
178 base::MakeUnique<base::FundamentalValue>(13), nullptr); 178 base::MakeUnique<base::Value>(13), nullptr);
179 179
180 PolicyMap expectedCurrent; 180 PolicyMap expectedCurrent;
181 expectedCurrent.CopyFrom(expectedPrevious); 181 expectedCurrent.CopyFrom(expectedPrevious);
182 expectedCurrent.Set("aaa", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 182 expectedCurrent.Set("aaa", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
183 POLICY_SOURCE_CLOUD, 183 POLICY_SOURCE_CLOUD,
184 base::MakeUnique<base::FundamentalValue>(123), nullptr); 184 base::MakeUnique<base::Value>(123), nullptr);
185 policy0_.Set("aaa", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 185 policy0_.Set("aaa", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
186 POLICY_SOURCE_CLOUD, 186 POLICY_SOURCE_CLOUD,
187 base::MakeUnique<base::FundamentalValue>(123), nullptr); 187 base::MakeUnique<base::Value>(123), nullptr);
188 EXPECT_CALL(observer, OnPolicyUpdated(PolicyNamespace(POLICY_DOMAIN_CHROME, 188 EXPECT_CALL(observer, OnPolicyUpdated(PolicyNamespace(POLICY_DOMAIN_CHROME,
189 std::string()), 189 std::string()),
190 PolicyEquals(&expectedPrevious), 190 PolicyEquals(&expectedPrevious),
191 PolicyEquals(&expectedCurrent))); 191 PolicyEquals(&expectedCurrent)));
192 provider0_.UpdateChromePolicy(policy0_); 192 provider0_.UpdateChromePolicy(policy0_);
193 Mock::VerifyAndClearExpectations(&observer); 193 Mock::VerifyAndClearExpectations(&observer);
194 194
195 // No changes. 195 // No changes.
196 EXPECT_CALL(observer, OnPolicyUpdated(_, _, _)).Times(0); 196 EXPECT_CALL(observer, OnPolicyUpdated(_, _, _)).Times(0);
197 provider0_.UpdateChromePolicy(policy0_); 197 provider0_.UpdateChromePolicy(policy0_);
198 Mock::VerifyAndClearExpectations(&observer); 198 Mock::VerifyAndClearExpectations(&observer);
199 EXPECT_TRUE(VerifyPolicies( 199 EXPECT_TRUE(VerifyPolicies(
200 PolicyNamespace(POLICY_DOMAIN_CHROME, std::string()), expectedCurrent)); 200 PolicyNamespace(POLICY_DOMAIN_CHROME, std::string()), expectedCurrent));
201 201
202 // New policy. 202 // New policy.
203 expectedPrevious.CopyFrom(expectedCurrent); 203 expectedPrevious.CopyFrom(expectedCurrent);
204 expectedCurrent.Set("bbb", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 204 expectedCurrent.Set("bbb", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
205 POLICY_SOURCE_CLOUD, 205 POLICY_SOURCE_CLOUD,
206 base::MakeUnique<base::FundamentalValue>(456), nullptr); 206 base::MakeUnique<base::Value>(456), nullptr);
207 policy0_.Set("bbb", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 207 policy0_.Set("bbb", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
208 POLICY_SOURCE_CLOUD, 208 POLICY_SOURCE_CLOUD,
209 base::MakeUnique<base::FundamentalValue>(456), nullptr); 209 base::MakeUnique<base::Value>(456), nullptr);
210 EXPECT_CALL(observer, OnPolicyUpdated(PolicyNamespace(POLICY_DOMAIN_CHROME, 210 EXPECT_CALL(observer, OnPolicyUpdated(PolicyNamespace(POLICY_DOMAIN_CHROME,
211 std::string()), 211 std::string()),
212 PolicyEquals(&expectedPrevious), 212 PolicyEquals(&expectedPrevious),
213 PolicyEquals(&expectedCurrent))); 213 PolicyEquals(&expectedCurrent)));
214 provider0_.UpdateChromePolicy(policy0_); 214 provider0_.UpdateChromePolicy(policy0_);
215 Mock::VerifyAndClearExpectations(&observer); 215 Mock::VerifyAndClearExpectations(&observer);
216 216
217 // Removed policy. 217 // Removed policy.
218 expectedPrevious.CopyFrom(expectedCurrent); 218 expectedPrevious.CopyFrom(expectedCurrent);
219 expectedCurrent.Erase("bbb"); 219 expectedCurrent.Erase("bbb");
220 policy0_.Erase("bbb"); 220 policy0_.Erase("bbb");
221 EXPECT_CALL(observer, OnPolicyUpdated(PolicyNamespace(POLICY_DOMAIN_CHROME, 221 EXPECT_CALL(observer, OnPolicyUpdated(PolicyNamespace(POLICY_DOMAIN_CHROME,
222 std::string()), 222 std::string()),
223 PolicyEquals(&expectedPrevious), 223 PolicyEquals(&expectedPrevious),
224 PolicyEquals(&expectedCurrent))); 224 PolicyEquals(&expectedCurrent)));
225 provider0_.UpdateChromePolicy(policy0_); 225 provider0_.UpdateChromePolicy(policy0_);
226 Mock::VerifyAndClearExpectations(&observer); 226 Mock::VerifyAndClearExpectations(&observer);
227 227
228 // Changed policy. 228 // Changed policy.
229 expectedPrevious.CopyFrom(expectedCurrent); 229 expectedPrevious.CopyFrom(expectedCurrent);
230 expectedCurrent.Set("aaa", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 230 expectedCurrent.Set("aaa", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
231 POLICY_SOURCE_CLOUD, 231 POLICY_SOURCE_CLOUD,
232 base::MakeUnique<base::FundamentalValue>(789), nullptr); 232 base::MakeUnique<base::Value>(789), nullptr);
233 policy0_.Set("aaa", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 233 policy0_.Set("aaa", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
234 POLICY_SOURCE_CLOUD, 234 POLICY_SOURCE_CLOUD,
235 base::MakeUnique<base::FundamentalValue>(789), nullptr); 235 base::MakeUnique<base::Value>(789), nullptr);
236 236
237 EXPECT_CALL(observer, OnPolicyUpdated(PolicyNamespace(POLICY_DOMAIN_CHROME, 237 EXPECT_CALL(observer, OnPolicyUpdated(PolicyNamespace(POLICY_DOMAIN_CHROME,
238 std::string()), 238 std::string()),
239 PolicyEquals(&expectedPrevious), 239 PolicyEquals(&expectedPrevious),
240 PolicyEquals(&expectedCurrent))); 240 PolicyEquals(&expectedCurrent)));
241 provider0_.UpdateChromePolicy(policy0_); 241 provider0_.UpdateChromePolicy(policy0_);
242 Mock::VerifyAndClearExpectations(&observer); 242 Mock::VerifyAndClearExpectations(&observer);
243 243
244 // No changes again. 244 // No changes again.
245 EXPECT_CALL(observer, OnPolicyUpdated(_, _, _)).Times(0); 245 EXPECT_CALL(observer, OnPolicyUpdated(_, _, _)).Times(0);
(...skipping 10 matching lines...) Expand all
256 const std::string kExtension1("extension-1"); 256 const std::string kExtension1("extension-1");
257 const std::string kExtension2("extension-2"); 257 const std::string kExtension2("extension-2");
258 MockPolicyServiceObserver chrome_observer; 258 MockPolicyServiceObserver chrome_observer;
259 MockPolicyServiceObserver extension_observer; 259 MockPolicyServiceObserver extension_observer;
260 policy_service_->AddObserver(POLICY_DOMAIN_CHROME, &chrome_observer); 260 policy_service_->AddObserver(POLICY_DOMAIN_CHROME, &chrome_observer);
261 policy_service_->AddObserver(POLICY_DOMAIN_EXTENSIONS, &extension_observer); 261 policy_service_->AddObserver(POLICY_DOMAIN_EXTENSIONS, &extension_observer);
262 262
263 PolicyMap previous_policy_map; 263 PolicyMap previous_policy_map;
264 previous_policy_map.Set("pre", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 264 previous_policy_map.Set("pre", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
265 POLICY_SOURCE_ENTERPRISE_DEFAULT, 265 POLICY_SOURCE_ENTERPRISE_DEFAULT,
266 base::MakeUnique<base::FundamentalValue>(13), 266 base::MakeUnique<base::Value>(13),
267 nullptr); 267 nullptr);
268 PolicyMap policy_map; 268 PolicyMap policy_map;
269 policy_map.CopyFrom(previous_policy_map); 269 policy_map.CopyFrom(previous_policy_map);
270 policy_map.Set("policy", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 270 policy_map.Set("policy", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
271 POLICY_SOURCE_CLOUD, 271 POLICY_SOURCE_CLOUD,
272 base::MakeUnique<base::StringValue>("value"), nullptr); 272 base::MakeUnique<base::StringValue>("value"), nullptr);
273 273
274 std::unique_ptr<PolicyBundle> bundle(new PolicyBundle()); 274 std::unique_ptr<PolicyBundle> bundle(new PolicyBundle());
275 // The initial setup includes a policy for chrome that is now changing. 275 // The initial setup includes a policy for chrome that is now changing.
276 bundle->Get(PolicyNamespace(POLICY_DOMAIN_CHROME, std::string())) 276 bundle->Get(PolicyNamespace(POLICY_DOMAIN_CHROME, std::string()))
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
339 policy_service_->RemoveObserver(POLICY_DOMAIN_CHROME, &chrome_observer); 339 policy_service_->RemoveObserver(POLICY_DOMAIN_CHROME, &chrome_observer);
340 policy_service_->RemoveObserver(POLICY_DOMAIN_EXTENSIONS, 340 policy_service_->RemoveObserver(POLICY_DOMAIN_EXTENSIONS,
341 &extension_observer); 341 &extension_observer);
342 } 342 }
343 343
344 TEST_F(PolicyServiceTest, ObserverChangesPolicy) { 344 TEST_F(PolicyServiceTest, ObserverChangesPolicy) {
345 ChangePolicyObserver observer(&provider0_); 345 ChangePolicyObserver observer(&provider0_);
346 policy_service_->AddObserver(POLICY_DOMAIN_CHROME, &observer); 346 policy_service_->AddObserver(POLICY_DOMAIN_CHROME, &observer);
347 policy0_.Set("aaa", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 347 policy0_.Set("aaa", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
348 POLICY_SOURCE_CLOUD, 348 POLICY_SOURCE_CLOUD,
349 base::MakeUnique<base::FundamentalValue>(123), nullptr); 349 base::MakeUnique<base::Value>(123), nullptr);
350 policy0_.Set("bbb", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 350 policy0_.Set("bbb", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
351 POLICY_SOURCE_CLOUD, 351 POLICY_SOURCE_CLOUD,
352 base::MakeUnique<base::FundamentalValue>(1234), nullptr); 352 base::MakeUnique<base::Value>(1234), nullptr);
353 // Should not crash. 353 // Should not crash.
354 provider0_.UpdateChromePolicy(policy0_); 354 provider0_.UpdateChromePolicy(policy0_);
355 policy_service_->RemoveObserver(POLICY_DOMAIN_CHROME, &observer); 355 policy_service_->RemoveObserver(POLICY_DOMAIN_CHROME, &observer);
356 EXPECT_TRUE(observer.observer_invoked()); 356 EXPECT_TRUE(observer.observer_invoked());
357 } 357 }
358 358
359 TEST_F(PolicyServiceTest, Priorities) { 359 TEST_F(PolicyServiceTest, Priorities) {
360 PolicyMap expected; 360 PolicyMap expected;
361 expected.Set("pre", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 361 expected.Set("pre", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
362 POLICY_SOURCE_ENTERPRISE_DEFAULT, 362 POLICY_SOURCE_ENTERPRISE_DEFAULT,
363 base::MakeUnique<base::FundamentalValue>(13), nullptr); 363 base::MakeUnique<base::Value>(13), nullptr);
364 expected.Set("aaa", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 364 expected.Set("aaa", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
365 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>(0), 365 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(0),
366 nullptr); 366 nullptr);
367 policy0_.Set("aaa", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 367 policy0_.Set("aaa", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
368 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>(0), 368 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(0),
369 nullptr); 369 nullptr);
370 policy1_.Set("aaa", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 370 policy1_.Set("aaa", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
371 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>(1), 371 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(1),
372 nullptr); 372 nullptr);
373 policy2_.Set("aaa", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 373 policy2_.Set("aaa", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
374 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>(2), 374 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(2),
375 nullptr); 375 nullptr);
376 provider0_.UpdateChromePolicy(policy0_); 376 provider0_.UpdateChromePolicy(policy0_);
377 provider1_.UpdateChromePolicy(policy1_); 377 provider1_.UpdateChromePolicy(policy1_);
378 provider2_.UpdateChromePolicy(policy2_); 378 provider2_.UpdateChromePolicy(policy2_);
379 EXPECT_TRUE(VerifyPolicies( 379 EXPECT_TRUE(VerifyPolicies(
380 PolicyNamespace(POLICY_DOMAIN_CHROME, std::string()), expected)); 380 PolicyNamespace(POLICY_DOMAIN_CHROME, std::string()), expected));
381 381
382 expected.Set("aaa", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 382 expected.Set("aaa", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
383 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>(1), 383 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(1),
384 nullptr); 384 nullptr);
385 policy0_.Erase("aaa"); 385 policy0_.Erase("aaa");
386 provider0_.UpdateChromePolicy(policy0_); 386 provider0_.UpdateChromePolicy(policy0_);
387 EXPECT_TRUE(VerifyPolicies( 387 EXPECT_TRUE(VerifyPolicies(
388 PolicyNamespace(POLICY_DOMAIN_CHROME, std::string()), expected)); 388 PolicyNamespace(POLICY_DOMAIN_CHROME, std::string()), expected));
389 389
390 expected.Set("aaa", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 390 expected.Set("aaa", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
391 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>(2), 391 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(2),
392 nullptr); 392 nullptr);
393 policy1_.Set("aaa", POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER, 393 policy1_.Set("aaa", POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER,
394 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>(1), 394 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(1),
395 nullptr); 395 nullptr);
396 provider1_.UpdateChromePolicy(policy1_); 396 provider1_.UpdateChromePolicy(policy1_);
397 EXPECT_TRUE(VerifyPolicies( 397 EXPECT_TRUE(VerifyPolicies(
398 PolicyNamespace(POLICY_DOMAIN_CHROME, std::string()), expected)); 398 PolicyNamespace(POLICY_DOMAIN_CHROME, std::string()), expected));
399 } 399 }
400 400
401 TEST_F(PolicyServiceTest, PolicyChangeRegistrar) { 401 TEST_F(PolicyServiceTest, PolicyChangeRegistrar) {
402 std::unique_ptr<PolicyChangeRegistrar> registrar(new PolicyChangeRegistrar( 402 std::unique_ptr<PolicyChangeRegistrar> registrar(new PolicyChangeRegistrar(
403 policy_service_.get(), 403 policy_service_.get(),
404 PolicyNamespace(POLICY_DOMAIN_CHROME, std::string()))); 404 PolicyNamespace(POLICY_DOMAIN_CHROME, std::string())));
405 405
406 // Starting to observe existing policies doesn't trigger a notification. 406 // Starting to observe existing policies doesn't trigger a notification.
407 EXPECT_CALL(*this, OnPolicyValueUpdated(_, _)).Times(0); 407 EXPECT_CALL(*this, OnPolicyValueUpdated(_, _)).Times(0);
408 registrar->Observe("pre", base::Bind( 408 registrar->Observe("pre", base::Bind(
409 &PolicyServiceTest::OnPolicyValueUpdated, 409 &PolicyServiceTest::OnPolicyValueUpdated,
410 base::Unretained(this))); 410 base::Unretained(this)));
411 registrar->Observe("aaa", base::Bind( 411 registrar->Observe("aaa", base::Bind(
412 &PolicyServiceTest::OnPolicyValueUpdated, 412 &PolicyServiceTest::OnPolicyValueUpdated,
413 base::Unretained(this))); 413 base::Unretained(this)));
414 RunUntilIdle(); 414 RunUntilIdle();
415 Mock::VerifyAndClearExpectations(this); 415 Mock::VerifyAndClearExpectations(this);
416 416
417 // Changing it now triggers a notification. 417 // Changing it now triggers a notification.
418 base::FundamentalValue kValue0(0); 418 base::Value kValue0(0);
419 EXPECT_CALL(*this, OnPolicyValueUpdated(NULL, ValueEquals(&kValue0))); 419 EXPECT_CALL(*this, OnPolicyValueUpdated(NULL, ValueEquals(&kValue0)));
420 policy0_.Set("aaa", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 420 policy0_.Set("aaa", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
421 POLICY_SOURCE_CLOUD, kValue0.CreateDeepCopy(), nullptr); 421 POLICY_SOURCE_CLOUD, kValue0.CreateDeepCopy(), nullptr);
422 provider0_.UpdateChromePolicy(policy0_); 422 provider0_.UpdateChromePolicy(policy0_);
423 Mock::VerifyAndClearExpectations(this); 423 Mock::VerifyAndClearExpectations(this);
424 424
425 // Changing other values doesn't trigger a notification. 425 // Changing other values doesn't trigger a notification.
426 EXPECT_CALL(*this, OnPolicyValueUpdated(_, _)).Times(0); 426 EXPECT_CALL(*this, OnPolicyValueUpdated(_, _)).Times(0);
427 policy0_.Set("bbb", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 427 policy0_.Set("bbb", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
428 POLICY_SOURCE_CLOUD, kValue0.CreateDeepCopy(), nullptr); 428 POLICY_SOURCE_CLOUD, kValue0.CreateDeepCopy(), nullptr);
429 provider0_.UpdateChromePolicy(policy0_); 429 provider0_.UpdateChromePolicy(policy0_);
430 Mock::VerifyAndClearExpectations(this); 430 Mock::VerifyAndClearExpectations(this);
431 431
432 // Modifying the value triggers a notification. 432 // Modifying the value triggers a notification.
433 base::FundamentalValue kValue1(1); 433 base::Value kValue1(1);
434 EXPECT_CALL(*this, OnPolicyValueUpdated(ValueEquals(&kValue0), 434 EXPECT_CALL(*this, OnPolicyValueUpdated(ValueEquals(&kValue0),
435 ValueEquals(&kValue1))); 435 ValueEquals(&kValue1)));
436 policy0_.Set("aaa", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 436 policy0_.Set("aaa", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
437 POLICY_SOURCE_CLOUD, kValue1.CreateDeepCopy(), nullptr); 437 POLICY_SOURCE_CLOUD, kValue1.CreateDeepCopy(), nullptr);
438 provider0_.UpdateChromePolicy(policy0_); 438 provider0_.UpdateChromePolicy(policy0_);
439 Mock::VerifyAndClearExpectations(this); 439 Mock::VerifyAndClearExpectations(this);
440 440
441 // Removing the value triggers a notification. 441 // Removing the value triggers a notification.
442 EXPECT_CALL(*this, OnPolicyValueUpdated(ValueEquals(&kValue1), NULL)); 442 EXPECT_CALL(*this, OnPolicyValueUpdated(ValueEquals(&kValue1), NULL));
443 policy0_.Erase("aaa"); 443 policy0_.Erase("aaa");
(...skipping 19 matching lines...) Expand all
463 463
464 EXPECT_CALL(*this, OnPolicyRefresh()).Times(0); 464 EXPECT_CALL(*this, OnPolicyRefresh()).Times(0);
465 policy_service_->RefreshPolicies(base::Bind( 465 policy_service_->RefreshPolicies(base::Bind(
466 &PolicyServiceTest::OnPolicyRefresh, 466 &PolicyServiceTest::OnPolicyRefresh,
467 base::Unretained(this))); 467 base::Unretained(this)));
468 // Let any queued observer tasks run. 468 // Let any queued observer tasks run.
469 RunUntilIdle(); 469 RunUntilIdle();
470 Mock::VerifyAndClearExpectations(this); 470 Mock::VerifyAndClearExpectations(this);
471 471
472 EXPECT_CALL(*this, OnPolicyRefresh()).Times(0); 472 EXPECT_CALL(*this, OnPolicyRefresh()).Times(0);
473 base::FundamentalValue kValue0(0); 473 base::Value kValue0(0);
474 policy0_.Set("aaa", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 474 policy0_.Set("aaa", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
475 POLICY_SOURCE_CLOUD, kValue0.CreateDeepCopy(), nullptr); 475 POLICY_SOURCE_CLOUD, kValue0.CreateDeepCopy(), nullptr);
476 provider0_.UpdateChromePolicy(policy0_); 476 provider0_.UpdateChromePolicy(policy0_);
477 Mock::VerifyAndClearExpectations(this); 477 Mock::VerifyAndClearExpectations(this);
478 478
479 EXPECT_CALL(*this, OnPolicyRefresh()).Times(0); 479 EXPECT_CALL(*this, OnPolicyRefresh()).Times(0);
480 base::FundamentalValue kValue1(1); 480 base::Value kValue1(1);
481 policy1_.Set("aaa", POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER, 481 policy1_.Set("aaa", POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER,
482 POLICY_SOURCE_CLOUD, kValue1.CreateDeepCopy(), nullptr); 482 POLICY_SOURCE_CLOUD, kValue1.CreateDeepCopy(), nullptr);
483 provider1_.UpdateChromePolicy(policy1_); 483 provider1_.UpdateChromePolicy(policy1_);
484 Mock::VerifyAndClearExpectations(this); 484 Mock::VerifyAndClearExpectations(this);
485 485
486 // A provider can refresh more than once after a RefreshPolicies call, but 486 // A provider can refresh more than once after a RefreshPolicies call, but
487 // OnPolicyRefresh should be triggered only after all providers are 487 // OnPolicyRefresh should be triggered only after all providers are
488 // refreshed. 488 // refreshed.
489 EXPECT_CALL(*this, OnPolicyRefresh()).Times(0); 489 EXPECT_CALL(*this, OnPolicyRefresh()).Times(0);
490 policy1_.Set("bbb", POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER, 490 policy1_.Set("bbb", POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER,
(...skipping 11 matching lines...) Expand all
502 Mock::VerifyAndClearExpectations(this); 502 Mock::VerifyAndClearExpectations(this);
503 503
504 EXPECT_CALL(*this, OnPolicyRefresh()).Times(0); 504 EXPECT_CALL(*this, OnPolicyRefresh()).Times(0);
505 policy2_.Set("bbb", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 505 policy2_.Set("bbb", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
506 POLICY_SOURCE_CLOUD, kValue0.CreateDeepCopy(), nullptr); 506 POLICY_SOURCE_CLOUD, kValue0.CreateDeepCopy(), nullptr);
507 provider2_.UpdateChromePolicy(policy2_); 507 provider2_.UpdateChromePolicy(policy2_);
508 Mock::VerifyAndClearExpectations(this); 508 Mock::VerifyAndClearExpectations(this);
509 509
510 // Providers 0 and 1 must reload again. 510 // Providers 0 and 1 must reload again.
511 EXPECT_CALL(*this, OnPolicyRefresh()).Times(2); 511 EXPECT_CALL(*this, OnPolicyRefresh()).Times(2);
512 base::FundamentalValue kValue2(2); 512 base::Value kValue2(2);
513 policy0_.Set("aaa", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 513 policy0_.Set("aaa", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
514 POLICY_SOURCE_CLOUD, kValue2.CreateDeepCopy(), nullptr); 514 POLICY_SOURCE_CLOUD, kValue2.CreateDeepCopy(), nullptr);
515 provider0_.UpdateChromePolicy(policy0_); 515 provider0_.UpdateChromePolicy(policy0_);
516 provider1_.UpdateChromePolicy(policy1_); 516 provider1_.UpdateChromePolicy(policy1_);
517 Mock::VerifyAndClearExpectations(this); 517 Mock::VerifyAndClearExpectations(this);
518 518
519 const PolicyMap& policies = policy_service_->GetPolicies( 519 const PolicyMap& policies = policy_service_->GetPolicies(
520 PolicyNamespace(POLICY_DOMAIN_CHROME, std::string())); 520 PolicyNamespace(POLICY_DOMAIN_CHROME, std::string()));
521 EXPECT_TRUE(base::Value::Equals(&kValue2, policies.GetValue("aaa"))); 521 EXPECT_TRUE(base::Value::Equals(&kValue2, policies.GetValue("aaa")));
522 EXPECT_TRUE(base::Value::Equals(&kValue0, policies.GetValue("bbb"))); 522 EXPECT_TRUE(base::Value::Equals(&kValue0, policies.GetValue("bbb")));
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
665 TEST_F(PolicyServiceTest, FixDeprecatedPolicies) { 665 TEST_F(PolicyServiceTest, FixDeprecatedPolicies) {
666 const PolicyNamespace chrome_namespace(POLICY_DOMAIN_CHROME, std::string()); 666 const PolicyNamespace chrome_namespace(POLICY_DOMAIN_CHROME, std::string());
667 const PolicyNamespace extension_namespace(POLICY_DOMAIN_EXTENSIONS, "xyz"); 667 const PolicyNamespace extension_namespace(POLICY_DOMAIN_EXTENSIONS, "xyz");
668 668
669 std::unique_ptr<PolicyBundle> policy_bundle(new PolicyBundle()); 669 std::unique_ptr<PolicyBundle> policy_bundle(new PolicyBundle());
670 PolicyMap& policy_map = policy_bundle->Get(chrome_namespace); 670 PolicyMap& policy_map = policy_bundle->Get(chrome_namespace);
671 // Individual proxy policy values in the Chrome namespace should be collected 671 // Individual proxy policy values in the Chrome namespace should be collected
672 // into a dictionary. 672 // into a dictionary.
673 policy_map.Set(key::kProxyServerMode, POLICY_LEVEL_MANDATORY, 673 policy_map.Set(key::kProxyServerMode, POLICY_LEVEL_MANDATORY,
674 POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD, 674 POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD,
675 base::MakeUnique<base::FundamentalValue>(3), nullptr); 675 base::MakeUnique<base::Value>(3), nullptr);
676 676
677 // Both these policies should be ignored, since there's a higher priority 677 // Both these policies should be ignored, since there's a higher priority
678 // policy available. 678 // policy available.
679 policy_map.Set(key::kProxyMode, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER, 679 policy_map.Set(key::kProxyMode, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER,
680 POLICY_SOURCE_CLOUD, 680 POLICY_SOURCE_CLOUD,
681 base::MakeUnique<base::StringValue>("pac_script"), nullptr); 681 base::MakeUnique<base::StringValue>("pac_script"), nullptr);
682 policy_map.Set(key::kProxyPacUrl, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER, 682 policy_map.Set(key::kProxyPacUrl, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER,
683 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>( 683 POLICY_SOURCE_CLOUD, base::MakeUnique<base::StringValue>(
684 "http://example.com/wpad.dat"), 684 "http://example.com/wpad.dat"),
685 nullptr); 685 nullptr);
686 686
687 // Add a value to a non-Chrome namespace. 687 // Add a value to a non-Chrome namespace.
688 policy_bundle->Get(extension_namespace) 688 policy_bundle->Get(extension_namespace)
689 .Set(key::kProxyServerMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 689 .Set(key::kProxyServerMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
690 POLICY_SOURCE_CLOUD, base::MakeUnique<base::FundamentalValue>(3), 690 POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(3),
691 nullptr); 691 nullptr);
692 692
693 // The resulting Chrome namespace map should have the collected policy. 693 // The resulting Chrome namespace map should have the collected policy.
694 PolicyMap expected_chrome; 694 PolicyMap expected_chrome;
695 std::unique_ptr<base::DictionaryValue> expected_value( 695 std::unique_ptr<base::DictionaryValue> expected_value(
696 new base::DictionaryValue); 696 new base::DictionaryValue);
697 expected_value->SetInteger(key::kProxyServerMode, 3); 697 expected_value->SetInteger(key::kProxyServerMode, 3);
698 expected_chrome.Set(key::kProxySettings, POLICY_LEVEL_MANDATORY, 698 expected_chrome.Set(key::kProxySettings, POLICY_LEVEL_MANDATORY,
699 POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD, 699 POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD,
700 std::move(expected_value), nullptr); 700 std::move(expected_value), nullptr);
701 701
702 // The resulting Extensions namespace map shouldn't have been modified. 702 // The resulting Extensions namespace map shouldn't have been modified.
703 PolicyMap expected_extension; 703 PolicyMap expected_extension;
704 expected_extension.Set(key::kProxyServerMode, POLICY_LEVEL_MANDATORY, 704 expected_extension.Set(key::kProxyServerMode, POLICY_LEVEL_MANDATORY,
705 POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD, 705 POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD,
706 base::MakeUnique<base::FundamentalValue>(3), nullptr); 706 base::MakeUnique<base::Value>(3), nullptr);
707 707
708 provider0_.UpdatePolicy(std::move(policy_bundle)); 708 provider0_.UpdatePolicy(std::move(policy_bundle));
709 RunUntilIdle(); 709 RunUntilIdle();
710 710
711 EXPECT_TRUE(VerifyPolicies(chrome_namespace, expected_chrome)); 711 EXPECT_TRUE(VerifyPolicies(chrome_namespace, expected_chrome));
712 EXPECT_TRUE(VerifyPolicies(extension_namespace, expected_extension)); 712 EXPECT_TRUE(VerifyPolicies(extension_namespace, expected_extension));
713 } 713 }
714 714
715 } // namespace policy 715 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698