OLD | NEW |
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 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
177 EXPECT_TRUE(initialization_callback_invoked_); | 177 EXPECT_TRUE(initialization_callback_invoked_); |
178 EXPECT_TRUE(observer_.initialized); | 178 EXPECT_TRUE(observer_.initialized); |
179 EXPECT_TRUE(observer_.initialization_success); | 179 EXPECT_TRUE(observer_.initialization_success); |
180 EXPECT_TRUE(observer_.changed_keys.empty()); | 180 EXPECT_TRUE(observer_.changed_keys.empty()); |
181 segregated_store_->SetValue(kSelectedPref, new base::StringValue(kValue1)); | 181 segregated_store_->SetValue(kSelectedPref, new base::StringValue(kValue1)); |
182 observer_.VerifyAndResetChangedKey(kSelectedPref); | 182 observer_.VerifyAndResetChangedKey(kSelectedPref); |
183 segregated_store_->SetValue(kUnselectedPref, new base::StringValue(kValue2)); | 183 segregated_store_->SetValue(kUnselectedPref, new base::StringValue(kValue2)); |
184 observer_.VerifyAndResetChangedKey(kUnselectedPref); | 184 observer_.VerifyAndResetChangedKey(kUnselectedPref); |
185 } | 185 } |
186 | 186 |
| 187 TEST_F(SegregatedPrefStoreTest, SelectedPrefReadNoFileError) { |
| 188 // PREF_READ_ERROR_NO_FILE for the selected prefs file is silently converted |
| 189 // to PREF_READ_ERROR_NONE. |
| 190 selected_store_->set_read_error( |
| 191 PersistentPrefStore::PREF_READ_ERROR_NO_FILE); |
| 192 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_NONE, |
| 193 segregated_store_->ReadPrefs()); |
| 194 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_NONE, |
| 195 segregated_store_->GetReadError()); |
| 196 } |
| 197 |
187 TEST_F(SegregatedPrefStoreTest, SelectedPrefReadError) { | 198 TEST_F(SegregatedPrefStoreTest, SelectedPrefReadError) { |
188 selected_store_->set_read_error( | 199 selected_store_->set_read_error( |
| 200 PersistentPrefStore::PREF_READ_ERROR_ACCESS_DENIED); |
| 201 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_ACCESS_DENIED, |
| 202 segregated_store_->ReadPrefs()); |
| 203 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_ACCESS_DENIED, |
| 204 segregated_store_->GetReadError()); |
| 205 } |
| 206 |
| 207 TEST_F(SegregatedPrefStoreTest, SelectedPrefReadNoFileErrorAsync) { |
| 208 // PREF_READ_ERROR_NO_FILE for the selected prefs file is silently converted |
| 209 // to PREF_READ_ERROR_NONE. |
| 210 selected_store_->set_read_error( |
| 211 PersistentPrefStore::PREF_READ_ERROR_NO_FILE); |
| 212 |
| 213 default_store_->SetBlockAsyncRead(true); |
| 214 |
| 215 EXPECT_FALSE(read_error_delegate_data_.invoked); |
| 216 |
| 217 segregated_store_->ReadPrefsAsync(GetReadErrorDelegate().release()); |
| 218 |
| 219 EXPECT_FALSE(read_error_delegate_data_.invoked); |
| 220 |
| 221 default_store_->SetBlockAsyncRead(false); |
| 222 |
| 223 // ReadErrorDelegate is not invoked for ERROR_NONE. |
| 224 EXPECT_FALSE(read_error_delegate_data_.invoked); |
| 225 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_NONE, |
| 226 segregated_store_->GetReadError()); |
| 227 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_NONE, |
| 228 segregated_store_->GetReadError()); |
| 229 } |
| 230 |
| 231 TEST_F(SegregatedPrefStoreTest, UnselectedPrefReadNoFileError) { |
| 232 default_store_->set_read_error( |
189 PersistentPrefStore::PREF_READ_ERROR_NO_FILE); | 233 PersistentPrefStore::PREF_READ_ERROR_NO_FILE); |
190 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_NO_FILE, | 234 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_NO_FILE, |
191 segregated_store_->ReadPrefs()); | 235 segregated_store_->ReadPrefs()); |
192 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_NO_FILE, | 236 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_NO_FILE, |
193 segregated_store_->GetReadError()); | 237 segregated_store_->GetReadError()); |
194 } | 238 } |
195 | 239 |
196 TEST_F(SegregatedPrefStoreTest, UnselectedPrefReadError) { | 240 TEST_F(SegregatedPrefStoreTest, UnselectedPrefReadError) { |
197 default_store_->set_read_error( | 241 default_store_->set_read_error( |
198 PersistentPrefStore::PREF_READ_ERROR_NO_FILE); | 242 PersistentPrefStore::PREF_READ_ERROR_ACCESS_DENIED); |
199 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_NO_FILE, | 243 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_ACCESS_DENIED, |
200 segregated_store_->ReadPrefs()); | 244 segregated_store_->ReadPrefs()); |
201 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_NO_FILE, | 245 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_ACCESS_DENIED, |
202 segregated_store_->GetReadError()); | 246 segregated_store_->GetReadError()); |
203 } | 247 } |
204 | 248 |
205 TEST_F(SegregatedPrefStoreTest, BothPrefReadError) { | 249 TEST_F(SegregatedPrefStoreTest, BothPrefReadError) { |
206 default_store_->set_read_error( | 250 default_store_->set_read_error( |
207 PersistentPrefStore::PREF_READ_ERROR_NO_FILE); | 251 PersistentPrefStore::PREF_READ_ERROR_NO_FILE); |
208 selected_store_->set_read_error( | 252 selected_store_->set_read_error( |
209 PersistentPrefStore::PREF_READ_ERROR_ACCESS_DENIED); | 253 PersistentPrefStore::PREF_READ_ERROR_ACCESS_DENIED); |
210 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_NO_FILE, | 254 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_NO_FILE, |
211 segregated_store_->ReadPrefs()); | 255 segregated_store_->ReadPrefs()); |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
246 selected_store_->SetBlockAsyncRead(true); | 290 selected_store_->SetBlockAsyncRead(true); |
247 default_store_->SetBlockAsyncRead(true); | 291 default_store_->SetBlockAsyncRead(true); |
248 EXPECT_FALSE(segregated_store_->IsInitializationComplete()); | 292 EXPECT_FALSE(segregated_store_->IsInitializationComplete()); |
249 segregated_store_->ReadPrefsAsync(NULL); | 293 segregated_store_->ReadPrefsAsync(NULL); |
250 EXPECT_FALSE(segregated_store_->IsInitializationComplete()); | 294 EXPECT_FALSE(segregated_store_->IsInitializationComplete()); |
251 selected_store_->SetBlockAsyncRead(false); | 295 selected_store_->SetBlockAsyncRead(false); |
252 EXPECT_FALSE(segregated_store_->IsInitializationComplete()); | 296 EXPECT_FALSE(segregated_store_->IsInitializationComplete()); |
253 default_store_->SetBlockAsyncRead(false); | 297 default_store_->SetBlockAsyncRead(false); |
254 EXPECT_TRUE(segregated_store_->IsInitializationComplete()); | 298 EXPECT_TRUE(segregated_store_->IsInitializationComplete()); |
255 } | 299 } |
OLD | NEW |