Index: chrome/browser/prefs/pref_value_store_unittest.cc |
diff --git a/chrome/browser/prefs/pref_value_store_unittest.cc b/chrome/browser/prefs/pref_value_store_unittest.cc |
index b78e0fc4aee368cb64eb80ed0e8e45a2be4c0d01..5c0fa536615c10db1557afb2f96f91ac0fa4c2d9 100644 |
--- a/chrome/browser/prefs/pref_value_store_unittest.cc |
+++ b/chrome/browser/prefs/pref_value_store_unittest.cc |
@@ -99,7 +99,7 @@ class PrefValueStoreTest : public testing::Test { |
CreateRecommendedPrefs(); |
CreateDefaultPrefs(); |
- // Create a new pref-value-store. |
+ // Create a fresh PrefValueStore. |
pref_value_store_ = new PrefValueStore( |
managed_platform_pref_store_, |
device_management_pref_store_, |
@@ -108,8 +108,7 @@ class PrefValueStoreTest : public testing::Test { |
user_pref_store_, |
recommended_pref_store_, |
default_pref_store_, |
- &pref_notifier_, |
- NULL); |
+ &pref_notifier_); |
// Register prefs with the PrefValueStore. |
pref_value_store_->RegisterPreferenceType(prefs::kApplicationLocale, |
@@ -619,222 +618,3 @@ TEST_F(PrefValueStoreTest, PrefValueFromDefaultStore) { |
EXPECT_FALSE( |
pref_value_store_->PrefValueFromDefaultStore(prefs::kMissingPref)); |
} |
- |
-// TODO(mnissler, danno): Clean this up when refactoring |
-// ConfigurationPolicyPrefStore. |
-class PrefValueStorePolicyRefreshTest : public testing::Test { |
- protected: |
- // Records preference changes. |
- class PrefChangeRecorder { |
- public: |
- void Record(const std::string& pref_name) { |
- changed_prefs_.insert(pref_name); |
- } |
- |
- void Clear() { |
- changed_prefs_.clear(); |
- } |
- |
- const std::set<std::string>& changed_prefs() { return changed_prefs_; } |
- |
- private: |
- std::set<std::string> changed_prefs_; |
- }; |
- |
- virtual void SetUp() { |
- using policy::ConfigurationPolicyPrefStore; |
- |
- ui_thread_.reset(new BrowserThread(BrowserThread::UI, &loop_)), |
- file_thread_.reset(new BrowserThread(BrowserThread::FILE, &loop_)), |
- policy_provider_.reset(new policy::DummyConfigurationPolicyProvider( |
- policy::ConfigurationPolicyPrefStore::GetChromePolicyDefinitionList())); |
- |
- ConfigurationPolicyPrefStore* managed_store = |
- NewConfigurationPolicyPrefStore(); |
- managed_store->prefs()->SetString(prefs::kHomePage, |
- managed_platform_pref::kHomepageValue); |
- expected_differing_paths_.insert(prefs::kHomePage); |
- |
- ConfigurationPolicyPrefStore* device_management_store = |
- NewConfigurationPolicyPrefStore(); |
- device_management_store->prefs()->SetString( |
- prefs::kDefaultSearchProviderName, |
- device_management_pref::kSearchProviderNameValue); |
- expected_differing_paths_.insert("default_search_provider"); |
- expected_differing_paths_.insert(prefs::kDefaultSearchProviderName); |
- |
- ConfigurationPolicyPrefStore* recommended_store = |
- NewConfigurationPolicyPrefStore(); |
- recommended_store->prefs()->SetInteger(prefs::kStabilityLaunchCount, |
- recommended_pref::kStabilityLaunchCountValue); |
- recommended_store->prefs()->SetBoolean(prefs::kRecommendedPref, |
- recommended_pref::kRecommendedPrefValue); |
- |
- expected_differing_paths_.insert("this"); |
- expected_differing_paths_.insert("this.pref"); |
- expected_differing_paths_.insert(prefs::kRecommendedPref); |
- expected_differing_paths_.insert("user_experience_metrics"); |
- expected_differing_paths_.insert("user_experience_metrics.stability"); |
- expected_differing_paths_.insert(prefs::kStabilityLaunchCount); |
- |
- pref_value_store_ = new PrefValueStore( |
- managed_store, |
- device_management_store, |
- NULL, |
- NULL, |
- new TestingPrefStore(), |
- recommended_store, |
- NULL, |
- &pref_notifier_, |
- NULL); |
- } |
- |
- virtual void TearDown() { |
- loop_.RunAllPending(); |
- pref_value_store_ = NULL; |
- file_thread_.reset(); |
- ui_thread_.reset(); |
- } |
- |
- // Creates a new ConfigurationPolicyPrefStore for testing. |
- policy::ConfigurationPolicyPrefStore* NewConfigurationPolicyPrefStore() { |
- return new policy::ConfigurationPolicyPrefStore(policy_provider_.get()); |
- } |
- |
- // A vector of the preferences paths in policy PrefStores that are set at the |
- // beginning of a test. Can be modified by the test to track changes that it |
- // makes to the preferences stored in the managed and recommended PrefStores. |
- std::set<std::string> expected_differing_paths_; |
- |
- MessageLoop loop_; |
- MockPrefNotifier pref_notifier_; |
- scoped_refptr<PrefValueStore> pref_value_store_; |
- |
- private: |
- scoped_ptr<BrowserThread> ui_thread_; |
- scoped_ptr<BrowserThread> file_thread_; |
- |
- scoped_ptr<policy::DummyConfigurationPolicyProvider> policy_provider_; |
-}; |
- |
-TEST_F(PrefValueStorePolicyRefreshTest, TestPolicyRefresh) { |
- // pref_value_store_ is initialized by PrefValueStoreTest to have values in |
- // the managed platform, device management and recommended stores. By |
- // replacing them with dummy stores, all of the paths of the prefs originally |
- // in the managed platform, device management and recommended stores should |
- // change. |
- pref_value_store_->RefreshPolicyPrefs(); |
- |
- PrefChangeRecorder recorder; |
- EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_)) |
- .WillRepeatedly(Invoke(&recorder, &PrefChangeRecorder::Record)); |
- loop_.RunAllPending(); |
- EXPECT_EQ(expected_differing_paths_, recorder.changed_prefs()); |
-} |
- |
-TEST_F(PrefValueStorePolicyRefreshTest, TestRefreshPolicyPrefsCompletion) { |
- using policy::ConfigurationPolicyPrefStore; |
- PrefChangeRecorder recorder; |
- EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_)) |
- .WillRepeatedly(Invoke(&recorder, &PrefChangeRecorder::Record)); |
- |
- // Test changed preferences in the managed platform store and removed |
- // preferences in the recommended store. In addition to "homepage", the other |
- // prefs that are set by default in the test class are removed by the |
- // DummyStore. |
- scoped_ptr<ConfigurationPolicyPrefStore> new_managed_platform_store( |
- NewConfigurationPolicyPrefStore()); |
- new_managed_platform_store->prefs()->SetString("homepage", |
- "some other changed homepage"); |
- |
- recorder.Clear(); |
- pref_value_store_->RefreshPolicyPrefsCompletion( |
- new_managed_platform_store.release(), |
- NewConfigurationPolicyPrefStore(), |
- NewConfigurationPolicyPrefStore()); |
- EXPECT_EQ(expected_differing_paths_, recorder.changed_prefs()); |
- |
- // Test properties that have been removed from the managed platform store. |
- // Homepage is still set in managed prefs. |
- expected_differing_paths_.clear(); |
- expected_differing_paths_.insert(prefs::kHomePage); |
- |
- recorder.Clear(); |
- pref_value_store_->RefreshPolicyPrefsCompletion( |
- NewConfigurationPolicyPrefStore(), |
- NewConfigurationPolicyPrefStore(), |
- NewConfigurationPolicyPrefStore()); |
- EXPECT_EQ(expected_differing_paths_, recorder.changed_prefs()); |
- |
- // Test properties that are added to the device management store. |
- expected_differing_paths_.clear(); |
- expected_differing_paths_.insert(prefs::kHomePage); |
- scoped_ptr<ConfigurationPolicyPrefStore> new_device_management_store( |
- NewConfigurationPolicyPrefStore()); |
- new_device_management_store->prefs()->SetString( |
- "homepage", "some other changed homepage"); |
- |
- recorder.Clear(); |
- pref_value_store_->RefreshPolicyPrefsCompletion( |
- NewConfigurationPolicyPrefStore(), |
- new_device_management_store.release(), |
- NewConfigurationPolicyPrefStore()); |
- EXPECT_EQ(expected_differing_paths_, recorder.changed_prefs()); |
- |
- // Test properties that are added to the recommended store. |
- scoped_ptr<ConfigurationPolicyPrefStore> new_recommended_store( |
- NewConfigurationPolicyPrefStore()); |
- new_recommended_store->prefs()->SetString("homepage", |
- "some other changed homepage 2"); |
- expected_differing_paths_.clear(); |
- expected_differing_paths_.insert(prefs::kHomePage); |
- |
- recorder.Clear(); |
- pref_value_store_->RefreshPolicyPrefsCompletion( |
- NewConfigurationPolicyPrefStore(), |
- NewConfigurationPolicyPrefStore(), |
- new_recommended_store.release()); |
- EXPECT_EQ(expected_differing_paths_, recorder.changed_prefs()); |
- |
- // Test adding a multi-key path. |
- new_managed_platform_store.reset(NewConfigurationPolicyPrefStore()); |
- new_managed_platform_store->prefs()->SetString("segment1.segment2", "value"); |
- expected_differing_paths_.clear(); |
- expected_differing_paths_.insert(prefs::kHomePage); |
- expected_differing_paths_.insert("segment1"); |
- expected_differing_paths_.insert("segment1.segment2"); |
- |
- recorder.Clear(); |
- pref_value_store_->RefreshPolicyPrefsCompletion( |
- new_managed_platform_store.release(), |
- NewConfigurationPolicyPrefStore(), |
- NewConfigurationPolicyPrefStore()); |
- EXPECT_EQ(expected_differing_paths_, recorder.changed_prefs()); |
-} |
- |
-TEST_F(PrefValueStorePolicyRefreshTest, TestConcurrentPolicyRefresh) { |
- PrefChangeRecorder recorder; |
- EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_)) |
- .WillRepeatedly(Invoke(&recorder, &PrefChangeRecorder::Record)); |
- |
- BrowserThread::PostTask( |
- BrowserThread::UI, FROM_HERE, |
- NewRunnableMethod( |
- pref_value_store_.get(), |
- &PrefValueStore::RefreshPolicyPrefs)); |
- |
- BrowserThread::PostTask( |
- BrowserThread::UI, FROM_HERE, |
- NewRunnableMethod( |
- pref_value_store_.get(), |
- &PrefValueStore::RefreshPolicyPrefs)); |
- |
- BrowserThread::PostTask( |
- BrowserThread::UI, FROM_HERE, |
- NewRunnableMethod( |
- pref_value_store_.get(), |
- &PrefValueStore::RefreshPolicyPrefs)); |
- |
- loop_.RunAllPending(); |
- EXPECT_EQ(expected_differing_paths_, recorder.changed_prefs()); |
-} |