OLD | NEW |
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 Loading... |
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 Loading... |
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 } |
OLD | NEW |