Index: chrome/browser/prefs/profile_pref_store_manager_unittest.cc |
diff --git a/chrome/browser/prefs/profile_pref_store_manager_unittest.cc b/chrome/browser/prefs/profile_pref_store_manager_unittest.cc |
index 6f4c3756d4f26aab1e2eda83c6031432ab058919..8c785befcf90085c18f828ce8f63289e18c4f8a2 100644 |
--- a/chrome/browser/prefs/profile_pref_store_manager_unittest.cc |
+++ b/chrome/browser/prefs/profile_pref_store_manager_unittest.cc |
@@ -22,6 +22,7 @@ |
#include "base/run_loop.h" |
#include "base/strings/string_util.h" |
#include "base/values.h" |
+#include "chrome/browser/prefs/mock_validation_delegate.h" |
#include "chrome/browser/prefs/pref_hash_filter.h" |
#include "chrome/common/pref_names.h" |
#include "components/pref_registry/pref_registry_syncable.h" |
@@ -154,7 +155,8 @@ class ProfilePrefStoreManagerTest : public testing::Test { |
// actually a SegregatedPrefStore backed by two underlying pref stores. |
scoped_refptr<PersistentPrefStore> pref_store = |
manager_->CreateProfilePrefStore( |
- main_message_loop_.message_loop_proxy()); |
+ main_message_loop_.message_loop_proxy(), |
+ &mock_validation_delegate_); |
InitializePrefStore(pref_store); |
pref_store = NULL; |
base::RunLoop().RunUntilIdle(); |
@@ -199,7 +201,7 @@ class ProfilePrefStoreManagerTest : public testing::Test { |
void LoadExistingPrefs() { |
DestroyPrefStore(); |
pref_store_ = manager_->CreateProfilePrefStore( |
- main_message_loop_.message_loop_proxy()); |
+ main_message_loop_.message_loop_proxy(), NULL); |
pref_store_->AddObserver(®istry_verifier_); |
pref_store_->ReadPrefs(); |
} |
@@ -233,12 +235,21 @@ class ProfilePrefStoreManagerTest : public testing::Test { |
} |
} |
+ void ExpectValidationObserved(const std::string& pref_path) { |
+ // No validations are expected for platforms that do not support tracking. |
+ if (!ProfilePrefStoreManager::kPlatformSupportsPreferenceTracking) |
+ return; |
+ if (!mock_validation_delegate_.GetEventForPath(pref_path)) |
+ ADD_FAILURE() << "No validation observed for preference: " << pref_path; |
+ } |
+ |
base::MessageLoop main_message_loop_; |
std::vector<PrefHashFilter::TrackedPreferenceMetadata> configuration_; |
base::ScopedTempDir profile_dir_; |
TestingPrefServiceSimple local_state_; |
scoped_refptr<user_prefs::PrefRegistrySyncable> profile_pref_registry_; |
RegistryVerifier registry_verifier_; |
+ MockValidationDelegate mock_validation_delegate_; |
scoped_ptr<ProfilePrefStoreManager> manager_; |
scoped_refptr<PersistentPrefStore> pref_store_; |
}; |
@@ -251,6 +262,8 @@ TEST_F(ProfilePrefStoreManagerTest, StoreValues) { |
ExpectStringValueEquals(kTrackedAtomic, kFoobar); |
ExpectStringValueEquals(kProtectedAtomic, kHelloWorld); |
EXPECT_FALSE(WasResetRecorded()); |
+ ExpectValidationObserved(kTrackedAtomic); |
+ ExpectValidationObserved(kProtectedAtomic); |
} |
TEST_F(ProfilePrefStoreManagerTest, GetPrefFilePathFromProfilePath) { |
@@ -283,6 +296,9 @@ TEST_F(ProfilePrefStoreManagerTest, ProtectValues) { |
pref_store_->GetValue(kProtectedAtomic, NULL)); |
EXPECT_EQ(ProfilePrefStoreManager::kPlatformSupportsPreferenceTracking, |
WasResetRecorded()); |
+ |
+ ExpectValidationObserved(kTrackedAtomic); |
+ ExpectValidationObserved(kProtectedAtomic); |
} |
TEST_F(ProfilePrefStoreManagerTest, ResetPrefHashStore) { |
@@ -300,6 +316,9 @@ TEST_F(ProfilePrefStoreManagerTest, ResetPrefHashStore) { |
pref_store_->GetValue(kProtectedAtomic, NULL)); |
EXPECT_EQ(ProfilePrefStoreManager::kPlatformSupportsPreferenceTracking, |
WasResetRecorded()); |
+ |
+ ExpectValidationObserved(kTrackedAtomic); |
+ ExpectValidationObserved(kProtectedAtomic); |
} |
TEST_F(ProfilePrefStoreManagerTest, ResetAllPrefHashStores) { |
@@ -317,6 +336,9 @@ TEST_F(ProfilePrefStoreManagerTest, ResetAllPrefHashStores) { |
pref_store_->GetValue(kProtectedAtomic, NULL)); |
EXPECT_EQ(ProfilePrefStoreManager::kPlatformSupportsPreferenceTracking, |
WasResetRecorded()); |
+ |
+ ExpectValidationObserved(kTrackedAtomic); |
+ ExpectValidationObserved(kProtectedAtomic); |
} |
TEST_F(ProfilePrefStoreManagerTest, MigrateFromOneFile) { |
@@ -372,6 +394,10 @@ TEST_F(ProfilePrefStoreManagerTest, InitializePrefsFromMasterPrefs) { |
TEST_F(ProfilePrefStoreManagerTest, UnprotectedToProtected) { |
InitializePrefs(); |
+ |
+ ExpectValidationObserved(kTrackedAtomic); |
+ ExpectValidationObserved(kProtectedAtomic); |
+ |
LoadExistingPrefs(); |
ExpectStringValueEquals(kUnprotectedPref, kFoobar); |
@@ -415,6 +441,9 @@ TEST_F(ProfilePrefStoreManagerTest, UnprotectedToProtected) { |
TEST_F(ProfilePrefStoreManagerTest, UnprotectedToProtectedWithoutTrust) { |
InitializePrefs(); |
+ ExpectValidationObserved(kTrackedAtomic); |
+ ExpectValidationObserved(kProtectedAtomic); |
+ |
// Now update the configuration to protect it. |
PrefHashFilter::TrackedPreferenceMetadata new_protected = { |
kExtraReportingId, kUnprotectedPref, PrefHashFilter::ENFORCE_ON_LOAD, |
@@ -438,6 +467,10 @@ TEST_F(ProfilePrefStoreManagerTest, UnprotectedToProtectedWithoutTrust) { |
// preference's protection state changes from protected to unprotected. |
TEST_F(ProfilePrefStoreManagerTest, ProtectedToUnprotected) { |
InitializePrefs(); |
+ |
+ ExpectValidationObserved(kTrackedAtomic); |
+ ExpectValidationObserved(kProtectedAtomic); |
+ |
DestroyPrefStore(); |
// Unconfigure protection for kProtectedAtomic |