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 6819e4653f42f3cb50924c31f98cbc7663ba35d6..17d939cf59311d843343ee2c6e40124ef7b2c5d5 100644 |
--- a/chrome/browser/prefs/pref_value_store_unittest.cc |
+++ b/chrome/browser/prefs/pref_value_store_unittest.cc |
@@ -9,6 +9,7 @@ |
#include "base/values.h" |
#include "chrome/browser/policy/configuration_policy_pref_store.h" |
#include "chrome/browser/policy/dummy_configuration_policy_provider.h" |
+#include "chrome/browser/prefs/pref_model_associator.h" |
#include "chrome/browser/prefs/pref_notifier.h" |
#include "chrome/browser/prefs/pref_value_store.h" |
#include "chrome/browser/prefs/testing_pref_store.h" |
@@ -31,6 +32,12 @@ class MockPrefNotifier : public PrefNotifier { |
MOCK_METHOD0(OnInitializationCompleted, void()); |
}; |
+// Allows to capture sync model associator interaction. |
+class MockPrefModelAssociator : public PrefModelAssociator { |
+ public: |
+ MOCK_METHOD1(ProcessPrefChange, void(const std::string&)); |
+}; |
+ |
} // namespace |
// Names of the preferences used in this test. |
@@ -121,6 +128,7 @@ class PrefValueStoreTest : public testing::Test { |
CreateRecommendedPlatformPrefs(); |
CreateRecommendedCloudPrefs(); |
CreateDefaultPrefs(); |
+ sync_associator_.reset(new MockPrefModelAssociator()); |
// Create a fresh PrefValueStore. |
pref_value_store_.reset(new PrefValueStore( |
@@ -132,6 +140,7 @@ class PrefValueStoreTest : public testing::Test { |
recommended_platform_pref_store_, |
recommended_cloud_pref_store_, |
default_pref_store_, |
+ sync_associator_.get(), |
&pref_notifier_)); |
} |
@@ -276,6 +285,7 @@ class PrefValueStoreTest : public testing::Test { |
} |
MockPrefNotifier pref_notifier_; |
+ scoped_ptr<MockPrefModelAssociator> sync_associator_; |
scoped_ptr<PrefValueStore> pref_value_store_; |
scoped_refptr<TestingPrefStore> managed_platform_pref_store_; |
@@ -365,11 +375,15 @@ TEST_F(PrefValueStoreTest, GetValue) { |
TEST_F(PrefValueStoreTest, PrefChanges) { |
// Check pref controlled by highest-priority store. |
EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kManagedPlatformPref)); |
+ EXPECT_CALL(*sync_associator_, |
+ ProcessPrefChange(prefs::kManagedPlatformPref)); |
managed_platform_pref_store_->NotifyPrefValueChanged( |
prefs::kManagedPlatformPref); |
Mock::VerifyAndClearExpectations(&pref_notifier_); |
+ Mock::VerifyAndClearExpectations(sync_associator_.get()); |
EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_)).Times(0); |
+ EXPECT_CALL(*sync_associator_, ProcessPrefChange(_)).Times(0); |
managed_cloud_pref_store_->NotifyPrefValueChanged( |
prefs::kManagedPlatformPref); |
extension_pref_store_->NotifyPrefValueChanged( |
@@ -385,29 +399,41 @@ TEST_F(PrefValueStoreTest, PrefChanges) { |
default_pref_store_->NotifyPrefValueChanged( |
prefs::kManagedPlatformPref); |
Mock::VerifyAndClearExpectations(&pref_notifier_); |
+ Mock::VerifyAndClearExpectations(sync_associator_.get()); |
// Check pref controlled by user store. |
EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kUserPref)); |
+ EXPECT_CALL(*sync_associator_, ProcessPrefChange(prefs::kUserPref)); |
managed_platform_pref_store_->NotifyPrefValueChanged(prefs::kUserPref); |
Mock::VerifyAndClearExpectations(&pref_notifier_); |
+ Mock::VerifyAndClearExpectations(sync_associator_.get()); |
EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kUserPref)); |
+ EXPECT_CALL(*sync_associator_, ProcessPrefChange(prefs::kUserPref)); |
managed_cloud_pref_store_->NotifyPrefValueChanged(prefs::kUserPref); |
Mock::VerifyAndClearExpectations(&pref_notifier_); |
+ Mock::VerifyAndClearExpectations(sync_associator_.get()); |
EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kUserPref)); |
+ EXPECT_CALL(*sync_associator_, ProcessPrefChange(prefs::kUserPref)); |
extension_pref_store_->NotifyPrefValueChanged(prefs::kUserPref); |
Mock::VerifyAndClearExpectations(&pref_notifier_); |
+ Mock::VerifyAndClearExpectations(sync_associator_.get()); |
EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kUserPref)); |
+ EXPECT_CALL(*sync_associator_, ProcessPrefChange(prefs::kUserPref)); |
command_line_pref_store_->NotifyPrefValueChanged(prefs::kUserPref); |
Mock::VerifyAndClearExpectations(&pref_notifier_); |
+ Mock::VerifyAndClearExpectations(sync_associator_.get()); |
EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kUserPref)); |
+ EXPECT_CALL(*sync_associator_, ProcessPrefChange(prefs::kUserPref)); |
user_pref_store_->NotifyPrefValueChanged(prefs::kUserPref); |
Mock::VerifyAndClearExpectations(&pref_notifier_); |
+ Mock::VerifyAndClearExpectations(sync_associator_.get()); |
EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_)).Times(0); |
+ EXPECT_CALL(*sync_associator_, ProcessPrefChange(_)).Times(0); |
recommended_platform_pref_store_->NotifyPrefValueChanged( |
prefs::kUserPref); |
recommended_cloud_pref_store_->NotifyPrefValueChanged( |
@@ -415,39 +441,56 @@ TEST_F(PrefValueStoreTest, PrefChanges) { |
default_pref_store_->NotifyPrefValueChanged( |
prefs::kUserPref); |
Mock::VerifyAndClearExpectations(&pref_notifier_); |
+ Mock::VerifyAndClearExpectations(sync_associator_.get()); |
// Check pref controlled by default-pref store. |
EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kDefaultPref)); |
+ EXPECT_CALL(*sync_associator_, ProcessPrefChange(prefs::kDefaultPref)); |
managed_platform_pref_store_->NotifyPrefValueChanged(prefs::kDefaultPref); |
Mock::VerifyAndClearExpectations(&pref_notifier_); |
+ Mock::VerifyAndClearExpectations(sync_associator_.get()); |
EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kDefaultPref)); |
+ EXPECT_CALL(*sync_associator_, ProcessPrefChange(prefs::kDefaultPref)); |
managed_cloud_pref_store_->NotifyPrefValueChanged(prefs::kDefaultPref); |
Mock::VerifyAndClearExpectations(&pref_notifier_); |
+ Mock::VerifyAndClearExpectations(sync_associator_.get()); |
EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kDefaultPref)); |
+ EXPECT_CALL(*sync_associator_, ProcessPrefChange(prefs::kDefaultPref)); |
extension_pref_store_->NotifyPrefValueChanged(prefs::kDefaultPref); |
Mock::VerifyAndClearExpectations(&pref_notifier_); |
+ Mock::VerifyAndClearExpectations(sync_associator_.get()); |
EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kDefaultPref)); |
+ EXPECT_CALL(*sync_associator_, ProcessPrefChange(prefs::kDefaultPref)); |
command_line_pref_store_->NotifyPrefValueChanged(prefs::kDefaultPref); |
Mock::VerifyAndClearExpectations(&pref_notifier_); |
+ Mock::VerifyAndClearExpectations(sync_associator_.get()); |
EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kDefaultPref)); |
+ EXPECT_CALL(*sync_associator_, ProcessPrefChange(prefs::kDefaultPref)); |
user_pref_store_->NotifyPrefValueChanged(prefs::kDefaultPref); |
Mock::VerifyAndClearExpectations(&pref_notifier_); |
+ Mock::VerifyAndClearExpectations(sync_associator_.get()); |
EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kDefaultPref)); |
+ EXPECT_CALL(*sync_associator_, ProcessPrefChange(prefs::kDefaultPref)); |
recommended_platform_pref_store_->NotifyPrefValueChanged(prefs::kDefaultPref); |
Mock::VerifyAndClearExpectations(&pref_notifier_); |
+ Mock::VerifyAndClearExpectations(sync_associator_.get()); |
EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kDefaultPref)); |
+ EXPECT_CALL(*sync_associator_, ProcessPrefChange(prefs::kDefaultPref)); |
recommended_cloud_pref_store_->NotifyPrefValueChanged(prefs::kDefaultPref); |
Mock::VerifyAndClearExpectations(&pref_notifier_); |
+ Mock::VerifyAndClearExpectations(sync_associator_.get()); |
EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kDefaultPref)); |
+ EXPECT_CALL(*sync_associator_, ProcessPrefChange(prefs::kDefaultPref)); |
default_pref_store_->NotifyPrefValueChanged(prefs::kDefaultPref); |
Mock::VerifyAndClearExpectations(&pref_notifier_); |
+ Mock::VerifyAndClearExpectations(sync_associator_.get()); |
} |
TEST_F(PrefValueStoreTest, OnInitializationCompleted) { |