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

Side by Side Diff: chrome/browser/policy/user_policy_cache_unittest.cc

Issue 9111022: Removed ConfigurationPolicyType and extended PolicyMap. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased Created 8 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
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 "chrome/browser/policy/user_policy_cache.h" 5 #include "chrome/browser/policy/user_policy_cache.h"
6 6
7 #include <limits> 7 #include <limits>
8 #include <string> 8 #include <string>
9 9
10 #include "base/file_util.h" 10 #include "base/file_util.h"
11 #include "base/message_loop.h" 11 #include "base/message_loop.h"
12 #include "base/scoped_temp_dir.h" 12 #include "base/scoped_temp_dir.h"
13 #include "base/values.h" 13 #include "base/values.h"
14 #include "chrome/browser/policy/proto/cloud_policy.pb.h" 14 #include "chrome/browser/policy/proto/cloud_policy.pb.h"
15 #include "chrome/browser/policy/proto/device_management_backend.pb.h" 15 #include "chrome/browser/policy/proto/device_management_backend.pb.h"
16 #include "chrome/browser/policy/proto/device_management_local.pb.h" 16 #include "chrome/browser/policy/proto/device_management_local.pb.h"
17 #include "chrome/browser/policy/proto/old_generic_format.pb.h" 17 #include "chrome/browser/policy/proto/old_generic_format.pb.h"
18 #include "content/test/test_browser_thread.h" 18 #include "content/test/test_browser_thread.h"
19 #include "policy/policy_constants.h"
19 #include "testing/gmock/include/gmock/gmock.h" 20 #include "testing/gmock/include/gmock/gmock.h"
20 #include "testing/gtest/include/gtest/gtest.h" 21 #include "testing/gtest/include/gtest/gtest.h"
21 22
22 using content::BrowserThread; 23 using content::BrowserThread;
23 using testing::_; 24 using testing::_;
24 25
25 namespace em = enterprise_management; 26 namespace em = enterprise_management;
26 27
27 namespace policy { 28 namespace policy {
28 29
29 // Decodes a CloudPolicySettings object into two maps with mandatory and 30 // Decodes a CloudPolicySettings object into a PolicyMap.
30 // recommended settings, respectively. The implementation is generated code 31 // The implementation is generated code in policy/cloud_policy_generated.cc.
31 // in policy/cloud_policy_generated.cc.
32 void DecodePolicy(const em::CloudPolicySettings& policy, 32 void DecodePolicy(const em::CloudPolicySettings& policy,
33 PolicyMap* mandatory, PolicyMap* recommended); 33 PolicyMap* policies);
34 34
35 // The implementations of these methods are in cloud_policy_generated.cc. 35 // The implementations of these methods are in cloud_policy_generated.cc.
36 Value* DecodeIntegerValue(google::protobuf::int64 value); 36 Value* DecodeIntegerValue(google::protobuf::int64 value);
37 ListValue* DecodeStringList(const em::StringList& string_list); 37 ListValue* DecodeStringList(const em::StringList& string_list);
38 38
39 class MockCloudPolicyCacheBaseObserver 39 class MockCloudPolicyCacheBaseObserver
40 : public CloudPolicyCacheBase::Observer { 40 : public CloudPolicyCacheBase::Observer {
41 public: 41 public:
42 MockCloudPolicyCacheBaseObserver() {} 42 MockCloudPolicyCacheBaseObserver() {}
43 virtual ~MockCloudPolicyCacheBaseObserver() {} 43 virtual ~MockCloudPolicyCacheBaseObserver() {}
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
117 } 117 }
118 118
119 void SetReady(UserPolicyCache* cache) { 119 void SetReady(UserPolicyCache* cache) {
120 cache->SetReady(); 120 cache->SetReady();
121 } 121 }
122 122
123 FilePath test_file() { 123 FilePath test_file() {
124 return temp_dir_.path().AppendASCII("UserPolicyCacheTest"); 124 return temp_dir_.path().AppendASCII("UserPolicyCacheTest");
125 } 125 }
126 126
127 const PolicyMap& mandatory_policy(const UserPolicyCache& cache) {
128 return cache.mandatory_policy_;
129 }
130
131 const PolicyMap& recommended_policy(const UserPolicyCache& cache) {
132 return cache.recommended_policy_;
133 }
134
135 MessageLoop loop_; 127 MessageLoop loop_;
136 MockCloudPolicyCacheBaseObserver observer_; 128 MockCloudPolicyCacheBaseObserver observer_;
137 129
138 private: 130 private:
139 ScopedTempDir temp_dir_; 131 ScopedTempDir temp_dir_;
140 content::TestBrowserThread ui_thread_; 132 content::TestBrowserThread ui_thread_;
141 content::TestBrowserThread file_thread_; 133 content::TestBrowserThread file_thread_;
142 }; 134 };
143 135
144 TEST_F(UserPolicyCacheTest, DecodePolicy) { 136 TEST_F(UserPolicyCacheTest, DecodePolicy) {
145 em::CloudPolicySettings settings; 137 em::CloudPolicySettings settings;
146 settings.mutable_homepagelocation()->set_homepagelocation("chromium.org"); 138 settings.mutable_homepagelocation()->set_homepagelocation("chromium.org");
147 settings.mutable_javascriptenabled()->set_javascriptenabled(true); 139 settings.mutable_javascriptenabled()->set_javascriptenabled(true);
148 settings.mutable_javascriptenabled()->mutable_policy_options()->set_mode( 140 settings.mutable_javascriptenabled()->mutable_policy_options()->set_mode(
149 em::PolicyOptions::MANDATORY); 141 em::PolicyOptions::MANDATORY);
150 settings.mutable_policyrefreshrate()->set_policyrefreshrate(5); 142 settings.mutable_policyrefreshrate()->set_policyrefreshrate(5);
151 settings.mutable_policyrefreshrate()->mutable_policy_options()->set_mode( 143 settings.mutable_policyrefreshrate()->mutable_policy_options()->set_mode(
152 em::PolicyOptions::RECOMMENDED); 144 em::PolicyOptions::RECOMMENDED);
153 settings.mutable_showhomebutton()->set_showhomebutton(true); 145 settings.mutable_showhomebutton()->set_showhomebutton(true);
154 settings.mutable_showhomebutton()->mutable_policy_options()->set_mode( 146 settings.mutable_showhomebutton()->mutable_policy_options()->set_mode(
155 em::PolicyOptions::UNSET); 147 em::PolicyOptions::UNSET);
156 #ifdef NDEBUG 148 #ifdef NDEBUG
157 // Setting an invalid PolicyMode enum value triggers a DCHECK in protobuf. 149 // Setting an invalid PolicyMode enum value triggers a DCHECK in protobuf.
158 settings.mutable_homepageisnewtabpage()->set_homepageisnewtabpage(true); 150 settings.mutable_homepageisnewtabpage()->set_homepageisnewtabpage(true);
159 settings.mutable_homepageisnewtabpage()->mutable_policy_options()->set_mode( 151 settings.mutable_homepageisnewtabpage()->mutable_policy_options()->set_mode(
160 static_cast<em::PolicyOptions::PolicyMode>(-1)); 152 static_cast<em::PolicyOptions::PolicyMode>(-1));
161 #endif 153 #endif
162 PolicyMap mandatory_policy; 154 PolicyMap policy;
163 PolicyMap recommended_policy; 155 DecodePolicy(settings, &policy);
164 DecodePolicy(settings, &mandatory_policy, &recommended_policy); 156 PolicyMap expected;
165 PolicyMap mandatory; 157 expected.Set(key::kHomepageLocation,
166 mandatory.Set(kPolicyHomepageLocation, 158 POLICY_LEVEL_MANDATORY,
167 Value::CreateStringValue("chromium.org")); 159 POLICY_SCOPE_USER,
168 mandatory.Set(kPolicyJavascriptEnabled, Value::CreateBooleanValue(true)); 160 Value::CreateStringValue("chromium.org"));
169 PolicyMap recommended; 161 expected.Set(key::kJavascriptEnabled,
170 recommended.Set(kPolicyPolicyRefreshRate, Value::CreateIntegerValue(5)); 162 POLICY_LEVEL_MANDATORY,
171 EXPECT_TRUE(mandatory.Equals(mandatory_policy)); 163 POLICY_SCOPE_USER,
172 EXPECT_TRUE(recommended.Equals(recommended_policy)); 164 Value::CreateBooleanValue(true));
165 expected.Set(key::kPolicyRefreshRate,
166 POLICY_LEVEL_RECOMMENDED,
167 POLICY_SCOPE_USER,
168 Value::CreateIntegerValue(5));
169 EXPECT_TRUE(policy.Equals(expected));
173 } 170 }
174 171
175 TEST_F(UserPolicyCacheTest, DecodeIntegerValue) { 172 TEST_F(UserPolicyCacheTest, DecodeIntegerValue) {
176 const int min = std::numeric_limits<int>::min(); 173 const int min = std::numeric_limits<int>::min();
177 const int max = std::numeric_limits<int>::max(); 174 const int max = std::numeric_limits<int>::max();
178 scoped_ptr<Value> value( 175 scoped_ptr<Value> value(
179 DecodeIntegerValue(static_cast<google::protobuf::int64>(42))); 176 DecodeIntegerValue(static_cast<google::protobuf::int64>(42)));
180 ASSERT_TRUE(value.get()); 177 ASSERT_TRUE(value.get());
181 base::FundamentalValue expected_42(42); 178 base::FundamentalValue expected_42(42);
182 EXPECT_TRUE(value->Equals(&expected_42)); 179 EXPECT_TRUE(value->Equals(&expected_42));
(...skipping 20 matching lines...) Expand all
203 scoped_ptr<ListValue> decoded(DecodeStringList(string_list)); 200 scoped_ptr<ListValue> decoded(DecodeStringList(string_list));
204 ListValue expected; 201 ListValue expected;
205 expected.Append(Value::CreateStringValue("ponies")); 202 expected.Append(Value::CreateStringValue("ponies"));
206 expected.Append(Value::CreateStringValue("more ponies")); 203 expected.Append(Value::CreateStringValue("more ponies"));
207 EXPECT_TRUE(decoded->Equals(&expected)); 204 EXPECT_TRUE(decoded->Equals(&expected));
208 } 205 }
209 206
210 TEST_F(UserPolicyCacheTest, Empty) { 207 TEST_F(UserPolicyCacheTest, Empty) {
211 UserPolicyCache cache(test_file(), false /* wait_for_policy_fetch */); 208 UserPolicyCache cache(test_file(), false /* wait_for_policy_fetch */);
212 PolicyMap empty; 209 PolicyMap empty;
213 EXPECT_TRUE(empty.Equals(mandatory_policy(cache))); 210 EXPECT_TRUE(empty.Equals(*cache.policy()));
214 EXPECT_TRUE(empty.Equals(recommended_policy(cache)));
215 EXPECT_EQ(base::Time(), cache.last_policy_refresh_time()); 211 EXPECT_EQ(base::Time(), cache.last_policy_refresh_time());
216 } 212 }
217 213
218 TEST_F(UserPolicyCacheTest, LoadNoFile) { 214 TEST_F(UserPolicyCacheTest, LoadNoFile) {
219 UserPolicyCache cache(test_file(), false /* wait_for_policy_fetch */); 215 UserPolicyCache cache(test_file(), false /* wait_for_policy_fetch */);
220 cache.Load(); 216 cache.Load();
221 loop_.RunAllPending(); 217 loop_.RunAllPending();
222 PolicyMap empty; 218 PolicyMap empty;
223 EXPECT_TRUE(empty.Equals(mandatory_policy(cache))); 219 EXPECT_TRUE(empty.Equals(*cache.policy()));
224 EXPECT_EQ(base::Time(), cache.last_policy_refresh_time()); 220 EXPECT_EQ(base::Time(), cache.last_policy_refresh_time());
225 } 221 }
226 222
227 TEST_F(UserPolicyCacheTest, RejectFuture) { 223 TEST_F(UserPolicyCacheTest, RejectFuture) {
228 scoped_ptr<em::PolicyFetchResponse> policy_response( 224 scoped_ptr<em::PolicyFetchResponse> policy_response(
229 CreateHomepagePolicy("", base::Time::NowFromSystemTime() + 225 CreateHomepagePolicy("", base::Time::NowFromSystemTime() +
230 base::TimeDelta::FromMinutes(5), 226 base::TimeDelta::FromMinutes(5),
231 em::PolicyOptions::MANDATORY)); 227 em::PolicyOptions::MANDATORY));
232 WritePolicy(*policy_response); 228 WritePolicy(*policy_response);
233 UserPolicyCache cache(test_file(), false /* wait_for_policy_fetch */); 229 UserPolicyCache cache(test_file(), false /* wait_for_policy_fetch */);
234 cache.Load(); 230 cache.Load();
235 loop_.RunAllPending(); 231 loop_.RunAllPending();
236 PolicyMap empty; 232 PolicyMap empty;
237 EXPECT_TRUE(empty.Equals(mandatory_policy(cache))); 233 EXPECT_TRUE(empty.Equals(*cache.policy()));
238 EXPECT_EQ(base::Time(), cache.last_policy_refresh_time()); 234 EXPECT_EQ(base::Time(), cache.last_policy_refresh_time());
239 } 235 }
240 236
241 TEST_F(UserPolicyCacheTest, LoadWithFile) { 237 TEST_F(UserPolicyCacheTest, LoadWithFile) {
242 scoped_ptr<em::PolicyFetchResponse> policy_response( 238 scoped_ptr<em::PolicyFetchResponse> policy_response(
243 CreateHomepagePolicy("", base::Time::NowFromSystemTime(), 239 CreateHomepagePolicy("", base::Time::NowFromSystemTime(),
244 em::PolicyOptions::MANDATORY)); 240 em::PolicyOptions::MANDATORY));
245 WritePolicy(*policy_response); 241 WritePolicy(*policy_response);
246 UserPolicyCache cache(test_file(), false /* wait_for_policy_fetch */); 242 UserPolicyCache cache(test_file(), false /* wait_for_policy_fetch */);
247 cache.Load(); 243 cache.Load();
248 loop_.RunAllPending(); 244 loop_.RunAllPending();
249 PolicyMap empty; 245 PolicyMap empty;
250 EXPECT_TRUE(empty.Equals(mandatory_policy(cache))); 246 EXPECT_TRUE(empty.Equals(*cache.policy()));
251 EXPECT_NE(base::Time(), cache.last_policy_refresh_time()); 247 EXPECT_NE(base::Time(), cache.last_policy_refresh_time());
252 EXPECT_GE(base::Time::Now(), cache.last_policy_refresh_time()); 248 EXPECT_GE(base::Time::Now(), cache.last_policy_refresh_time());
253 } 249 }
254 250
255 TEST_F(UserPolicyCacheTest, LoadWithData) { 251 TEST_F(UserPolicyCacheTest, LoadWithData) {
256 scoped_ptr<em::PolicyFetchResponse> policy( 252 scoped_ptr<em::PolicyFetchResponse> policy(
257 CreateHomepagePolicy("http://www.example.com", 253 CreateHomepagePolicy("http://www.example.com",
258 base::Time::NowFromSystemTime(), 254 base::Time::NowFromSystemTime(),
259 em::PolicyOptions::MANDATORY)); 255 em::PolicyOptions::MANDATORY));
260 WritePolicy(*policy); 256 WritePolicy(*policy);
261 UserPolicyCache cache(test_file(), false /* wait_for_policy_fetch */); 257 UserPolicyCache cache(test_file(), false /* wait_for_policy_fetch */);
262 cache.Load(); 258 cache.Load();
263 loop_.RunAllPending(); 259 loop_.RunAllPending();
264 PolicyMap expected; 260 PolicyMap expected;
265 expected.Set(kPolicyHomepageLocation, 261 expected.Set(key::kHomepageLocation,
262 POLICY_LEVEL_MANDATORY,
263 POLICY_SCOPE_USER,
266 Value::CreateStringValue("http://www.example.com")); 264 Value::CreateStringValue("http://www.example.com"));
267 EXPECT_TRUE(expected.Equals(mandatory_policy(cache))); 265 EXPECT_TRUE(expected.Equals(*cache.policy()));
268 } 266 }
269 267
270 TEST_F(UserPolicyCacheTest, SetPolicy) { 268 TEST_F(UserPolicyCacheTest, SetPolicy) {
271 UserPolicyCache cache(test_file(), false /* wait_for_policy_fetch */); 269 UserPolicyCache cache(test_file(), false /* wait_for_policy_fetch */);
272 em::PolicyFetchResponse* policy = 270 em::PolicyFetchResponse* policy =
273 CreateHomepagePolicy("http://www.example.com", 271 CreateHomepagePolicy("http://www.example.com",
274 base::Time::NowFromSystemTime(), 272 base::Time::NowFromSystemTime(),
275 em::PolicyOptions::MANDATORY); 273 em::PolicyOptions::MANDATORY);
276 SetPolicy(&cache, policy); 274 SetPolicy(&cache, policy);
277 em::PolicyFetchResponse* policy2 = 275 em::PolicyFetchResponse* policy2 =
278 CreateHomepagePolicy("http://www.example.com", 276 CreateHomepagePolicy("http://www.example.com",
279 base::Time::NowFromSystemTime(), 277 base::Time::NowFromSystemTime(),
280 em::PolicyOptions::MANDATORY); 278 em::PolicyOptions::MANDATORY);
281 SetPolicy(&cache, policy2); 279 SetPolicy(&cache, policy2);
282 PolicyMap expected; 280 PolicyMap expected;
283 expected.Set(kPolicyHomepageLocation, 281 expected.Set(key::kHomepageLocation,
282 POLICY_LEVEL_MANDATORY,
283 POLICY_SCOPE_USER,
284 Value::CreateStringValue("http://www.example.com")); 284 Value::CreateStringValue("http://www.example.com"));
285 PolicyMap empty; 285 EXPECT_TRUE(expected.Equals(*cache.policy()));
286 EXPECT_TRUE(expected.Equals(mandatory_policy(cache)));
287 EXPECT_TRUE(empty.Equals(recommended_policy(cache)));
288 policy = CreateHomepagePolicy("http://www.example.com", 286 policy = CreateHomepagePolicy("http://www.example.com",
289 base::Time::NowFromSystemTime(), 287 base::Time::NowFromSystemTime(),
290 em::PolicyOptions::RECOMMENDED); 288 em::PolicyOptions::RECOMMENDED);
291 SetPolicy(&cache, policy); 289 SetPolicy(&cache, policy);
292 EXPECT_TRUE(expected.Equals(recommended_policy(cache))); 290 expected.Set(key::kHomepageLocation,
293 EXPECT_TRUE(empty.Equals(mandatory_policy(cache))); 291 POLICY_LEVEL_RECOMMENDED,
292 POLICY_SCOPE_USER,
293 Value::CreateStringValue("http://www.example.com"));
294 EXPECT_TRUE(expected.Equals(*cache.policy()));
294 } 295 }
295 296
296 TEST_F(UserPolicyCacheTest, ResetPolicy) { 297 TEST_F(UserPolicyCacheTest, ResetPolicy) {
297 UserPolicyCache cache(test_file(), false /* wait_for_policy_fetch */); 298 UserPolicyCache cache(test_file(), false /* wait_for_policy_fetch */);
298 299
299 em::PolicyFetchResponse* policy = 300 em::PolicyFetchResponse* policy =
300 CreateHomepagePolicy("http://www.example.com", 301 CreateHomepagePolicy("http://www.example.com",
301 base::Time::NowFromSystemTime(), 302 base::Time::NowFromSystemTime(),
302 em::PolicyOptions::MANDATORY); 303 em::PolicyOptions::MANDATORY);
303 SetPolicy(&cache, policy); 304 SetPolicy(&cache, policy);
304 PolicyMap expected; 305 PolicyMap expected;
305 expected.Set(kPolicyHomepageLocation, 306 expected.Set(key::kHomepageLocation,
307 POLICY_LEVEL_MANDATORY,
308 POLICY_SCOPE_USER,
306 Value::CreateStringValue("http://www.example.com")); 309 Value::CreateStringValue("http://www.example.com"));
307 EXPECT_TRUE(expected.Equals(mandatory_policy(cache))); 310 EXPECT_TRUE(expected.Equals(*cache.policy()));
308 311
309 em::PolicyFetchResponse* empty_policy = 312 em::PolicyFetchResponse* empty_policy =
310 CreateHomepagePolicy("", base::Time::NowFromSystemTime(), 313 CreateHomepagePolicy("", base::Time::NowFromSystemTime(),
311 em::PolicyOptions::MANDATORY); 314 em::PolicyOptions::MANDATORY);
312 SetPolicy(&cache, empty_policy); 315 SetPolicy(&cache, empty_policy);
313 PolicyMap empty; 316 PolicyMap empty;
314 EXPECT_TRUE(empty.Equals(mandatory_policy(cache))); 317 EXPECT_TRUE(empty.Equals(*cache.policy()));
315 } 318 }
316 319
317 TEST_F(UserPolicyCacheTest, PersistPolicy) { 320 TEST_F(UserPolicyCacheTest, PersistPolicy) {
318 { 321 {
319 UserPolicyCache cache(test_file(), false /* wait_for_policy_fetch */); 322 UserPolicyCache cache(test_file(), false /* wait_for_policy_fetch */);
320 scoped_ptr<em::PolicyFetchResponse> policy( 323 scoped_ptr<em::PolicyFetchResponse> policy(
321 CreateHomepagePolicy("http://www.example.com", 324 CreateHomepagePolicy("http://www.example.com",
322 base::Time::NowFromSystemTime(), 325 base::Time::NowFromSystemTime(),
323 em::PolicyOptions::MANDATORY)); 326 em::PolicyOptions::MANDATORY));
324 cache.SetPolicy(*policy); 327 cache.SetPolicy(*policy);
325 } 328 }
326 329
327 loop_.RunAllPending(); 330 loop_.RunAllPending();
328 331
329 EXPECT_TRUE(file_util::PathExists(test_file())); 332 EXPECT_TRUE(file_util::PathExists(test_file()));
330 UserPolicyCache cache(test_file(), false /* wait_for_policy_fetch */); 333 UserPolicyCache cache(test_file(), false /* wait_for_policy_fetch */);
331 cache.Load(); 334 cache.Load();
332 loop_.RunAllPending(); 335 loop_.RunAllPending();
333 PolicyMap expected; 336 PolicyMap expected;
334 expected.Set(kPolicyHomepageLocation, 337 expected.Set(key::kHomepageLocation,
338 POLICY_LEVEL_MANDATORY,
339 POLICY_SCOPE_USER,
335 Value::CreateStringValue("http://www.example.com")); 340 Value::CreateStringValue("http://www.example.com"));
336 EXPECT_TRUE(expected.Equals(mandatory_policy(cache))); 341 EXPECT_TRUE(expected.Equals(*cache.policy()));
337 } 342 }
338 343
339 TEST_F(UserPolicyCacheTest, FreshPolicyOverride) { 344 TEST_F(UserPolicyCacheTest, FreshPolicyOverride) {
340 scoped_ptr<em::PolicyFetchResponse> policy( 345 scoped_ptr<em::PolicyFetchResponse> policy(
341 CreateHomepagePolicy("http://www.example.com", 346 CreateHomepagePolicy("http://www.example.com",
342 base::Time::NowFromSystemTime(), 347 base::Time::NowFromSystemTime(),
343 em::PolicyOptions::MANDATORY)); 348 em::PolicyOptions::MANDATORY));
344 WritePolicy(*policy); 349 WritePolicy(*policy);
345 350
346 UserPolicyCache cache(test_file(), false /* wait_for_policy_fetch */); 351 UserPolicyCache cache(test_file(), false /* wait_for_policy_fetch */);
347 em::PolicyFetchResponse* updated_policy = 352 em::PolicyFetchResponse* updated_policy =
348 CreateHomepagePolicy("http://www.chromium.org", 353 CreateHomepagePolicy("http://www.chromium.org",
349 base::Time::NowFromSystemTime(), 354 base::Time::NowFromSystemTime(),
350 em::PolicyOptions::MANDATORY); 355 em::PolicyOptions::MANDATORY);
351 SetPolicy(&cache, updated_policy); 356 SetPolicy(&cache, updated_policy);
352 357
353 cache.Load(); 358 cache.Load();
354 loop_.RunAllPending(); 359 loop_.RunAllPending();
355 PolicyMap expected; 360 PolicyMap expected;
356 expected.Set(kPolicyHomepageLocation, 361 expected.Set(key::kHomepageLocation,
362 POLICY_LEVEL_MANDATORY,
363 POLICY_SCOPE_USER,
357 Value::CreateStringValue("http://www.chromium.org")); 364 Value::CreateStringValue("http://www.chromium.org"));
358 EXPECT_TRUE(expected.Equals(mandatory_policy(cache))); 365 EXPECT_TRUE(expected.Equals(*cache.policy()));
359 } 366 }
360 367
361 TEST_F(UserPolicyCacheTest, SetReady) { 368 TEST_F(UserPolicyCacheTest, SetReady) {
362 UserPolicyCache cache(test_file(), false /* wait_for_policy_fetch */); 369 UserPolicyCache cache(test_file(), false /* wait_for_policy_fetch */);
363 cache.AddObserver(&observer_); 370 cache.AddObserver(&observer_);
364 scoped_ptr<em::PolicyFetchResponse> policy( 371 scoped_ptr<em::PolicyFetchResponse> policy(
365 CreateHomepagePolicy("http://www.example.com", 372 CreateHomepagePolicy("http://www.example.com",
366 base::Time::NowFromSystemTime(), 373 base::Time::NowFromSystemTime(),
367 em::PolicyOptions::MANDATORY)); 374 em::PolicyOptions::MANDATORY));
368 EXPECT_CALL(observer_, OnCacheUpdate(_)).Times(0); 375 EXPECT_CALL(observer_, OnCacheUpdate(_)).Times(0);
(...skipping 22 matching lines...) Expand all
391 EXPECT_TRUE( 398 EXPECT_TRUE(
392 settings.SerializeToString(signed_response.mutable_policy_value())); 399 settings.SerializeToString(signed_response.mutable_policy_value()));
393 base::TimeDelta timestamp = 400 base::TimeDelta timestamp =
394 base::Time::NowFromSystemTime() - base::Time::UnixEpoch(); 401 base::Time::NowFromSystemTime() - base::Time::UnixEpoch();
395 signed_response.set_timestamp(timestamp.InMilliseconds()); 402 signed_response.set_timestamp(timestamp.InMilliseconds());
396 EXPECT_TRUE( 403 EXPECT_TRUE(
397 signed_response.SerializeToString(policy->mutable_policy_data())); 404 signed_response.SerializeToString(policy->mutable_policy_data()));
398 405
399 SetPolicy(&cache, policy); 406 SetPolicy(&cache, policy);
400 PolicyMap expected; 407 PolicyMap expected;
401 expected.Set(kPolicyHomepageLocation, 408 expected.Set(key::kHomepageLocation,
409 POLICY_LEVEL_MANDATORY,
410 POLICY_SCOPE_USER,
402 Value::CreateStringValue("http://www.example.com")); 411 Value::CreateStringValue("http://www.example.com"));
403 PolicyMap empty; 412 EXPECT_TRUE(expected.Equals(*cache.policy()));
404 EXPECT_TRUE(expected.Equals(mandatory_policy(cache)));
405 EXPECT_TRUE(empty.Equals(recommended_policy(cache)));
406 // If new-style policy comes in, it should override old-style policy. 413 // If new-style policy comes in, it should override old-style policy.
407 policy = CreateHomepagePolicy("http://www.example.com", 414 policy = CreateHomepagePolicy("http://www.example.com",
408 base::Time::NowFromSystemTime(), 415 base::Time::NowFromSystemTime(),
409 em::PolicyOptions::RECOMMENDED); 416 em::PolicyOptions::RECOMMENDED);
417 expected.Set(key::kHomepageLocation,
418 POLICY_LEVEL_RECOMMENDED,
419 POLICY_SCOPE_USER,
420 Value::CreateStringValue("http://www.example.com"));
410 SetPolicy(&cache, policy); 421 SetPolicy(&cache, policy);
411 EXPECT_TRUE(expected.Equals(recommended_policy(cache))); 422 EXPECT_TRUE(expected.Equals(*cache.policy()));
412 EXPECT_TRUE(empty.Equals(mandatory_policy(cache)));
413 } 423 }
414 424
415 TEST_F(UserPolicyCacheTest, CheckReadyNoWaiting) { 425 TEST_F(UserPolicyCacheTest, CheckReadyNoWaiting) {
416 UserPolicyCache cache(test_file(), false /* wait_for_policy_fetch */); 426 UserPolicyCache cache(test_file(), false /* wait_for_policy_fetch */);
417 EXPECT_FALSE(cache.IsReady()); 427 EXPECT_FALSE(cache.IsReady());
418 cache.Load(); 428 cache.Load();
419 loop_.RunAllPending(); 429 loop_.RunAllPending();
420 EXPECT_TRUE(cache.IsReady()); 430 EXPECT_TRUE(cache.IsReady());
421 } 431 }
422 432
(...skipping 11 matching lines...) Expand all
434 UserPolicyCache cache(test_file(), true /* wait_for_policy_fetch */); 444 UserPolicyCache cache(test_file(), true /* wait_for_policy_fetch */);
435 EXPECT_FALSE(cache.IsReady()); 445 EXPECT_FALSE(cache.IsReady());
436 cache.SetFetchingDone(); 446 cache.SetFetchingDone();
437 EXPECT_FALSE(cache.IsReady()); 447 EXPECT_FALSE(cache.IsReady());
438 cache.Load(); 448 cache.Load();
439 loop_.RunAllPending(); 449 loop_.RunAllPending();
440 EXPECT_TRUE(cache.IsReady()); 450 EXPECT_TRUE(cache.IsReady());
441 } 451 }
442 452
443 } // namespace policy 453 } // namespace policy
OLDNEW
« no previous file with comments | « chrome/browser/policy/user_policy_cache.cc ('k') | chrome/browser/prefs/proxy_policy_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698