• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2022 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef BASE_TEST_POWER_MONITOR_TEST_UTILS_H_
6 #define BASE_TEST_POWER_MONITOR_TEST_UTILS_H_
7 
8 #include "base/functional/callback.h"
9 #include "base/power_monitor/battery_level_provider.h"
10 #include "base/power_monitor/sampling_event_source.h"
11 #include "third_party/abseil-cpp/absl/types/optional.h"
12 
13 namespace base::test {
14 
15 class TestSamplingEventSource : public SamplingEventSource {
16  public:
17   TestSamplingEventSource();
18   ~TestSamplingEventSource() override;
19 
20   bool Start(SamplingEventCallback callback) override;
21 
22   void SimulateEvent();
23 
24  private:
25   SamplingEventCallback sampling_event_callback_;
26 };
27 
28 class TestBatteryLevelProvider : public base::BatteryLevelProvider {
29  public:
30   TestBatteryLevelProvider();
31   void GetBatteryState(
32       base::OnceCallback<
33           void(const absl::optional<base::BatteryLevelProvider::BatteryState>&)>
34           callback) override;
35 
36   void SetBatteryState(
37       absl::optional<base::BatteryLevelProvider::BatteryState> battery_state);
38 
39   static base::BatteryLevelProvider::BatteryState CreateBatteryState(
40       int battery_count = 1,
41       bool is_external_power_connected = false,
42       int charge_percent = 100);
43 
44  private:
45   absl::optional<base::BatteryLevelProvider::BatteryState> battery_state_;
46 };
47 
48 }  // namespace base::test
49 
50 #endif  // BASE_TEST_POWER_MONITOR_TEST_UTILS_H_
51