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

Side by Side Diff: trunk/src/chrome/browser/prefs/tracked/segregated_pref_store_unittest.cc

Issue 273243002: Revert 269415 "Introduce a new framework for back-and-forth trac..." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/prefs/tracked/segregated_pref_store.h" 5 #include "chrome/browser/prefs/tracked/segregated_pref_store.h"
6 6
7 #include <set> 7 #include <set>
8 #include <string> 8 #include <string>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 50
51 private: 51 private:
52 Data* data_; 52 Data* data_;
53 }; 53 };
54 54
55 } // namespace 55 } // namespace
56 56
57 class SegregatedPrefStoreTest : public testing::Test { 57 class SegregatedPrefStoreTest : public testing::Test {
58 public: 58 public:
59 SegregatedPrefStoreTest() 59 SegregatedPrefStoreTest()
60 : read_error_delegate_data_(false, 60 : initialization_callback_invoked_(false),
61 read_error_delegate_data_(false,
61 PersistentPrefStore::PREF_READ_ERROR_NONE), 62 PersistentPrefStore::PREF_READ_ERROR_NONE),
62 read_error_delegate_( 63 read_error_delegate_(
63 new MockReadErrorDelegate(&read_error_delegate_data_)) {} 64 new MockReadErrorDelegate(&read_error_delegate_data_)) {}
64 65
65 virtual void SetUp() OVERRIDE { 66 virtual void SetUp() OVERRIDE {
66 selected_store_ = new TestingPrefStore; 67 selected_store_ = new TestingPrefStore;
67 default_store_ = new TestingPrefStore; 68 default_store_ = new TestingPrefStore;
68 69
69 std::set<std::string> selected_pref_names; 70 std::set<std::string> selected_pref_names;
70 selected_pref_names.insert(kSelectedPref); 71 selected_pref_names.insert(kSelectedPref);
71 72
72 segregated_store_ = new SegregatedPrefStore( 73 segregated_store_ = new SegregatedPrefStore(
73 default_store_, 74 default_store_,
74 selected_store_, 75 selected_store_,
75 selected_pref_names); 76 selected_pref_names,
77 base::Bind(&SegregatedPrefStoreTest::InitializationCallback,
78 base::Unretained(this)));
76 79
77 segregated_store_->AddObserver(&observer_); 80 segregated_store_->AddObserver(&observer_);
78 } 81 }
79 82
80 virtual void TearDown() OVERRIDE { 83 virtual void TearDown() OVERRIDE {
81 segregated_store_->RemoveObserver(&observer_); 84 segregated_store_->RemoveObserver(&observer_);
82 } 85 }
83 86
84 protected: 87 protected:
85 scoped_ptr<PersistentPrefStore::ReadErrorDelegate> GetReadErrorDelegate() { 88 scoped_ptr<PersistentPrefStore::ReadErrorDelegate> GetReadErrorDelegate() {
86 EXPECT_TRUE(read_error_delegate_); 89 EXPECT_TRUE(read_error_delegate_);
87 return read_error_delegate_ 90 return read_error_delegate_
88 .PassAs<PersistentPrefStore::ReadErrorDelegate>(); 91 .PassAs<PersistentPrefStore::ReadErrorDelegate>();
89 } 92 }
90 93
91 PrefStoreObserverMock observer_; 94 PrefStoreObserverMock observer_;
95 bool initialization_callback_invoked_;
92 96
93 scoped_refptr<TestingPrefStore> default_store_; 97 scoped_refptr<TestingPrefStore> default_store_;
94 scoped_refptr<TestingPrefStore> selected_store_; 98 scoped_refptr<TestingPrefStore> selected_store_;
95 scoped_refptr<SegregatedPrefStore> segregated_store_; 99 scoped_refptr<SegregatedPrefStore> segregated_store_;
96 100
97 MockReadErrorDelegate::Data read_error_delegate_data_; 101 MockReadErrorDelegate::Data read_error_delegate_data_;
98 102
99 private: 103 private:
104 void InitializationCallback() {
105 EXPECT_FALSE(observer_.initialized);
106 EXPECT_FALSE(initialization_callback_invoked_);
107 initialization_callback_invoked_ = true;
108 }
109
100 scoped_ptr<MockReadErrorDelegate> read_error_delegate_; 110 scoped_ptr<MockReadErrorDelegate> read_error_delegate_;
101 }; 111 };
102 112
103 TEST_F(SegregatedPrefStoreTest, StoreValues) { 113 TEST_F(SegregatedPrefStoreTest, StoreValues) {
104 ASSERT_EQ(PersistentPrefStore::PREF_READ_ERROR_NONE, 114 ASSERT_EQ(PersistentPrefStore::PREF_READ_ERROR_NONE,
105 segregated_store_->ReadPrefs()); 115 segregated_store_->ReadPrefs());
106 116
107 // Properly stores new values. 117 // Properly stores new values.
108 segregated_store_->SetValue(kSelectedPref, new base::StringValue(kValue1)); 118 segregated_store_->SetValue(kSelectedPref, new base::StringValue(kValue1));
109 segregated_store_->SetValue(kUnselectedPref, new base::StringValue(kValue2)); 119 segregated_store_->SetValue(kUnselectedPref, new base::StringValue(kValue2));
(...skipping 28 matching lines...) Expand all
138 148
139 ASSERT_TRUE(selected_store_->GetValue(kSelectedPref, NULL)); 149 ASSERT_TRUE(selected_store_->GetValue(kSelectedPref, NULL));
140 ASSERT_FALSE(selected_store_->GetValue(kUnselectedPref, NULL)); 150 ASSERT_FALSE(selected_store_->GetValue(kUnselectedPref, NULL));
141 ASSERT_FALSE(default_store_->GetValue(kSelectedPref, NULL)); 151 ASSERT_FALSE(default_store_->GetValue(kSelectedPref, NULL));
142 ASSERT_TRUE(default_store_->GetValue(kUnselectedPref, NULL)); 152 ASSERT_TRUE(default_store_->GetValue(kUnselectedPref, NULL));
143 153
144 ASSERT_TRUE(segregated_store_->GetValue(kSelectedPref, NULL)); 154 ASSERT_TRUE(segregated_store_->GetValue(kSelectedPref, NULL));
145 ASSERT_TRUE(segregated_store_->GetValue(kUnselectedPref, NULL)); 155 ASSERT_TRUE(segregated_store_->GetValue(kUnselectedPref, NULL));
146 } 156 }
147 157
158 TEST_F(SegregatedPrefStoreTest, PreviouslySelected) {
159 selected_store_->SetValue(kUnselectedPref, new base::StringValue(kValue1));
160 segregated_store_->ReadPrefs();
161 // It will read from the selected store.
162 ASSERT_TRUE(segregated_store_->GetValue(kUnselectedPref, NULL));
163 ASSERT_TRUE(selected_store_->GetValue(kUnselectedPref, NULL));
164 ASSERT_FALSE(default_store_->GetValue(kUnselectedPref, NULL));
165
166 // But when we update the value...
167 segregated_store_->SetValue(kUnselectedPref, new base::StringValue(kValue2));
168 // ...it will be migrated.
169 ASSERT_TRUE(segregated_store_->GetValue(kUnselectedPref, NULL));
170 ASSERT_FALSE(selected_store_->GetValue(kUnselectedPref, NULL));
171 ASSERT_TRUE(default_store_->GetValue(kUnselectedPref, NULL));
172 }
173
148 TEST_F(SegregatedPrefStoreTest, Observer) { 174 TEST_F(SegregatedPrefStoreTest, Observer) {
149 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_NONE, 175 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_NONE,
150 segregated_store_->ReadPrefs()); 176 segregated_store_->ReadPrefs());
177 EXPECT_TRUE(initialization_callback_invoked_);
151 EXPECT_TRUE(observer_.initialized); 178 EXPECT_TRUE(observer_.initialized);
152 EXPECT_TRUE(observer_.initialization_success); 179 EXPECT_TRUE(observer_.initialization_success);
153 EXPECT_TRUE(observer_.changed_keys.empty()); 180 EXPECT_TRUE(observer_.changed_keys.empty());
154 segregated_store_->SetValue(kSelectedPref, new base::StringValue(kValue1)); 181 segregated_store_->SetValue(kSelectedPref, new base::StringValue(kValue1));
155 observer_.VerifyAndResetChangedKey(kSelectedPref); 182 observer_.VerifyAndResetChangedKey(kSelectedPref);
156 segregated_store_->SetValue(kUnselectedPref, new base::StringValue(kValue2)); 183 segregated_store_->SetValue(kUnselectedPref, new base::StringValue(kValue2));
157 observer_.VerifyAndResetChangedKey(kUnselectedPref); 184 observer_.VerifyAndResetChangedKey(kUnselectedPref);
158 } 185 }
159 186
160 TEST_F(SegregatedPrefStoreTest, SelectedPrefReadNoFileError) { 187 TEST_F(SegregatedPrefStoreTest, SelectedPrefReadNoFileError) {
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
263 selected_store_->SetBlockAsyncRead(true); 290 selected_store_->SetBlockAsyncRead(true);
264 default_store_->SetBlockAsyncRead(true); 291 default_store_->SetBlockAsyncRead(true);
265 EXPECT_FALSE(segregated_store_->IsInitializationComplete()); 292 EXPECT_FALSE(segregated_store_->IsInitializationComplete());
266 segregated_store_->ReadPrefsAsync(NULL); 293 segregated_store_->ReadPrefsAsync(NULL);
267 EXPECT_FALSE(segregated_store_->IsInitializationComplete()); 294 EXPECT_FALSE(segregated_store_->IsInitializationComplete());
268 selected_store_->SetBlockAsyncRead(false); 295 selected_store_->SetBlockAsyncRead(false);
269 EXPECT_FALSE(segregated_store_->IsInitializationComplete()); 296 EXPECT_FALSE(segregated_store_->IsInitializationComplete());
270 default_store_->SetBlockAsyncRead(false); 297 default_store_->SetBlockAsyncRead(false);
271 EXPECT_TRUE(segregated_store_->IsInitializationComplete()); 298 EXPECT_TRUE(segregated_store_->IsInitializationComplete());
272 } 299 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698