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

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

Issue 220203011: Changes requested by gab for previously committed CLs. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Don't commit if we didn't make any changes. Created 6 years, 9 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
« no previous file with comments | « chrome/browser/prefs/pref_hash_filter.cc ('k') | chrome/browser/prefs/profile_pref_store_manager.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/prefs/pref_hash_filter_unittest.cc
diff --git a/chrome/browser/prefs/pref_hash_filter_unittest.cc b/chrome/browser/prefs/pref_hash_filter_unittest.cc
index 4fa0ab7233a7bebb631eff6c613b916e90e7e6fd..ce75d506af199397eebec4d01880ca2e78a0f080 100644
--- a/chrome/browser/prefs/pref_hash_filter_unittest.cc
+++ b/chrome/browser/prefs/pref_hash_filter_unittest.cc
@@ -29,6 +29,7 @@ namespace {
const char kAtomicPref[] = "atomic_pref";
const char kAtomicPref2[] = "atomic_pref2";
const char kAtomicPref3[] = "pref3";
+const char kAtomicPref4[] = "pref4";
const char kReportOnlyPref[] = "report_only";
const char kReportOnlySplitPref[] = "report_only_split_pref";
const char kSplitPref[] = "split_pref";
@@ -58,6 +59,10 @@ const PrefHashFilter::TrackedPreferenceMetadata kTestTrackedPrefs[] = {
5, kAtomicPref3, PrefHashFilter::ENFORCE_ON_LOAD,
PrefHashFilter::TRACKING_STRATEGY_ATOMIC
},
+ {
+ 6, kAtomicPref4, PrefHashFilter::ENFORCE_ON_LOAD,
+ PrefHashFilter::TRACKING_STRATEGY_ATOMIC
+ },
};
} // namespace
@@ -309,9 +314,9 @@ class PrefHashFilterTest
}
protected:
- // Creates a PrefHashFilter that uses a MockPrefHashStore. The
- // MockPrefHashStore (owned by the PrefHashFilter) is returned in
- // |mock_pref_hash_store|.
+ // Initializes |pref_hash_filter_| with a PrefHashFilter that uses a
+ // MockPrefHashStore. The raw pointer to the MockPrefHashStore (owned by the
+ // PrefHashFilter) is stored in |mock_pref_hash_store_|.
void InitializePrefHashFilter(const std::vector<
PrefHashFilter::TrackedPreferenceMetadata>& configuration) {
scoped_ptr<MockPrefHashStore> temp_mock_pref_hash_store(
@@ -877,21 +882,37 @@ TEST_P(PrefHashFilterTest, MigrateValuesTest) {
scoped_refptr<TestingPrefStore> source(new TestingPrefStore);
scoped_refptr<TestingPrefStore> destination(new TestingPrefStore);
+ // If enforcing, should be migrated.
source->SetString(kAtomicPref, "foobar");
- source->SetString(kAtomicPref2, "foobar2");
- destination->SetString(kAtomicPref2, "foobar2 preexisting");
- destination->SetString(kAtomicPref3, "foobar3");
- source->SetString(kReportOnlyPref, "helloworld");
-
mock_pref_hash_store_->SetCheckResult(kAtomicPref,
PrefHashStoreTransaction::UNCHANGED);
+
+ // If enforcing, should be discarded due to pre-existing value in
+ // |destination|.
+ source->SetString(kAtomicPref2, "foobar2");
mock_pref_hash_store_->SetCheckResult(kAtomicPref2,
PrefHashStoreTransaction::UNCHANGED);
+
+ // If enforcing, should be kept preferentially to value from |source|. If not
+ // enforcing, should still be unaffected.
+ destination->SetString(kAtomicPref2, "foobar2 preexisting");
+ // Should stay in |destination| in both scenarios.
+ destination->SetString(kAtomicPref3, "foobar3");
mock_pref_hash_store_->SetCheckResult(kAtomicPref3,
PrefHashStoreTransaction::UNCHANGED);
+
+ // When enforcing, should be discarded due to MAC mismatch. If not enforcing,
+ // stays in |source|.
+ source->SetString(kAtomicPref4, "foobar4");
+ mock_pref_hash_store_->SetCheckResult(kAtomicPref4,
+ PrefHashStoreTransaction::CHANGED);
+
+ // Should remain in |source| in both scenarios.
+ source->SetString(kReportOnlyPref, "helloworld");
mock_pref_hash_store_->SetCheckResult(kReportOnlyPref,
PrefHashStoreTransaction::UNCHANGED);
+ // Perform the migration.
pref_hash_filter_->MigrateValues(source, destination);
ASSERT_EQ(1u, mock_pref_hash_store_->transactions_performed());
@@ -901,6 +922,7 @@ TEST_P(PrefHashFilterTest, MigrateValuesTest) {
ASSERT_FALSE(source->GetValue(kAtomicPref, NULL));
ASSERT_FALSE(source->GetValue(kAtomicPref2, NULL));
ASSERT_FALSE(source->GetValue(kAtomicPref3, NULL));
+ ASSERT_FALSE(source->GetValue(kAtomicPref4, NULL));
ASSERT_TRUE(source->GetString(kReportOnlyPref, &value));
ASSERT_EQ("helloworld", value);
@@ -911,6 +933,7 @@ TEST_P(PrefHashFilterTest, MigrateValuesTest) {
ASSERT_TRUE(destination->GetString(kAtomicPref3, &value));
ASSERT_EQ("foobar3", value);
ASSERT_FALSE(destination->GetValue(kReportOnlyPref, NULL));
+ ASSERT_FALSE(destination->GetValue(kAtomicPref4, NULL));
} else {
std::string value;
@@ -919,13 +942,17 @@ TEST_P(PrefHashFilterTest, MigrateValuesTest) {
ASSERT_TRUE(source->GetString(kAtomicPref2, &value));
ASSERT_EQ("foobar2", value);
ASSERT_FALSE(source->GetString(kAtomicPref3, &value));
+ ASSERT_TRUE(source->GetString(kAtomicPref4, &value));
+ ASSERT_EQ("foobar4", value);
ASSERT_TRUE(source->GetString(kReportOnlyPref, &value));
ASSERT_EQ("helloworld", value);
ASSERT_FALSE(destination->GetValue(kAtomicPref, NULL));
ASSERT_TRUE(destination->GetString(kAtomicPref2, &value));
ASSERT_EQ("foobar2 preexisting", value);
- ASSERT_TRUE(destination->GetValue(kAtomicPref3, NULL));
+ ASSERT_TRUE(destination->GetString(kAtomicPref3, &value));
+ ASSERT_EQ("foobar3", value);
+ ASSERT_FALSE(destination->GetValue(kAtomicPref4, NULL));
ASSERT_FALSE(destination->GetValue(kReportOnlyPref, NULL));
}
}
« no previous file with comments | « chrome/browser/prefs/pref_hash_filter.cc ('k') | chrome/browser/prefs/profile_pref_store_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698