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/profile_pref_store_manager.h" | 5 #include "chrome/browser/prefs/profile_pref_store_manager.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <memory> | 9 #include <memory> |
10 #include <utility> | 10 #include <utility> |
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
191 // Nothing should have to happen on the background threads, but just in | 191 // Nothing should have to happen on the background threads, but just in |
192 // case... | 192 // case... |
193 base::RunLoop().RunUntilIdle(); | 193 base::RunLoop().RunUntilIdle(); |
194 } | 194 } |
195 } | 195 } |
196 | 196 |
197 void InitializePrefStore(PersistentPrefStore* pref_store) { | 197 void InitializePrefStore(PersistentPrefStore* pref_store) { |
198 pref_store->AddObserver(®istry_verifier_); | 198 pref_store->AddObserver(®istry_verifier_); |
199 PersistentPrefStore::PrefReadError error = pref_store->ReadPrefs(); | 199 PersistentPrefStore::PrefReadError error = pref_store->ReadPrefs(); |
200 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_NO_FILE, error); | 200 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_NO_FILE, error); |
201 pref_store->SetValue(kTrackedAtomic, | 201 pref_store->SetValue(kTrackedAtomic, base::MakeUnique<base::Value>(kFoobar), |
202 base::MakeUnique<base::StringValue>(kFoobar), | |
203 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 202 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
204 pref_store->SetValue(kProtectedAtomic, | 203 pref_store->SetValue(kProtectedAtomic, |
205 base::MakeUnique<base::StringValue>(kHelloWorld), | 204 base::MakeUnique<base::Value>(kHelloWorld), |
206 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 205 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
207 pref_store->SetValue(kUnprotectedPref, | 206 pref_store->SetValue(kUnprotectedPref, |
208 base::MakeUnique<base::StringValue>(kFoobar), | 207 base::MakeUnique<base::Value>(kFoobar), |
209 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 208 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
210 pref_store->RemoveObserver(®istry_verifier_); | 209 pref_store->RemoveObserver(®istry_verifier_); |
211 pref_store->CommitPendingWrite(); | 210 pref_store->CommitPendingWrite(); |
212 base::RunLoop().RunUntilIdle(); | 211 base::RunLoop().RunUntilIdle(); |
213 } | 212 } |
214 | 213 |
215 void LoadExistingPrefs() { | 214 void LoadExistingPrefs() { |
216 DestroyPrefStore(); | 215 DestroyPrefStore(); |
217 pref_store_ = manager_->CreateProfilePrefStore( | 216 pref_store_ = manager_->CreateProfilePrefStore( |
218 main_message_loop_.task_runner(), | 217 main_message_loop_.task_runner(), |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
314 pref_store_->GetValue(kProtectedAtomic, NULL)); | 313 pref_store_->GetValue(kProtectedAtomic, NULL)); |
315 VerifyResetRecorded( | 314 VerifyResetRecorded( |
316 ProfilePrefStoreManager::kPlatformSupportsPreferenceTracking); | 315 ProfilePrefStoreManager::kPlatformSupportsPreferenceTracking); |
317 | 316 |
318 ExpectValidationObserved(kTrackedAtomic); | 317 ExpectValidationObserved(kTrackedAtomic); |
319 ExpectValidationObserved(kProtectedAtomic); | 318 ExpectValidationObserved(kProtectedAtomic); |
320 } | 319 } |
321 | 320 |
322 TEST_F(ProfilePrefStoreManagerTest, InitializePrefsFromMasterPrefs) { | 321 TEST_F(ProfilePrefStoreManagerTest, InitializePrefsFromMasterPrefs) { |
323 auto master_prefs = base::MakeUnique<base::DictionaryValue>(); | 322 auto master_prefs = base::MakeUnique<base::DictionaryValue>(); |
324 master_prefs->Set(kTrackedAtomic, new base::StringValue(kFoobar)); | 323 master_prefs->Set(kTrackedAtomic, new base::Value(kFoobar)); |
325 master_prefs->Set(kProtectedAtomic, new base::StringValue(kHelloWorld)); | 324 master_prefs->Set(kProtectedAtomic, new base::Value(kHelloWorld)); |
326 EXPECT_TRUE( | 325 EXPECT_TRUE( |
327 manager_->InitializePrefsFromMasterPrefs(std::move(master_prefs))); | 326 manager_->InitializePrefsFromMasterPrefs(std::move(master_prefs))); |
328 | 327 |
329 LoadExistingPrefs(); | 328 LoadExistingPrefs(); |
330 | 329 |
331 // Verify that InitializePrefsFromMasterPrefs correctly applied the MACs | 330 // Verify that InitializePrefsFromMasterPrefs correctly applied the MACs |
332 // necessary to authenticate these values. | 331 // necessary to authenticate these values. |
333 ExpectStringValueEquals(kTrackedAtomic, kFoobar); | 332 ExpectStringValueEquals(kTrackedAtomic, kFoobar); |
334 ExpectStringValueEquals(kProtectedAtomic, kHelloWorld); | 333 ExpectStringValueEquals(kProtectedAtomic, kHelloWorld); |
335 VerifyResetRecorded(false); | 334 VerifyResetRecorded(false); |
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
476 | 475 |
477 // Accessing the value of the previously protected pref didn't trigger its | 476 // Accessing the value of the previously protected pref didn't trigger its |
478 // move to the unprotected preferences file, though the loading of the pref | 477 // move to the unprotected preferences file, though the loading of the pref |
479 // store should still have caused the MAC store to be recalculated. | 478 // store should still have caused the MAC store to be recalculated. |
480 LoadExistingPrefs(); | 479 LoadExistingPrefs(); |
481 ExpectStringValueEquals(kProtectedAtomic, kHelloWorld); | 480 ExpectStringValueEquals(kProtectedAtomic, kHelloWorld); |
482 | 481 |
483 // Trigger the logic that migrates it back to the unprotected preferences | 482 // Trigger the logic that migrates it back to the unprotected preferences |
484 // file. | 483 // file. |
485 pref_store_->SetValue(kProtectedAtomic, | 484 pref_store_->SetValue(kProtectedAtomic, |
486 base::WrapUnique(new base::StringValue(kGoodbyeWorld)), | 485 base::WrapUnique(new base::Value(kGoodbyeWorld)), |
487 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 486 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
488 LoadExistingPrefs(); | 487 LoadExistingPrefs(); |
489 ExpectStringValueEquals(kProtectedAtomic, kGoodbyeWorld); | 488 ExpectStringValueEquals(kProtectedAtomic, kGoodbyeWorld); |
490 VerifyResetRecorded(false); | 489 VerifyResetRecorded(false); |
491 } | 490 } |
OLD | NEW |