OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/cloud_policy_cache.h" | 5 #include "chrome/browser/policy/cloud_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" |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
75 cached_policy.mutable_cloud_policy()->CopyFrom(policy); | 75 cached_policy.mutable_cloud_policy()->CopyFrom(policy); |
76 EXPECT_TRUE(cached_policy.SerializeToString(&data)); | 76 EXPECT_TRUE(cached_policy.SerializeToString(&data)); |
77 int size = static_cast<int>(data.size()); | 77 int size = static_cast<int>(data.size()); |
78 EXPECT_EQ(size, file_util::WriteFile(test_file(), data.c_str(), size)); | 78 EXPECT_EQ(size, file_util::WriteFile(test_file(), data.c_str(), size)); |
79 } | 79 } |
80 | 80 |
81 FilePath test_file() { | 81 FilePath test_file() { |
82 return temp_dir_.path().AppendASCII("CloudPolicyCacheTest"); | 82 return temp_dir_.path().AppendASCII("CloudPolicyCacheTest"); |
83 } | 83 } |
84 | 84 |
| 85 const PolicyMapType& mandatory_policy(const CloudPolicyCache& cache) { |
| 86 return cache.mandatory_policy_; |
| 87 } |
| 88 |
| 89 const PolicyMapType& recommended_policy(const CloudPolicyCache& cache) { |
| 90 return cache.recommended_policy_; |
| 91 } |
| 92 |
85 bool Equals(const PolicyMapType& a, const PolicyMapType& b) const { | 93 bool Equals(const PolicyMapType& a, const PolicyMapType& b) const { |
86 return CloudPolicyCache::Equals(a, b); | 94 return CloudPolicyCache::Equals(a, b); |
87 } | 95 } |
88 | 96 |
89 MessageLoop loop_; | 97 MessageLoop loop_; |
90 | 98 |
91 private: | 99 private: |
92 ScopedTempDir temp_dir_; | 100 ScopedTempDir temp_dir_; |
93 BrowserThread ui_thread_; | 101 BrowserThread ui_thread_; |
94 BrowserThread file_thread_; | 102 BrowserThread file_thread_; |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
175 scoped_ptr<ListValue> decoded(DecodeStringList(string_list)); | 183 scoped_ptr<ListValue> decoded(DecodeStringList(string_list)); |
176 ListValue expected; | 184 ListValue expected; |
177 expected.Append(Value::CreateStringValue("ponies")); | 185 expected.Append(Value::CreateStringValue("ponies")); |
178 expected.Append(Value::CreateStringValue("more ponies")); | 186 expected.Append(Value::CreateStringValue("more ponies")); |
179 EXPECT_TRUE(decoded->Equals(&expected)); | 187 EXPECT_TRUE(decoded->Equals(&expected)); |
180 } | 188 } |
181 | 189 |
182 TEST_F(CloudPolicyCacheTest, Empty) { | 190 TEST_F(CloudPolicyCacheTest, Empty) { |
183 CloudPolicyCache cache(test_file()); | 191 CloudPolicyCache cache(test_file()); |
184 PolicyMapType empty; | 192 PolicyMapType empty; |
185 EXPECT_TRUE(Equals(empty, *cache.GetMandatoryPolicy())); | 193 EXPECT_TRUE(Equals(empty, mandatory_policy(cache))); |
186 EXPECT_TRUE(Equals(empty, *cache.GetRecommendedPolicy())); | 194 EXPECT_TRUE(Equals(empty, recommended_policy(cache))); |
187 EXPECT_EQ(base::Time(), cache.last_policy_refresh_time()); | 195 EXPECT_EQ(base::Time(), cache.last_policy_refresh_time()); |
188 } | 196 } |
189 | 197 |
190 TEST_F(CloudPolicyCacheTest, LoadNoFile) { | 198 TEST_F(CloudPolicyCacheTest, LoadNoFile) { |
191 CloudPolicyCache cache(test_file()); | 199 CloudPolicyCache cache(test_file()); |
192 cache.LoadPolicyFromFile(); | 200 cache.LoadFromFile(); |
193 PolicyMapType empty; | 201 PolicyMapType empty; |
194 EXPECT_TRUE(Equals(empty, *cache.GetMandatoryPolicy())); | 202 EXPECT_TRUE(Equals(empty, mandatory_policy(cache))); |
195 EXPECT_EQ(base::Time(), cache.last_policy_refresh_time()); | 203 EXPECT_EQ(base::Time(), cache.last_policy_refresh_time()); |
196 } | 204 } |
197 | 205 |
198 TEST_F(CloudPolicyCacheTest, RejectFuture) { | 206 TEST_F(CloudPolicyCacheTest, RejectFuture) { |
199 scoped_ptr<em::CloudPolicyResponse> policy_response( | 207 scoped_ptr<em::CloudPolicyResponse> policy_response( |
200 CreateHomepagePolicy("", base::Time::NowFromSystemTime() + | 208 CreateHomepagePolicy("", base::Time::NowFromSystemTime() + |
201 base::TimeDelta::FromMinutes(5), | 209 base::TimeDelta::FromMinutes(5), |
202 em::PolicyOptions::MANDATORY)); | 210 em::PolicyOptions::MANDATORY)); |
203 WritePolicy(*policy_response); | 211 WritePolicy(*policy_response); |
204 CloudPolicyCache cache(test_file()); | 212 CloudPolicyCache cache(test_file()); |
205 cache.LoadPolicyFromFile(); | 213 cache.LoadFromFile(); |
206 PolicyMapType empty; | 214 PolicyMapType empty; |
207 EXPECT_TRUE(Equals(empty, *cache.GetMandatoryPolicy())); | 215 EXPECT_TRUE(Equals(empty, mandatory_policy(cache))); |
208 EXPECT_EQ(base::Time(), cache.last_policy_refresh_time()); | 216 EXPECT_EQ(base::Time(), cache.last_policy_refresh_time()); |
209 } | 217 } |
210 | 218 |
211 TEST_F(CloudPolicyCacheTest, LoadWithFile) { | 219 TEST_F(CloudPolicyCacheTest, LoadWithFile) { |
212 scoped_ptr<em::CloudPolicyResponse> policy_response( | 220 scoped_ptr<em::CloudPolicyResponse> policy_response( |
213 CreateHomepagePolicy("", base::Time::NowFromSystemTime(), | 221 CreateHomepagePolicy("", base::Time::NowFromSystemTime(), |
214 em::PolicyOptions::MANDATORY)); | 222 em::PolicyOptions::MANDATORY)); |
215 WritePolicy(*policy_response); | 223 WritePolicy(*policy_response); |
216 CloudPolicyCache cache(test_file()); | 224 CloudPolicyCache cache(test_file()); |
217 cache.LoadPolicyFromFile(); | 225 cache.LoadFromFile(); |
218 PolicyMapType empty; | 226 PolicyMapType empty; |
219 EXPECT_TRUE(Equals(empty, *cache.GetMandatoryPolicy())); | 227 EXPECT_TRUE(Equals(empty, mandatory_policy(cache))); |
220 EXPECT_NE(base::Time(), cache.last_policy_refresh_time()); | 228 EXPECT_NE(base::Time(), cache.last_policy_refresh_time()); |
221 EXPECT_GE(base::Time::Now(), cache.last_policy_refresh_time()); | 229 EXPECT_GE(base::Time::Now(), cache.last_policy_refresh_time()); |
222 } | 230 } |
223 | 231 |
224 TEST_F(CloudPolicyCacheTest, LoadWithData) { | 232 TEST_F(CloudPolicyCacheTest, LoadWithData) { |
225 scoped_ptr<em::CloudPolicyResponse> policy( | 233 scoped_ptr<em::CloudPolicyResponse> policy( |
226 CreateHomepagePolicy("http://www.example.com", | 234 CreateHomepagePolicy("http://www.example.com", |
227 base::Time::NowFromSystemTime(), | 235 base::Time::NowFromSystemTime(), |
228 em::PolicyOptions::MANDATORY)); | 236 em::PolicyOptions::MANDATORY)); |
229 WritePolicy(*policy); | 237 WritePolicy(*policy); |
230 CloudPolicyCache cache(test_file()); | 238 CloudPolicyCache cache(test_file()); |
231 cache.LoadPolicyFromFile(); | 239 cache.LoadFromFile(); |
232 PolicyMapType expected; | 240 PolicyMapType expected; |
233 expected.insert( | 241 expected.insert( |
234 std::make_pair(kPolicyHomepageLocation, | 242 std::make_pair(kPolicyHomepageLocation, |
235 Value::CreateStringValue("http://www.example.com"))); | 243 Value::CreateStringValue("http://www.example.com"))); |
236 EXPECT_TRUE(Equals(expected, *cache.GetMandatoryPolicy())); | 244 EXPECT_TRUE(Equals(expected, mandatory_policy(cache))); |
237 } | 245 } |
238 | 246 |
239 TEST_F(CloudPolicyCacheTest, SetPolicy) { | 247 TEST_F(CloudPolicyCacheTest, SetPolicy) { |
240 CloudPolicyCache cache(test_file()); | 248 CloudPolicyCache cache(test_file()); |
241 scoped_ptr<em::CloudPolicyResponse> policy( | 249 scoped_ptr<em::CloudPolicyResponse> policy( |
242 CreateHomepagePolicy("http://www.example.com", | 250 CreateHomepagePolicy("http://www.example.com", |
243 base::Time::NowFromSystemTime(), | 251 base::Time::NowFromSystemTime(), |
244 em::PolicyOptions::MANDATORY)); | 252 em::PolicyOptions::MANDATORY)); |
245 EXPECT_TRUE(cache.SetPolicy(*policy)); | 253 EXPECT_TRUE(cache.SetPolicy(*policy)); |
246 scoped_ptr<em::CloudPolicyResponse> policy2( | 254 scoped_ptr<em::CloudPolicyResponse> policy2( |
247 CreateHomepagePolicy("http://www.example.com", | 255 CreateHomepagePolicy("http://www.example.com", |
248 base::Time::NowFromSystemTime(), | 256 base::Time::NowFromSystemTime(), |
249 em::PolicyOptions::MANDATORY)); | 257 em::PolicyOptions::MANDATORY)); |
250 EXPECT_FALSE(cache.SetPolicy(*policy2)); | 258 EXPECT_FALSE(cache.SetPolicy(*policy2)); |
251 PolicyMapType expected; | 259 PolicyMapType expected; |
252 expected.insert( | 260 expected.insert( |
253 std::make_pair(kPolicyHomepageLocation, | 261 std::make_pair(kPolicyHomepageLocation, |
254 Value::CreateStringValue("http://www.example.com"))); | 262 Value::CreateStringValue("http://www.example.com"))); |
255 PolicyMapType empty; | 263 PolicyMapType empty; |
256 EXPECT_TRUE(Equals(expected, *cache.GetMandatoryPolicy())); | 264 EXPECT_TRUE(Equals(expected, mandatory_policy(cache))); |
257 EXPECT_TRUE(Equals(empty, *cache.GetRecommendedPolicy())); | 265 EXPECT_TRUE(Equals(empty, recommended_policy(cache))); |
258 policy.reset(CreateHomepagePolicy("http://www.example.com", | 266 policy.reset(CreateHomepagePolicy("http://www.example.com", |
259 base::Time::NowFromSystemTime(), | 267 base::Time::NowFromSystemTime(), |
260 em::PolicyOptions::RECOMMENDED)); | 268 em::PolicyOptions::RECOMMENDED)); |
261 EXPECT_TRUE(cache.SetPolicy(*policy)); | 269 EXPECT_TRUE(cache.SetPolicy(*policy)); |
262 EXPECT_TRUE(Equals(expected, *cache.GetRecommendedPolicy())); | 270 EXPECT_TRUE(Equals(expected, recommended_policy(cache))); |
263 EXPECT_TRUE(Equals(empty, *cache.GetMandatoryPolicy())); | 271 EXPECT_TRUE(Equals(empty, mandatory_policy(cache))); |
264 } | 272 } |
265 | 273 |
266 TEST_F(CloudPolicyCacheTest, ResetPolicy) { | 274 TEST_F(CloudPolicyCacheTest, ResetPolicy) { |
267 CloudPolicyCache cache(test_file()); | 275 CloudPolicyCache cache(test_file()); |
268 | 276 |
269 scoped_ptr<em::CloudPolicyResponse> policy( | 277 scoped_ptr<em::CloudPolicyResponse> policy( |
270 CreateHomepagePolicy("http://www.example.com", | 278 CreateHomepagePolicy("http://www.example.com", |
271 base::Time::NowFromSystemTime(), | 279 base::Time::NowFromSystemTime(), |
272 em::PolicyOptions::MANDATORY)); | 280 em::PolicyOptions::MANDATORY)); |
273 EXPECT_TRUE(cache.SetPolicy(*policy)); | 281 EXPECT_TRUE(cache.SetPolicy(*policy)); |
274 PolicyMapType expected; | 282 PolicyMapType expected; |
275 expected.insert( | 283 expected.insert( |
276 std::make_pair(kPolicyHomepageLocation, | 284 std::make_pair(kPolicyHomepageLocation, |
277 Value::CreateStringValue("http://www.example.com"))); | 285 Value::CreateStringValue("http://www.example.com"))); |
278 EXPECT_TRUE(Equals(expected, *cache.GetMandatoryPolicy())); | 286 EXPECT_TRUE(Equals(expected, mandatory_policy(cache))); |
279 | 287 |
280 scoped_ptr<em::CloudPolicyResponse> empty_policy( | 288 scoped_ptr<em::CloudPolicyResponse> empty_policy( |
281 CreateHomepagePolicy("", base::Time::NowFromSystemTime(), | 289 CreateHomepagePolicy("", base::Time::NowFromSystemTime(), |
282 em::PolicyOptions::MANDATORY)); | 290 em::PolicyOptions::MANDATORY)); |
283 EXPECT_TRUE(cache.SetPolicy(*empty_policy)); | 291 EXPECT_TRUE(cache.SetPolicy(*empty_policy)); |
284 PolicyMapType empty; | 292 PolicyMapType empty; |
285 EXPECT_TRUE(Equals(empty, *cache.GetMandatoryPolicy())); | 293 EXPECT_TRUE(Equals(empty, mandatory_policy(cache))); |
286 } | 294 } |
287 | 295 |
288 TEST_F(CloudPolicyCacheTest, PersistPolicy) { | 296 TEST_F(CloudPolicyCacheTest, PersistPolicy) { |
289 { | 297 { |
290 CloudPolicyCache cache(test_file()); | 298 CloudPolicyCache cache(test_file()); |
291 scoped_ptr<em::CloudPolicyResponse> policy( | 299 scoped_ptr<em::CloudPolicyResponse> policy( |
292 CreateHomepagePolicy("http://www.example.com", | 300 CreateHomepagePolicy("http://www.example.com", |
293 base::Time::NowFromSystemTime(), | 301 base::Time::NowFromSystemTime(), |
294 em::PolicyOptions::MANDATORY)); | 302 em::PolicyOptions::MANDATORY)); |
295 cache.SetPolicy(*policy); | 303 cache.SetPolicy(*policy); |
296 } | 304 } |
297 | 305 |
298 loop_.RunAllPending(); | 306 loop_.RunAllPending(); |
299 | 307 |
300 EXPECT_TRUE(file_util::PathExists(test_file())); | 308 EXPECT_TRUE(file_util::PathExists(test_file())); |
301 CloudPolicyCache cache(test_file()); | 309 CloudPolicyCache cache(test_file()); |
302 cache.LoadPolicyFromFile(); | 310 cache.LoadFromFile(); |
303 PolicyMapType expected; | 311 PolicyMapType expected; |
304 expected.insert( | 312 expected.insert( |
305 std::make_pair(kPolicyHomepageLocation, | 313 std::make_pair(kPolicyHomepageLocation, |
306 Value::CreateStringValue("http://www.example.com"))); | 314 Value::CreateStringValue("http://www.example.com"))); |
307 EXPECT_TRUE(Equals(expected, *cache.GetMandatoryPolicy())); | 315 EXPECT_TRUE(Equals(expected, mandatory_policy(cache))); |
308 } | 316 } |
309 | 317 |
310 TEST_F(CloudPolicyCacheTest, FreshPolicyOverride) { | 318 TEST_F(CloudPolicyCacheTest, FreshPolicyOverride) { |
311 scoped_ptr<em::CloudPolicyResponse> policy( | 319 scoped_ptr<em::CloudPolicyResponse> policy( |
312 CreateHomepagePolicy("http://www.example.com", | 320 CreateHomepagePolicy("http://www.example.com", |
313 base::Time::NowFromSystemTime(), | 321 base::Time::NowFromSystemTime(), |
314 em::PolicyOptions::MANDATORY)); | 322 em::PolicyOptions::MANDATORY)); |
315 WritePolicy(*policy); | 323 WritePolicy(*policy); |
316 | 324 |
317 CloudPolicyCache cache(test_file()); | 325 CloudPolicyCache cache(test_file()); |
318 scoped_ptr<em::CloudPolicyResponse> updated_policy( | 326 scoped_ptr<em::CloudPolicyResponse> updated_policy( |
319 CreateHomepagePolicy("http://www.chromium.org", | 327 CreateHomepagePolicy("http://www.chromium.org", |
320 base::Time::NowFromSystemTime(), | 328 base::Time::NowFromSystemTime(), |
321 em::PolicyOptions::MANDATORY)); | 329 em::PolicyOptions::MANDATORY)); |
322 EXPECT_TRUE(cache.SetPolicy(*updated_policy)); | 330 EXPECT_TRUE(cache.SetPolicy(*updated_policy)); |
323 | 331 |
324 cache.LoadPolicyFromFile(); | 332 cache.LoadFromFile(); |
325 PolicyMapType expected; | 333 PolicyMapType expected; |
326 expected.insert( | 334 expected.insert( |
327 std::make_pair(kPolicyHomepageLocation, | 335 std::make_pair(kPolicyHomepageLocation, |
328 Value::CreateStringValue("http://www.chromium.org"))); | 336 Value::CreateStringValue("http://www.chromium.org"))); |
329 EXPECT_TRUE(Equals(expected, *cache.GetMandatoryPolicy())); | 337 EXPECT_TRUE(Equals(expected, mandatory_policy(cache))); |
330 } | 338 } |
331 | 339 |
332 } // namespace policy | 340 } // namespace policy |
OLD | NEW |