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

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

Issue 266553002: Add TrackedPreferenceValidationDelegate (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: sync to r272759 Created 6 years, 7 months 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/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(&registry_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

Powered by Google App Engine
This is Rietveld 408576698