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

Side by Side Diff: chrome/browser/prefs/pref_value_store_unittest.cc

Issue 10821047: Provide access to recommended pref values (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 5 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 <string> 5 #include <string>
6 6
7 #include "base/memory/ref_counted.h" 7 #include "base/memory/ref_counted.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/values.h" 9 #include "base/values.h"
10 #include "chrome/browser/prefs/pref_model_associator.h" 10 #include "chrome/browser/prefs/pref_model_associator.h"
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 262
263 // Test getting a preference value that the |PrefValueStore| 263 // Test getting a preference value that the |PrefValueStore|
264 // does not contain. 264 // does not contain.
265 base::FundamentalValue tmp_dummy_value(true); 265 base::FundamentalValue tmp_dummy_value(true);
266 value = &tmp_dummy_value; 266 value = &tmp_dummy_value;
267 ASSERT_FALSE(pref_value_store_->GetValue(prefs::kMissingPref, 267 ASSERT_FALSE(pref_value_store_->GetValue(prefs::kMissingPref,
268 Value::TYPE_STRING, &value)); 268 Value::TYPE_STRING, &value));
269 ASSERT_TRUE(value == NULL); 269 ASSERT_TRUE(value == NULL);
270 } 270 }
271 271
272 TEST_F(PrefValueStoreTest, GetRecommendedValue) {
273 const Value* value;
274
275 // The following tests read a value from the PrefService. The preferences are
276 // set in a way such that all lower-priority stores have a value and we can
277 // test whether overrides do not clutter the recommended value.
278
279 // Test getting recommended value when a managed value is present.
280 value = NULL;
281 ASSERT_TRUE(pref_value_store_->GetRecommendedValue(
282 prefs::kManagedPref,
283 Value::TYPE_STRING, &value));
284 std::string actual_str_value;
285 EXPECT_TRUE(value->GetAsString(&actual_str_value));
286 EXPECT_EQ(recommended_pref::kManagedValue, actual_str_value);
287
288 // Test getting recommended value when an extension value is present.
289 value = NULL;
290 ASSERT_TRUE(pref_value_store_->GetRecommendedValue(
291 prefs::kExtensionPref,
292 Value::TYPE_STRING, &value));
293 EXPECT_TRUE(value->GetAsString(&actual_str_value));
294 EXPECT_EQ(recommended_pref::kExtensionValue, actual_str_value);
295
296 // Test getting recommended value when a command-line value is present.
297 value = NULL;
298 ASSERT_TRUE(pref_value_store_->GetRecommendedValue(
299 prefs::kCommandLinePref,
300 Value::TYPE_STRING, &value));
301 EXPECT_TRUE(value->GetAsString(&actual_str_value));
302 EXPECT_EQ(recommended_pref::kCommandLineValue, actual_str_value);
303
304 // Test getting recommended value when a user-set value is present.
305 value = NULL;
306 ASSERT_TRUE(pref_value_store_->GetRecommendedValue(
307 prefs::kUserPref,
308 Value::TYPE_STRING, &value));
309 EXPECT_TRUE(value->GetAsString(&actual_str_value));
310 EXPECT_EQ(recommended_pref::kUserValue, actual_str_value);
311
312 // Test getting recommended value when no higher-priority value is present.
313 value = NULL;
314 ASSERT_TRUE(pref_value_store_->GetRecommendedValue(
315 prefs::kRecommendedPref,
316 Value::TYPE_STRING, &value));
317 EXPECT_TRUE(value->GetAsString(&actual_str_value));
318 EXPECT_EQ(recommended_pref::kRecommendedValue,
319 actual_str_value);
320
321 // Test getting recommended value when no recommended value is present.
322 base::FundamentalValue tmp_dummy_value(true);
323 value = &tmp_dummy_value;
324 ASSERT_FALSE(pref_value_store_->GetRecommendedValue(
325 prefs::kDefaultPref,
326 Value::TYPE_STRING, &value));
327 ASSERT_TRUE(value == NULL);
328
329 // Test getting a preference value that the |PrefValueStore|
330 // does not contain.
331 value = &tmp_dummy_value;
332 ASSERT_FALSE(pref_value_store_->GetRecommendedValue(
333 prefs::kMissingPref,
334 Value::TYPE_STRING, &value));
335 ASSERT_TRUE(value == NULL);
336 }
337
272 TEST_F(PrefValueStoreTest, PrefChanges) { 338 TEST_F(PrefValueStoreTest, PrefChanges) {
273 // Check pref controlled by highest-priority store. 339 // Check pref controlled by highest-priority store.
274 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kManagedPref)); 340 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kManagedPref));
275 EXPECT_CALL(*sync_associator_, 341 EXPECT_CALL(*sync_associator_,
276 ProcessPrefChange(prefs::kManagedPref)); 342 ProcessPrefChange(prefs::kManagedPref));
277 managed_pref_store_->NotifyPrefValueChanged( 343 managed_pref_store_->NotifyPrefValueChanged(
278 prefs::kManagedPref); 344 prefs::kManagedPref);
279 Mock::VerifyAndClearExpectations(&pref_notifier_); 345 Mock::VerifyAndClearExpectations(&pref_notifier_);
280 Mock::VerifyAndClearExpectations(sync_associator_.get()); 346 Mock::VerifyAndClearExpectations(sync_associator_.get());
281 347
282 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_)).Times(0); 348 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_)).Times(0);
283 EXPECT_CALL(*sync_associator_, ProcessPrefChange(_)).Times(0); 349 EXPECT_CALL(*sync_associator_, ProcessPrefChange(_)).Times(0);
284 extension_pref_store_->NotifyPrefValueChanged( 350 extension_pref_store_->NotifyPrefValueChanged(prefs::kManagedPref);
285 prefs::kManagedPref); 351 command_line_pref_store_->NotifyPrefValueChanged(prefs::kManagedPref);
286 command_line_pref_store_->NotifyPrefValueChanged( 352 user_pref_store_->NotifyPrefValueChanged(prefs::kManagedPref);
287 prefs::kManagedPref);
288 user_pref_store_->NotifyPrefValueChanged(
289 prefs::kManagedPref);
290 recommended_pref_store_->NotifyPrefValueChanged(
291 prefs::kManagedPref);
292 default_pref_store_->NotifyPrefValueChanged(
293 prefs::kManagedPref);
294 Mock::VerifyAndClearExpectations(&pref_notifier_); 353 Mock::VerifyAndClearExpectations(&pref_notifier_);
295 Mock::VerifyAndClearExpectations(sync_associator_.get()); 354 Mock::VerifyAndClearExpectations(sync_associator_.get());
296 355
356 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kManagedPref));
357 EXPECT_CALL(*sync_associator_, ProcessPrefChange(_)).Times(0);
358 recommended_pref_store_->NotifyPrefValueChanged(prefs::kManagedPref);
359 Mock::VerifyAndClearExpectations(&pref_notifier_);
360 Mock::VerifyAndClearExpectations(sync_associator_.get());
361
362 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_)).Times(0);
363 EXPECT_CALL(*sync_associator_, ProcessPrefChange(_)).Times(0);
364 default_pref_store_->NotifyPrefValueChanged(prefs::kManagedPref);
365 Mock::VerifyAndClearExpectations(&pref_notifier_);
366 Mock::VerifyAndClearExpectations(sync_associator_.get());
367
297 // Check pref controlled by user store. 368 // Check pref controlled by user store.
298 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kUserPref)); 369 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kUserPref));
299 EXPECT_CALL(*sync_associator_, ProcessPrefChange(prefs::kUserPref)); 370 EXPECT_CALL(*sync_associator_, ProcessPrefChange(prefs::kUserPref));
300 managed_pref_store_->NotifyPrefValueChanged(prefs::kUserPref); 371 managed_pref_store_->NotifyPrefValueChanged(prefs::kUserPref);
301 Mock::VerifyAndClearExpectations(&pref_notifier_); 372 Mock::VerifyAndClearExpectations(&pref_notifier_);
302 Mock::VerifyAndClearExpectations(sync_associator_.get()); 373 Mock::VerifyAndClearExpectations(sync_associator_.get());
303 374
304 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kUserPref)); 375 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kUserPref));
305 EXPECT_CALL(*sync_associator_, ProcessPrefChange(prefs::kUserPref)); 376 EXPECT_CALL(*sync_associator_, ProcessPrefChange(prefs::kUserPref));
306 extension_pref_store_->NotifyPrefValueChanged(prefs::kUserPref); 377 extension_pref_store_->NotifyPrefValueChanged(prefs::kUserPref);
307 Mock::VerifyAndClearExpectations(&pref_notifier_); 378 Mock::VerifyAndClearExpectations(&pref_notifier_);
308 Mock::VerifyAndClearExpectations(sync_associator_.get()); 379 Mock::VerifyAndClearExpectations(sync_associator_.get());
309 380
310 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kUserPref)); 381 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kUserPref));
311 EXPECT_CALL(*sync_associator_, ProcessPrefChange(prefs::kUserPref)); 382 EXPECT_CALL(*sync_associator_, ProcessPrefChange(prefs::kUserPref));
312 command_line_pref_store_->NotifyPrefValueChanged(prefs::kUserPref); 383 command_line_pref_store_->NotifyPrefValueChanged(prefs::kUserPref);
313 Mock::VerifyAndClearExpectations(&pref_notifier_); 384 Mock::VerifyAndClearExpectations(&pref_notifier_);
314 Mock::VerifyAndClearExpectations(sync_associator_.get()); 385 Mock::VerifyAndClearExpectations(sync_associator_.get());
315 386
316 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kUserPref)); 387 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kUserPref));
317 EXPECT_CALL(*sync_associator_, ProcessPrefChange(prefs::kUserPref)); 388 EXPECT_CALL(*sync_associator_, ProcessPrefChange(prefs::kUserPref));
318 user_pref_store_->NotifyPrefValueChanged(prefs::kUserPref); 389 user_pref_store_->NotifyPrefValueChanged(prefs::kUserPref);
319 Mock::VerifyAndClearExpectations(&pref_notifier_); 390 Mock::VerifyAndClearExpectations(&pref_notifier_);
320 Mock::VerifyAndClearExpectations(sync_associator_.get()); 391 Mock::VerifyAndClearExpectations(sync_associator_.get());
321 392
322 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_)).Times(0); 393 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kUserPref));
323 EXPECT_CALL(*sync_associator_, ProcessPrefChange(_)).Times(0); 394 EXPECT_CALL(*sync_associator_, ProcessPrefChange(_)).Times(0);
324 recommended_pref_store_->NotifyPrefValueChanged( 395 recommended_pref_store_->NotifyPrefValueChanged(prefs::kUserPref);
325 prefs::kUserPref); 396 default_pref_store_->NotifyPrefValueChanged(prefs::kUserPref);
326 default_pref_store_->NotifyPrefValueChanged(
327 prefs::kUserPref);
328 Mock::VerifyAndClearExpectations(&pref_notifier_); 397 Mock::VerifyAndClearExpectations(&pref_notifier_);
329 Mock::VerifyAndClearExpectations(sync_associator_.get()); 398 Mock::VerifyAndClearExpectations(sync_associator_.get());
330 399
331 // Check pref controlled by default-pref store. 400 // Check pref controlled by default-pref store.
332 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kDefaultPref)); 401 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kDefaultPref));
333 EXPECT_CALL(*sync_associator_, ProcessPrefChange(prefs::kDefaultPref)); 402 EXPECT_CALL(*sync_associator_, ProcessPrefChange(prefs::kDefaultPref));
334 managed_pref_store_->NotifyPrefValueChanged(prefs::kDefaultPref); 403 managed_pref_store_->NotifyPrefValueChanged(prefs::kDefaultPref);
335 Mock::VerifyAndClearExpectations(&pref_notifier_); 404 Mock::VerifyAndClearExpectations(&pref_notifier_);
336 Mock::VerifyAndClearExpectations(sync_associator_.get()); 405 Mock::VerifyAndClearExpectations(sync_associator_.get());
337 406
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
526 prefs::kCommandLinePref)); 595 prefs::kCommandLinePref));
527 EXPECT_TRUE(pref_value_store_->PrefValueExtensionModifiable( 596 EXPECT_TRUE(pref_value_store_->PrefValueExtensionModifiable(
528 prefs::kUserPref)); 597 prefs::kUserPref));
529 EXPECT_TRUE(pref_value_store_->PrefValueExtensionModifiable( 598 EXPECT_TRUE(pref_value_store_->PrefValueExtensionModifiable(
530 prefs::kRecommendedPref)); 599 prefs::kRecommendedPref));
531 EXPECT_TRUE(pref_value_store_->PrefValueExtensionModifiable( 600 EXPECT_TRUE(pref_value_store_->PrefValueExtensionModifiable(
532 prefs::kDefaultPref)); 601 prefs::kDefaultPref));
533 EXPECT_TRUE(pref_value_store_->PrefValueExtensionModifiable( 602 EXPECT_TRUE(pref_value_store_->PrefValueExtensionModifiable(
534 prefs::kMissingPref)); 603 prefs::kMissingPref));
535 } 604 }
OLDNEW
« chrome/browser/prefs/pref_value_store.cc ('K') | « chrome/browser/prefs/pref_value_store.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698