| Index: chrome/browser/prefs/profile_pref_store_manager_unittest.cc
|
| diff --git a/chrome/browser/prefs/profile_pref_store_manager_unittest.cc b/chrome/browser/prefs/profile_pref_store_manager_unittest.cc
|
| index 01503e8d996ddae3a09c1361ccb525f873ec9804..29318a92c96dddda6a7e19d06916ebde914a8a75 100644
|
| --- a/chrome/browser/prefs/profile_pref_store_manager_unittest.cc
|
| +++ b/chrome/browser/prefs/profile_pref_store_manager_unittest.cc
|
| @@ -10,6 +10,7 @@
|
| #include <utility>
|
| #include <vector>
|
|
|
| +#include "base/callback_helpers.h"
|
| #include "base/compiler_specific.h"
|
| #include "base/files/file_enumerator.h"
|
| #include "base/files/file_util.h"
|
| @@ -68,6 +69,37 @@ class RegistryVerifier : public PrefStore::Observer {
|
| scoped_refptr<PrefRegistry> pref_registry_;
|
| };
|
|
|
| +class PrefStoreReadObserver : public PrefStore::Observer {
|
| + public:
|
| + explicit PrefStoreReadObserver(scoped_refptr<PersistentPrefStore> pref_store)
|
| + : pref_store_(std::move(pref_store)) {
|
| + pref_store_->AddObserver(this);
|
| + }
|
| +
|
| + ~PrefStoreReadObserver() override { pref_store_->RemoveObserver(this); }
|
| +
|
| + PersistentPrefStore::PrefReadError Read() {
|
| + base::RunLoop run_loop;
|
| + stop_waiting_ = run_loop.QuitClosure();
|
| + pref_store_->ReadPrefsAsync(nullptr);
|
| + run_loop.Run();
|
| + return pref_store_->GetReadError();
|
| + }
|
| +
|
| + // PrefStore::Observer implementation
|
| + void OnPrefValueChanged(const std::string& key) override {}
|
| +
|
| + void OnInitializationCompleted(bool succeeded) override {
|
| + if (!stop_waiting_.is_null()) {
|
| + base::ResetAndReturn(&stop_waiting_).Run();
|
| + }
|
| + }
|
| +
|
| + private:
|
| + scoped_refptr<PersistentPrefStore> pref_store_;
|
| + base::Closure stop_waiting_;
|
| +};
|
| +
|
| const char kUnprotectedPref[] = "unprotected_pref";
|
| const char kTrackedAtomic[] = "tracked_atomic";
|
| const char kProtectedAtomic[] = "protected_atomic";
|
| @@ -100,8 +132,6 @@ class ProfilePrefStoreManagerTest : public testing::Test {
|
|
|
| void SetUp() override {
|
| mock_validation_delegate_record_ = new MockValidationDelegateRecord;
|
| - mock_validation_delegate_ = base::MakeUnique<MockValidationDelegate>(
|
| - mock_validation_delegate_record_);
|
| ProfilePrefStoreManager::RegisterProfilePrefs(profile_pref_registry_.get());
|
| for (const PrefHashFilter::TrackedPreferenceMetadata* it = kConfiguration;
|
| it != kConfiguration + arraysize(kConfiguration);
|
| @@ -175,10 +205,10 @@ class ProfilePrefStoreManagerTest : public testing::Test {
|
| mock_validation_delegate_record_);
|
| scoped_refptr<PersistentPrefStore> pref_store =
|
| manager_->CreateProfilePrefStore(
|
| - main_message_loop_.task_runner(),
|
| + main_message_loop_.task_runner(), main_message_loop_.task_runner(),
|
| base::Bind(&ProfilePrefStoreManagerTest::RecordReset,
|
| base::Unretained(this)),
|
| - mock_validation_delegate_.get());
|
| + &mock_validation_delegate);
|
| InitializePrefStore(pref_store.get());
|
| pref_store = NULL;
|
| base::RunLoop().RunUntilIdle();
|
| @@ -202,7 +232,8 @@ class ProfilePrefStoreManagerTest : public testing::Test {
|
|
|
| void InitializePrefStore(PersistentPrefStore* pref_store) {
|
| pref_store->AddObserver(®istry_verifier_);
|
| - PersistentPrefStore::PrefReadError error = pref_store->ReadPrefs();
|
| + PrefStoreReadObserver read_observer(pref_store);
|
| + PersistentPrefStore::PrefReadError error = read_observer.Read();
|
| EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_NO_FILE, error);
|
| pref_store->SetValue(kTrackedAtomic,
|
| base::MakeUnique<base::StringValue>(kFoobar),
|
| @@ -220,13 +251,16 @@ class ProfilePrefStoreManagerTest : public testing::Test {
|
|
|
| void LoadExistingPrefs() {
|
| DestroyPrefStore();
|
| + std::unique_ptr<prefs::mojom::TrackedPreferenceValidationDelegate>
|
| + validation_delegate;
|
| pref_store_ = manager_->CreateProfilePrefStore(
|
| - main_message_loop_.task_runner(),
|
| + main_message_loop_.task_runner(), main_message_loop_.task_runner(),
|
| base::Bind(&ProfilePrefStoreManagerTest::RecordReset,
|
| base::Unretained(this)),
|
| - NULL);
|
| + &validation_delegate);
|
| pref_store_->AddObserver(®istry_verifier_);
|
| - pref_store_->ReadPrefs();
|
| + PrefStoreReadObserver read_observer(pref_store_);
|
| + read_observer.Read();
|
| }
|
|
|
| void ReplaceStringInPrefs(const std::string& find,
|
| @@ -273,7 +307,6 @@ class ProfilePrefStoreManagerTest : public testing::Test {
|
| scoped_refptr<user_prefs::PrefRegistrySyncable> profile_pref_registry_;
|
| RegistryVerifier registry_verifier_;
|
| scoped_refptr<MockValidationDelegateRecord> mock_validation_delegate_record_;
|
| - std::unique_ptr<MockValidationDelegate> mock_validation_delegate_;
|
| std::unique_ptr<ProfilePrefStoreManager> manager_;
|
| scoped_refptr<PersistentPrefStore> pref_store_;
|
|
|
|
|