| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 "base/scoped_ptr.h" | 5 #include "base/scoped_ptr.h" |
| 6 #include "base/values.h" | 6 #include "base/values.h" |
| 7 #include "chrome/browser/chrome_thread.h" | 7 #include "chrome/browser/chrome_thread.h" |
| 8 #include "chrome/browser/policy/configuration_policy_pref_store.h" | 8 #include "chrome/browser/policy/configuration_policy_pref_store.h" |
| 9 #include "chrome/browser/prefs/dummy_pref_store.h" | 9 #include "chrome/browser/prefs/dummy_pref_store.h" |
| 10 #include "chrome/browser/prefs/pref_value_store.h" | 10 #include "chrome/browser/prefs/pref_value_store.h" |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 126 Value::TYPE_INTEGER); | 126 Value::TYPE_INTEGER); |
| 127 pref_value_store_->RegisterPreferenceType(prefs::kRecommendedPref, | 127 pref_value_store_->RegisterPreferenceType(prefs::kRecommendedPref, |
| 128 Value::TYPE_BOOLEAN); | 128 Value::TYPE_BOOLEAN); |
| 129 pref_value_store_->RegisterPreferenceType(prefs::kSampleDict, | 129 pref_value_store_->RegisterPreferenceType(prefs::kSampleDict, |
| 130 Value::TYPE_DICTIONARY); | 130 Value::TYPE_DICTIONARY); |
| 131 pref_value_store_->RegisterPreferenceType(prefs::kSampleList, | 131 pref_value_store_->RegisterPreferenceType(prefs::kSampleList, |
| 132 Value::TYPE_LIST); | 132 Value::TYPE_LIST); |
| 133 pref_value_store_->RegisterPreferenceType(prefs::kDefaultPref, | 133 pref_value_store_->RegisterPreferenceType(prefs::kDefaultPref, |
| 134 Value::TYPE_INTEGER); | 134 Value::TYPE_INTEGER); |
| 135 | 135 |
| 136 ui_thread_.reset(new ChromeThread(ChromeThread::UI, &loop_)); | 136 ui_thread_.reset(new BrowserThread(BrowserThread::UI, &loop_)); |
| 137 file_thread_.reset(new ChromeThread(ChromeThread::FILE, &loop_)); | 137 file_thread_.reset(new BrowserThread(BrowserThread::FILE, &loop_)); |
| 138 } | 138 } |
| 139 | 139 |
| 140 // Creates a new dictionary and stores some sample user preferences | 140 // Creates a new dictionary and stores some sample user preferences |
| 141 // in it. | 141 // in it. |
| 142 DictionaryValue* CreateUserPrefs() { | 142 DictionaryValue* CreateUserPrefs() { |
| 143 DictionaryValue* user_prefs = new DictionaryValue(); | 143 DictionaryValue* user_prefs = new DictionaryValue(); |
| 144 user_prefs->SetBoolean(prefs::kDeleteCache, user_pref::kDeleteCacheValue); | 144 user_prefs->SetBoolean(prefs::kDeleteCache, user_pref::kDeleteCacheValue); |
| 145 user_prefs->SetInteger(prefs::kMaxTabs, user_pref::kMaxTabsValue); | 145 user_prefs->SetInteger(prefs::kMaxTabs, user_pref::kMaxTabsValue); |
| 146 user_prefs->SetString(prefs::kCurrentThemeID, | 146 user_prefs->SetString(prefs::kCurrentThemeID, |
| 147 user_pref::kCurrentThemeIDValue); | 147 user_pref::kCurrentThemeIDValue); |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 243 | 243 |
| 244 // Preferences are owned by the individual |DummyPrefStores|. | 244 // Preferences are owned by the individual |DummyPrefStores|. |
| 245 DictionaryValue* enforced_prefs_; | 245 DictionaryValue* enforced_prefs_; |
| 246 DictionaryValue* extension_prefs_; | 246 DictionaryValue* extension_prefs_; |
| 247 DictionaryValue* command_line_prefs_; | 247 DictionaryValue* command_line_prefs_; |
| 248 DictionaryValue* user_prefs_; | 248 DictionaryValue* user_prefs_; |
| 249 DictionaryValue* recommended_prefs_; | 249 DictionaryValue* recommended_prefs_; |
| 250 DictionaryValue* default_prefs_; | 250 DictionaryValue* default_prefs_; |
| 251 | 251 |
| 252 private: | 252 private: |
| 253 scoped_ptr<ChromeThread> ui_thread_; | 253 scoped_ptr<BrowserThread> ui_thread_; |
| 254 scoped_ptr<ChromeThread> file_thread_; | 254 scoped_ptr<BrowserThread> file_thread_; |
| 255 }; | 255 }; |
| 256 | 256 |
| 257 TEST_F(PrefValueStoreTest, IsReadOnly) { | 257 TEST_F(PrefValueStoreTest, IsReadOnly) { |
| 258 enforced_pref_store_->set_read_only(true); | 258 enforced_pref_store_->set_read_only(true); |
| 259 extension_pref_store_->set_read_only(true); | 259 extension_pref_store_->set_read_only(true); |
| 260 command_line_pref_store_->set_read_only(true); | 260 command_line_pref_store_->set_read_only(true); |
| 261 user_pref_store_->set_read_only(true); | 261 user_pref_store_->set_read_only(true); |
| 262 recommended_pref_store_->set_read_only(true); | 262 recommended_pref_store_->set_read_only(true); |
| 263 default_pref_store_->set_read_only(true); | 263 default_pref_store_->set_read_only(true); |
| 264 EXPECT_TRUE(pref_value_store_->ReadOnly()); | 264 EXPECT_TRUE(pref_value_store_->ReadOnly()); |
| (...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 633 pref_value_store_->PrefValueFromDefaultStore(prefs::kMissingPref)); | 633 pref_value_store_->PrefValueFromDefaultStore(prefs::kMissingPref)); |
| 634 } | 634 } |
| 635 | 635 |
| 636 TEST_F(PrefValueStoreTest, TestPolicyRefresh) { | 636 TEST_F(PrefValueStoreTest, TestPolicyRefresh) { |
| 637 // pref_value_store_ is initialized by PrefValueStoreTest to have values | 637 // pref_value_store_ is initialized by PrefValueStoreTest to have values |
| 638 // in both it's managed and recommended store. By replacing them with | 638 // in both it's managed and recommended store. By replacing them with |
| 639 // dummy stores, all of the paths of the prefs originally managed and | 639 // dummy stores, all of the paths of the prefs originally managed and |
| 640 // recommended stores should change. | 640 // recommended stores should change. |
| 641 MockPolicyRefreshCallback callback; | 641 MockPolicyRefreshCallback callback; |
| 642 EXPECT_CALL(callback, DoCallback(_)).Times(0); | 642 EXPECT_CALL(callback, DoCallback(_)).Times(0); |
| 643 ChromeThread::PostTask( | 643 BrowserThread::PostTask( |
| 644 ChromeThread::UI, FROM_HERE, | 644 BrowserThread::UI, FROM_HERE, |
| 645 NewRunnableMethod( | 645 NewRunnableMethod( |
| 646 pref_value_store_.get(), | 646 pref_value_store_.get(), |
| 647 &PrefValueStore::RefreshPolicyPrefs, | 647 &PrefValueStore::RefreshPolicyPrefs, |
| 648 new DummyPrefStore(), | 648 new DummyPrefStore(), |
| 649 new DummyPrefStore(), | 649 new DummyPrefStore(), |
| 650 NewCallback(&callback, | 650 NewCallback(&callback, |
| 651 &MockPolicyRefreshCallback::DoCallback))); | 651 &MockPolicyRefreshCallback::DoCallback))); |
| 652 Mock::VerifyAndClearExpectations(&callback); | 652 Mock::VerifyAndClearExpectations(&callback); |
| 653 EXPECT_CALL(callback, DoCallback(expected_differing_paths_)).Times(1); | 653 EXPECT_CALL(callback, DoCallback(expected_differing_paths_)).Times(1); |
| 654 loop_.RunAllPending(); | 654 loop_.RunAllPending(); |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 711 EXPECT_CALL(callback4, DoCallback(expected_differing_paths_)).Times(1); | 711 EXPECT_CALL(callback4, DoCallback(expected_differing_paths_)).Times(1); |
| 712 pref_value_store_->RefreshPolicyPrefsCompletion( | 712 pref_value_store_->RefreshPolicyPrefsCompletion( |
| 713 new_managed_store.release(), | 713 new_managed_store.release(), |
| 714 new DummyPrefStore(), | 714 new DummyPrefStore(), |
| 715 NewCallback(&callback4, | 715 NewCallback(&callback4, |
| 716 &MockPolicyRefreshCallback::DoCallback)); | 716 &MockPolicyRefreshCallback::DoCallback)); |
| 717 } | 717 } |
| 718 | 718 |
| 719 TEST_F(PrefValueStoreTest, TestConcurrentPolicyRefresh) { | 719 TEST_F(PrefValueStoreTest, TestConcurrentPolicyRefresh) { |
| 720 MockPolicyRefreshCallback callback1; | 720 MockPolicyRefreshCallback callback1; |
| 721 ChromeThread::PostTask( | 721 BrowserThread::PostTask( |
| 722 ChromeThread::UI, FROM_HERE, | 722 BrowserThread::UI, FROM_HERE, |
| 723 NewRunnableMethod( | 723 NewRunnableMethod( |
| 724 pref_value_store_.get(), | 724 pref_value_store_.get(), |
| 725 &PrefValueStore::RefreshPolicyPrefs, | 725 &PrefValueStore::RefreshPolicyPrefs, |
| 726 new DummyPrefStore(), | 726 new DummyPrefStore(), |
| 727 new DummyPrefStore(), | 727 new DummyPrefStore(), |
| 728 NewCallback(&callback1, | 728 NewCallback(&callback1, |
| 729 &MockPolicyRefreshCallback::DoCallback))); | 729 &MockPolicyRefreshCallback::DoCallback))); |
| 730 EXPECT_CALL(callback1, DoCallback(_)).Times(0); | 730 EXPECT_CALL(callback1, DoCallback(_)).Times(0); |
| 731 | 731 |
| 732 MockPolicyRefreshCallback callback2; | 732 MockPolicyRefreshCallback callback2; |
| 733 ChromeThread::PostTask( | 733 BrowserThread::PostTask( |
| 734 ChromeThread::UI, FROM_HERE, | 734 BrowserThread::UI, FROM_HERE, |
| 735 NewRunnableMethod( | 735 NewRunnableMethod( |
| 736 pref_value_store_.get(), | 736 pref_value_store_.get(), |
| 737 &PrefValueStore::RefreshPolicyPrefs, | 737 &PrefValueStore::RefreshPolicyPrefs, |
| 738 new DummyPrefStore(), | 738 new DummyPrefStore(), |
| 739 new DummyPrefStore(), | 739 new DummyPrefStore(), |
| 740 NewCallback(&callback2, | 740 NewCallback(&callback2, |
| 741 &MockPolicyRefreshCallback::DoCallback))); | 741 &MockPolicyRefreshCallback::DoCallback))); |
| 742 EXPECT_CALL(callback2, DoCallback(_)).Times(0); | 742 EXPECT_CALL(callback2, DoCallback(_)).Times(0); |
| 743 | 743 |
| 744 MockPolicyRefreshCallback callback3; | 744 MockPolicyRefreshCallback callback3; |
| 745 ChromeThread::PostTask( | 745 BrowserThread::PostTask( |
| 746 ChromeThread::UI, FROM_HERE, | 746 BrowserThread::UI, FROM_HERE, |
| 747 NewRunnableMethod( | 747 NewRunnableMethod( |
| 748 pref_value_store_.get(), | 748 pref_value_store_.get(), |
| 749 &PrefValueStore::RefreshPolicyPrefs, | 749 &PrefValueStore::RefreshPolicyPrefs, |
| 750 new DummyPrefStore(), | 750 new DummyPrefStore(), |
| 751 new DummyPrefStore(), | 751 new DummyPrefStore(), |
| 752 NewCallback(&callback3, | 752 NewCallback(&callback3, |
| 753 &MockPolicyRefreshCallback::DoCallback))); | 753 &MockPolicyRefreshCallback::DoCallback))); |
| 754 EXPECT_CALL(callback3, DoCallback(_)).Times(0); | 754 EXPECT_CALL(callback3, DoCallback(_)).Times(0); |
| 755 Mock::VerifyAndClearExpectations(&callback1); | 755 Mock::VerifyAndClearExpectations(&callback1); |
| 756 Mock::VerifyAndClearExpectations(&callback2); | 756 Mock::VerifyAndClearExpectations(&callback2); |
| 757 Mock::VerifyAndClearExpectations(&callback3); | 757 Mock::VerifyAndClearExpectations(&callback3); |
| 758 | 758 |
| 759 EXPECT_CALL(callback1, DoCallback(expected_differing_paths_)).Times(1); | 759 EXPECT_CALL(callback1, DoCallback(expected_differing_paths_)).Times(1); |
| 760 std::vector<std::string> no_differing_paths; | 760 std::vector<std::string> no_differing_paths; |
| 761 EXPECT_CALL(callback2, DoCallback(no_differing_paths)).Times(1); | 761 EXPECT_CALL(callback2, DoCallback(no_differing_paths)).Times(1); |
| 762 EXPECT_CALL(callback3, DoCallback(no_differing_paths)).Times(1); | 762 EXPECT_CALL(callback3, DoCallback(no_differing_paths)).Times(1); |
| 763 loop_.RunAllPending(); | 763 loop_.RunAllPending(); |
| 764 } | 764 } |
| OLD | NEW |