| 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 56490616c126655bad589c4b399f7a5d34a454e0..8dc6ce02132788b6f1783210b2e01ce6232f5264 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());
|
| -}
|
|
|