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

Side by Side Diff: components/user_prefs/tracked/segregated_pref_store_unittest.cc

Issue 1227973003: Componentize //chrome/browser/prefs/tracked. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased Created 5 years, 4 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
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 "components/user_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"
11 #include "base/callback.h" 11 #include "base/callback.h"
12 #include "base/memory/ref_counted.h" 12 #include "base/memory/ref_counted.h"
13 #include "base/memory/scoped_ptr.h" 13 #include "base/memory/scoped_ptr.h"
14 #include "base/prefs/persistent_pref_store.h" 14 #include "base/prefs/persistent_pref_store.h"
15 #include "base/prefs/pref_store_observer_mock.h" 15 #include "base/prefs/pref_store_observer_mock.h"
16 #include "base/prefs/testing_pref_store.h" 16 #include "base/prefs/testing_pref_store.h"
17 #include "base/values.h" 17 #include "base/values.h"
18 #include "chrome/browser/prefs/tracked/segregated_pref_store.h" 18 #include "components/user_prefs/tracked/segregated_pref_store.h"
19 #include "testing/gtest/include/gtest/gtest.h" 19 #include "testing/gtest/include/gtest/gtest.h"
20 20
21 namespace { 21 namespace {
22 22
23 const char kSelectedPref[] = "selected_pref"; 23 const char kSelectedPref[] = "selected_pref";
24 const char kUnselectedPref[] = "unselected_pref"; 24 const char kUnselectedPref[] = "unselected_pref";
25 25
26 const char kValue1[] = "value1"; 26 const char kValue1[] = "value1";
27 const char kValue2[] = "value2"; 27 const char kValue2[] = "value2";
28 28
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 read_error_delegate_( 62 read_error_delegate_(
63 new MockReadErrorDelegate(&read_error_delegate_data_)) {} 63 new MockReadErrorDelegate(&read_error_delegate_data_)) {}
64 64
65 void SetUp() override { 65 void SetUp() override {
66 selected_store_ = new TestingPrefStore; 66 selected_store_ = new TestingPrefStore;
67 default_store_ = new TestingPrefStore; 67 default_store_ = new TestingPrefStore;
68 68
69 std::set<std::string> selected_pref_names; 69 std::set<std::string> selected_pref_names;
70 selected_pref_names.insert(kSelectedPref); 70 selected_pref_names.insert(kSelectedPref);
71 71
72 segregated_store_ = new SegregatedPrefStore( 72 segregated_store_ = new SegregatedPrefStore(default_store_, selected_store_,
73 default_store_, 73 selected_pref_names);
74 selected_store_,
75 selected_pref_names);
76 74
77 segregated_store_->AddObserver(&observer_); 75 segregated_store_->AddObserver(&observer_);
78 } 76 }
79 77
80 void TearDown() override { segregated_store_->RemoveObserver(&observer_); } 78 void TearDown() override { segregated_store_->RemoveObserver(&observer_); }
81 79
82 protected: 80 protected:
83 scoped_ptr<PersistentPrefStore::ReadErrorDelegate> GetReadErrorDelegate() { 81 scoped_ptr<PersistentPrefStore::ReadErrorDelegate> GetReadErrorDelegate() {
84 EXPECT_TRUE(read_error_delegate_); 82 EXPECT_TRUE(read_error_delegate_);
85 return read_error_delegate_.Pass(); 83 return read_error_delegate_.Pass();
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 observer_.VerifyAndResetChangedKey(kSelectedPref); 159 observer_.VerifyAndResetChangedKey(kSelectedPref);
162 segregated_store_->SetValue(kUnselectedPref, 160 segregated_store_->SetValue(kUnselectedPref,
163 make_scoped_ptr(new base::StringValue(kValue2)), 161 make_scoped_ptr(new base::StringValue(kValue2)),
164 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); 162 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
165 observer_.VerifyAndResetChangedKey(kUnselectedPref); 163 observer_.VerifyAndResetChangedKey(kUnselectedPref);
166 } 164 }
167 165
168 TEST_F(SegregatedPrefStoreTest, SelectedPrefReadNoFileError) { 166 TEST_F(SegregatedPrefStoreTest, SelectedPrefReadNoFileError) {
169 // PREF_READ_ERROR_NO_FILE for the selected prefs file is silently converted 167 // PREF_READ_ERROR_NO_FILE for the selected prefs file is silently converted
170 // to PREF_READ_ERROR_NONE. 168 // to PREF_READ_ERROR_NONE.
171 selected_store_->set_read_error( 169 selected_store_->set_read_error(PersistentPrefStore::PREF_READ_ERROR_NO_FILE);
172 PersistentPrefStore::PREF_READ_ERROR_NO_FILE);
173 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_NONE, 170 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_NONE,
174 segregated_store_->ReadPrefs()); 171 segregated_store_->ReadPrefs());
175 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_NONE, 172 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_NONE,
176 segregated_store_->GetReadError()); 173 segregated_store_->GetReadError());
177 } 174 }
178 175
179 TEST_F(SegregatedPrefStoreTest, SelectedPrefReadError) { 176 TEST_F(SegregatedPrefStoreTest, SelectedPrefReadError) {
180 selected_store_->set_read_error( 177 selected_store_->set_read_error(
181 PersistentPrefStore::PREF_READ_ERROR_ACCESS_DENIED); 178 PersistentPrefStore::PREF_READ_ERROR_ACCESS_DENIED);
182 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_ACCESS_DENIED, 179 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_ACCESS_DENIED,
183 segregated_store_->ReadPrefs()); 180 segregated_store_->ReadPrefs());
184 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_ACCESS_DENIED, 181 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_ACCESS_DENIED,
185 segregated_store_->GetReadError()); 182 segregated_store_->GetReadError());
186 } 183 }
187 184
188 TEST_F(SegregatedPrefStoreTest, SelectedPrefReadNoFileErrorAsync) { 185 TEST_F(SegregatedPrefStoreTest, SelectedPrefReadNoFileErrorAsync) {
189 // PREF_READ_ERROR_NO_FILE for the selected prefs file is silently converted 186 // PREF_READ_ERROR_NO_FILE for the selected prefs file is silently converted
190 // to PREF_READ_ERROR_NONE. 187 // to PREF_READ_ERROR_NONE.
191 selected_store_->set_read_error( 188 selected_store_->set_read_error(PersistentPrefStore::PREF_READ_ERROR_NO_FILE);
192 PersistentPrefStore::PREF_READ_ERROR_NO_FILE);
193 189
194 default_store_->SetBlockAsyncRead(true); 190 default_store_->SetBlockAsyncRead(true);
195 191
196 EXPECT_FALSE(read_error_delegate_data_.invoked); 192 EXPECT_FALSE(read_error_delegate_data_.invoked);
197 193
198 segregated_store_->ReadPrefsAsync(GetReadErrorDelegate().release()); 194 segregated_store_->ReadPrefsAsync(GetReadErrorDelegate().release());
199 195
200 EXPECT_FALSE(read_error_delegate_data_.invoked); 196 EXPECT_FALSE(read_error_delegate_data_.invoked);
201 197
202 default_store_->SetBlockAsyncRead(false); 198 default_store_->SetBlockAsyncRead(false);
203 199
204 // ReadErrorDelegate is not invoked for ERROR_NONE. 200 // ReadErrorDelegate is not invoked for ERROR_NONE.
205 EXPECT_FALSE(read_error_delegate_data_.invoked); 201 EXPECT_FALSE(read_error_delegate_data_.invoked);
206 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_NONE, 202 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_NONE,
207 segregated_store_->GetReadError()); 203 segregated_store_->GetReadError());
208 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_NONE, 204 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_NONE,
209 segregated_store_->GetReadError()); 205 segregated_store_->GetReadError());
210 } 206 }
211 207
212 TEST_F(SegregatedPrefStoreTest, UnselectedPrefReadNoFileError) { 208 TEST_F(SegregatedPrefStoreTest, UnselectedPrefReadNoFileError) {
213 default_store_->set_read_error( 209 default_store_->set_read_error(PersistentPrefStore::PREF_READ_ERROR_NO_FILE);
214 PersistentPrefStore::PREF_READ_ERROR_NO_FILE);
215 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_NO_FILE, 210 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_NO_FILE,
216 segregated_store_->ReadPrefs()); 211 segregated_store_->ReadPrefs());
217 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_NO_FILE, 212 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_NO_FILE,
218 segregated_store_->GetReadError()); 213 segregated_store_->GetReadError());
219 } 214 }
220 215
221 TEST_F(SegregatedPrefStoreTest, UnselectedPrefReadError) { 216 TEST_F(SegregatedPrefStoreTest, UnselectedPrefReadError) {
222 default_store_->set_read_error( 217 default_store_->set_read_error(
223 PersistentPrefStore::PREF_READ_ERROR_ACCESS_DENIED); 218 PersistentPrefStore::PREF_READ_ERROR_ACCESS_DENIED);
224 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_ACCESS_DENIED, 219 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_ACCESS_DENIED,
225 segregated_store_->ReadPrefs()); 220 segregated_store_->ReadPrefs());
226 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_ACCESS_DENIED, 221 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_ACCESS_DENIED,
227 segregated_store_->GetReadError()); 222 segregated_store_->GetReadError());
228 } 223 }
229 224
230 TEST_F(SegregatedPrefStoreTest, BothPrefReadError) { 225 TEST_F(SegregatedPrefStoreTest, BothPrefReadError) {
231 default_store_->set_read_error( 226 default_store_->set_read_error(PersistentPrefStore::PREF_READ_ERROR_NO_FILE);
232 PersistentPrefStore::PREF_READ_ERROR_NO_FILE);
233 selected_store_->set_read_error( 227 selected_store_->set_read_error(
234 PersistentPrefStore::PREF_READ_ERROR_ACCESS_DENIED); 228 PersistentPrefStore::PREF_READ_ERROR_ACCESS_DENIED);
235 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_NO_FILE, 229 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_NO_FILE,
236 segregated_store_->ReadPrefs()); 230 segregated_store_->ReadPrefs());
237 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_NO_FILE, 231 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_NO_FILE,
238 segregated_store_->GetReadError()); 232 segregated_store_->GetReadError());
239 } 233 }
240 234
241 TEST_F(SegregatedPrefStoreTest, BothPrefReadErrorAsync) { 235 TEST_F(SegregatedPrefStoreTest, BothPrefReadErrorAsync) {
242 default_store_->set_read_error( 236 default_store_->set_read_error(PersistentPrefStore::PREF_READ_ERROR_NO_FILE);
243 PersistentPrefStore::PREF_READ_ERROR_NO_FILE);
244 selected_store_->set_read_error( 237 selected_store_->set_read_error(
245 PersistentPrefStore::PREF_READ_ERROR_ACCESS_DENIED); 238 PersistentPrefStore::PREF_READ_ERROR_ACCESS_DENIED);
246 239
247 selected_store_->SetBlockAsyncRead(true); 240 selected_store_->SetBlockAsyncRead(true);
248 241
249 EXPECT_FALSE(read_error_delegate_data_.invoked); 242 EXPECT_FALSE(read_error_delegate_data_.invoked);
250 243
251 segregated_store_->ReadPrefsAsync(GetReadErrorDelegate().release()); 244 segregated_store_->ReadPrefsAsync(GetReadErrorDelegate().release());
252 245
253 EXPECT_FALSE(read_error_delegate_data_.invoked); 246 EXPECT_FALSE(read_error_delegate_data_.invoked);
(...skipping 17 matching lines...) Expand all
271 selected_store_->SetBlockAsyncRead(true); 264 selected_store_->SetBlockAsyncRead(true);
272 default_store_->SetBlockAsyncRead(true); 265 default_store_->SetBlockAsyncRead(true);
273 EXPECT_FALSE(segregated_store_->IsInitializationComplete()); 266 EXPECT_FALSE(segregated_store_->IsInitializationComplete());
274 segregated_store_->ReadPrefsAsync(NULL); 267 segregated_store_->ReadPrefsAsync(NULL);
275 EXPECT_FALSE(segregated_store_->IsInitializationComplete()); 268 EXPECT_FALSE(segregated_store_->IsInitializationComplete());
276 selected_store_->SetBlockAsyncRead(false); 269 selected_store_->SetBlockAsyncRead(false);
277 EXPECT_FALSE(segregated_store_->IsInitializationComplete()); 270 EXPECT_FALSE(segregated_store_->IsInitializationComplete());
278 default_store_->SetBlockAsyncRead(false); 271 default_store_->SetBlockAsyncRead(false);
279 EXPECT_TRUE(segregated_store_->IsInitializationComplete()); 272 EXPECT_TRUE(segregated_store_->IsInitializationComplete());
280 } 273 }
OLDNEW
« no previous file with comments | « components/user_prefs/tracked/segregated_pref_store.cc ('k') | components/user_prefs/tracked/tracked_atomic_preference.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698