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 |