| Index: chrome/browser/prefs/pref_hash_filter_unittest.cc
|
| ===================================================================
|
| --- chrome/browser/prefs/pref_hash_filter_unittest.cc (revision 285907)
|
| +++ chrome/browser/prefs/pref_hash_filter_unittest.cc (working copy)
|
| @@ -348,7 +348,8 @@
|
| public:
|
| PrefHashFilterTest() : mock_pref_hash_store_(NULL),
|
| pref_store_contents_(new base::DictionaryValue),
|
| - last_filter_on_load_modified_prefs_(false) {}
|
| + last_filter_on_load_modified_prefs_(false),
|
| + reset_recorded_(false) {}
|
|
|
| virtual void SetUp() OVERRIDE {
|
| // Construct a PrefHashFilter and MockPrefHashStore for the test.
|
| @@ -364,16 +365,21 @@
|
| scoped_ptr<MockPrefHashStore> temp_mock_pref_hash_store(
|
| new MockPrefHashStore);
|
| mock_pref_hash_store_ = temp_mock_pref_hash_store.get();
|
| - pref_hash_filter_.reset(
|
| - new PrefHashFilter(temp_mock_pref_hash_store.PassAs<PrefHashStore>(),
|
| - configuration,
|
| - &mock_validation_delegate_,
|
| - arraysize(kTestTrackedPrefs),
|
| - true));
|
| + pref_hash_filter_.reset(new PrefHashFilter(
|
| + temp_mock_pref_hash_store.PassAs<PrefHashStore>(),
|
| + configuration,
|
| + base::Bind(&PrefHashFilterTest::RecordReset, base::Unretained(this)),
|
| + &mock_validation_delegate_,
|
| + arraysize(kTestTrackedPrefs),
|
| + true));
|
| }
|
|
|
| - bool RecordedReset() {
|
| - return pref_store_contents_->Get(prefs::kPreferenceResetTime, NULL);
|
| + // Verifies whether a reset was reported by the PrefHashFiler. Also verifies
|
| + // that kPreferenceResetTime was set (or not) accordingly.
|
| + void VerifyRecordedReset(bool reset_expected) {
|
| + EXPECT_EQ(reset_expected, reset_recorded_);
|
| + EXPECT_EQ(reset_expected,
|
| + pref_store_contents_->Get(prefs::kPreferenceResetTime, NULL));
|
| }
|
|
|
| // Calls FilterOnLoad() on |pref_hash_Filter_|. |pref_store_contents_| is
|
| @@ -404,6 +410,15 @@
|
| EXPECT_EQ(expected_schedule_write, schedule_write);
|
| }
|
|
|
| + void RecordReset() {
|
| + // As-is |reset_recorded_| is only designed to remember a single reset, make
|
| + // sure none was previously recorded.
|
| + EXPECT_FALSE(reset_recorded_);
|
| + reset_recorded_ = true;
|
| + }
|
| +
|
| + bool reset_recorded_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(PrefHashFilterTest);
|
| };
|
|
|
| @@ -421,7 +436,7 @@
|
| kTestTrackedPrefs[i].name).first);
|
| }
|
| ASSERT_EQ(1u, mock_pref_hash_store_->transactions_performed());
|
| - ASSERT_FALSE(RecordedReset());
|
| + VerifyRecordedReset(false);
|
|
|
| // Delegate saw all paths, and all unchanged.
|
| ASSERT_EQ(arraysize(kTestTrackedPrefs),
|
| @@ -450,7 +465,7 @@
|
| ASSERT_EQ(PrefHashFilter::TRACKING_STRATEGY_ATOMIC, stored_value.second);
|
|
|
| ASSERT_EQ(1u, mock_pref_hash_store_->transactions_performed());
|
| - ASSERT_FALSE(RecordedReset());
|
| + VerifyRecordedReset(false);
|
| }
|
|
|
| TEST_P(PrefHashFilterTest, FilterSplitPrefUpdate) {
|
| @@ -474,7 +489,7 @@
|
| ASSERT_EQ(PrefHashFilter::TRACKING_STRATEGY_SPLIT, stored_value.second);
|
|
|
| ASSERT_EQ(1u, mock_pref_hash_store_->transactions_performed());
|
| - ASSERT_FALSE(RecordedReset());
|
| + VerifyRecordedReset(false);
|
| }
|
|
|
| TEST_P(PrefHashFilterTest, FilterUntrackedPrefUpdate) {
|
| @@ -644,7 +659,7 @@
|
| ASSERT_FALSE(pref_store_contents_->Get(kSplitPref, NULL));
|
| ASSERT_EQ(NULL, stored_split_value.first);
|
|
|
| - ASSERT_TRUE(RecordedReset());
|
| + VerifyRecordedReset(true);
|
| } else {
|
| // Otherwise the values should have remained intact and the hashes should
|
| // have been updated to match them.
|
| @@ -658,7 +673,7 @@
|
| ASSERT_EQ(dict_value, split_value_in_store);
|
| ASSERT_EQ(dict_value, stored_split_value.first);
|
|
|
| - ASSERT_FALSE(RecordedReset());
|
| + VerifyRecordedReset(false);
|
| }
|
| }
|
|
|
| @@ -771,7 +786,7 @@
|
| ASSERT_TRUE(dict_value->HasKey("d"));
|
| ASSERT_EQ(dict_value, stored_split_value.first);
|
|
|
| - ASSERT_TRUE(RecordedReset());
|
| + VerifyRecordedReset(true);
|
| } else {
|
| // Otherwise the value should have remained intact and the hash should have
|
| // been updated to match it.
|
| @@ -790,7 +805,7 @@
|
| ASSERT_TRUE(dict_value->HasKey("d"));
|
| ASSERT_EQ(dict_value, stored_split_value.first);
|
|
|
| - ASSERT_FALSE(RecordedReset());
|
| + VerifyRecordedReset(false);
|
| }
|
| }
|
|
|
| @@ -873,7 +888,7 @@
|
| ASSERT_FALSE(pref_store_contents_->Get(kAtomicPref, NULL));
|
| ASSERT_EQ(NULL, stored_atomic_value.first);
|
|
|
| - ASSERT_TRUE(RecordedReset());
|
| + VerifyRecordedReset(true);
|
| } else {
|
| // Otherwise the value should have remained intact and the hash should have
|
| // been updated to match it.
|
| @@ -882,7 +897,7 @@
|
| ASSERT_EQ(list_value, atomic_value_in_store);
|
| ASSERT_EQ(list_value, stored_atomic_value.first);
|
|
|
| - ASSERT_FALSE(RecordedReset());
|
| + VerifyRecordedReset(false);
|
| }
|
| }
|
|
|
| @@ -942,7 +957,7 @@
|
| ASSERT_EQ(dict_value, split_value_in_store);
|
| ASSERT_EQ(dict_value, stored_split_value.first);
|
|
|
| - ASSERT_FALSE(RecordedReset());
|
| + VerifyRecordedReset(false);
|
| }
|
|
|
| TEST_P(PrefHashFilterTest, DontResetReportOnly) {
|
| @@ -1005,7 +1020,7 @@
|
| ASSERT_EQ(NULL, mock_pref_hash_store_->stored_value(kAtomicPref).first);
|
| ASSERT_EQ(NULL, mock_pref_hash_store_->stored_value(kAtomicPref2).first);
|
|
|
| - ASSERT_TRUE(RecordedReset());
|
| + VerifyRecordedReset(true);
|
| } else {
|
| const base::Value* value_in_store;
|
| const base::Value* value_in_store2;
|
| @@ -1018,7 +1033,7 @@
|
| ASSERT_EQ(int_value2,
|
| mock_pref_hash_store_->stored_value(kAtomicPref2).first);
|
|
|
| - ASSERT_FALSE(RecordedReset());
|
| + VerifyRecordedReset(false);
|
| }
|
| }
|
|
|
|
|