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

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: fix expectations for android and cros 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 cca594799c2f82e2e6aa4bdfbd05afcac7a59e16..24b39669b83bbbf2b33e1b4eb264db0dcf347b97 100644
--- a/chrome/browser/prefs/profile_pref_store_manager_unittest.cc
+++ b/chrome/browser/prefs/profile_pref_store_manager_unittest.cc
@@ -22,7 +22,9 @@
#include "base/run_loop.h"
#include "base/strings/string_util.h"
#include "base/values.h"
+#include "chrome/browser/prefs/mock_validation_observer.h"
#include "chrome/browser/prefs/pref_hash_filter.h"
+#include "chrome/browser/prefs/tracked/tracked_preference_validation_observer.h"
#include "components/user_prefs/pref_registry_syncable.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -88,7 +90,8 @@ class ProfilePrefStoreManagerTest : public testing::Test {
: configuration_(kConfiguration,
kConfiguration + arraysize(kConfiguration)),
profile_pref_registry_(new user_prefs::PrefRegistrySyncable),
- registry_verifier_(profile_pref_registry_) {}
+ registry_verifier_(profile_pref_registry_),
+ validation_data_(new MockValidationObserver::ValidationData) {}
virtual void SetUp() OVERRIDE {
ProfilePrefStoreManager::RegisterPrefs(local_state_.registry());
@@ -138,14 +141,21 @@ class ProfilePrefStoreManagerTest : public testing::Test {
}
void InitializePrefs() {
+ // Provide a validation observer that collects events for verification.
+ scoped_ptr<MockValidationObserver> mock_validation_observer(
+ new MockValidationObserver(validation_data_));
+
// According to the implementation of ProfilePrefStoreManager, this is
// 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_observer
+ .PassAs<TrackedPreferenceValidationObserver>());
InitializePrefStore(pref_store);
- pref_store = NULL;
base::RunLoop().RunUntilIdle();
+
+ pref_store = NULL;
}
void DestroyPrefStore() {
@@ -187,7 +197,8 @@ class ProfilePrefStoreManagerTest : public testing::Test {
void LoadExistingPrefs() {
DestroyPrefStore();
pref_store_ = manager_->CreateProfilePrefStore(
- main_message_loop_.message_loop_proxy());
+ main_message_loop_.message_loop_proxy(),
+ scoped_ptr<TrackedPreferenceValidationObserver>());
pref_store_->AddObserver(&registry_verifier_);
pref_store_->ReadPrefs();
}
@@ -221,6 +232,14 @@ 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 (!validation_data_->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_;
@@ -229,6 +248,7 @@ class ProfilePrefStoreManagerTest : public testing::Test {
RegistryVerifier registry_verifier_;
scoped_ptr<ProfilePrefStoreManager> manager_;
scoped_refptr<PersistentPrefStore> pref_store_;
+ scoped_refptr<MockValidationObserver::ValidationData> validation_data_;
};
TEST_F(ProfilePrefStoreManagerTest, StoreValues) {
@@ -239,6 +259,8 @@ TEST_F(ProfilePrefStoreManagerTest, StoreValues) {
ExpectStringValueEquals(kTrackedAtomic, kFoobar);
ExpectStringValueEquals(kProtectedAtomic, kHelloWorld);
EXPECT_FALSE(WasResetRecorded());
+ ExpectValidationObserved(kTrackedAtomic);
+ ExpectValidationObserved(kProtectedAtomic);
}
TEST_F(ProfilePrefStoreManagerTest, GetPrefFilePathFromProfilePath) {
@@ -271,6 +293,9 @@ TEST_F(ProfilePrefStoreManagerTest, ProtectValues) {
pref_store_->GetValue(kProtectedAtomic, NULL));
EXPECT_EQ(ProfilePrefStoreManager::kPlatformSupportsPreferenceTracking,
WasResetRecorded());
+
+ ExpectValidationObserved(kTrackedAtomic);
+ ExpectValidationObserved(kProtectedAtomic);
}
TEST_F(ProfilePrefStoreManagerTest, ResetPrefHashStore) {
@@ -288,6 +313,9 @@ TEST_F(ProfilePrefStoreManagerTest, ResetPrefHashStore) {
pref_store_->GetValue(kProtectedAtomic, NULL));
EXPECT_EQ(ProfilePrefStoreManager::kPlatformSupportsPreferenceTracking,
WasResetRecorded());
+
+ ExpectValidationObserved(kTrackedAtomic);
+ ExpectValidationObserved(kProtectedAtomic);
}
TEST_F(ProfilePrefStoreManagerTest, ResetAllPrefHashStores) {
@@ -305,6 +333,9 @@ TEST_F(ProfilePrefStoreManagerTest, ResetAllPrefHashStores) {
pref_store_->GetValue(kProtectedAtomic, NULL));
EXPECT_EQ(ProfilePrefStoreManager::kPlatformSupportsPreferenceTracking,
WasResetRecorded());
+
+ ExpectValidationObserved(kTrackedAtomic);
+ ExpectValidationObserved(kProtectedAtomic);
}
TEST_F(ProfilePrefStoreManagerTest, MigrateFromOneFile) {
@@ -360,6 +391,10 @@ TEST_F(ProfilePrefStoreManagerTest, InitializePrefsFromMasterPrefs) {
TEST_F(ProfilePrefStoreManagerTest, UnprotectedToProtected) {
InitializePrefs();
+
+ ExpectValidationObserved(kTrackedAtomic);
+ ExpectValidationObserved(kProtectedAtomic);
+
LoadExistingPrefs();
ExpectStringValueEquals(kUnprotectedPref, kFoobar);
@@ -403,6 +438,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,
@@ -430,6 +468,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