xref: /aosp_15_r20/external/cronet/components/prefs/pref_test_utils.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker // Copyright 2019 The Chromium Authors
2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker 
5*6777b538SAndroid Build Coastguard Worker #include "components/prefs/pref_test_utils.h"
6*6777b538SAndroid Build Coastguard Worker 
7*6777b538SAndroid Build Coastguard Worker #include "base/run_loop.h"
8*6777b538SAndroid Build Coastguard Worker #include "base/test/bind.h"
9*6777b538SAndroid Build Coastguard Worker #include "base/values.h"
10*6777b538SAndroid Build Coastguard Worker #include "components/prefs/pref_change_registrar.h"
11*6777b538SAndroid Build Coastguard Worker #include "components/prefs/pref_service.h"
12*6777b538SAndroid Build Coastguard Worker 
WaitForPrefValue(PrefService * pref_service,const std::string & path,const base::Value & value)13*6777b538SAndroid Build Coastguard Worker void WaitForPrefValue(PrefService* pref_service,
14*6777b538SAndroid Build Coastguard Worker                       const std::string& path,
15*6777b538SAndroid Build Coastguard Worker                       const base::Value& value) {
16*6777b538SAndroid Build Coastguard Worker   if (value == pref_service->GetValue(path))
17*6777b538SAndroid Build Coastguard Worker     return;
18*6777b538SAndroid Build Coastguard Worker 
19*6777b538SAndroid Build Coastguard Worker   base::RunLoop run_loop;
20*6777b538SAndroid Build Coastguard Worker   PrefChangeRegistrar pref_changes;
21*6777b538SAndroid Build Coastguard Worker   pref_changes.Init(pref_service);
22*6777b538SAndroid Build Coastguard Worker   pref_changes.Add(path, base::BindLambdaForTesting([&]() {
23*6777b538SAndroid Build Coastguard Worker                      if (value == pref_service->GetValue(path))
24*6777b538SAndroid Build Coastguard Worker                        run_loop.Quit();
25*6777b538SAndroid Build Coastguard Worker                    }));
26*6777b538SAndroid Build Coastguard Worker   run_loop.Run();
27*6777b538SAndroid Build Coastguard Worker }
28