Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3883)

Unified Diff: chrome/browser/prefs/pref_value_store_unittest.cc

Issue 6074003: Handle policy refresh internally in ConfigurationPolicyPrefStore. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix nit Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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());
-}

Powered by Google App Engine
This is Rietveld 408576698