Roll src/third_party/WebKit d9c6159:8139f33 (svn 201974:201975)
[chromium-blink-merge.git] / base / test / power_monitor_test_base.h
blob4655eae0981f91f005e67c4b6e8452d72d690b33
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef BASE_TEST_POWER_MONITOR_TEST_BASE_H_
6 #define BASE_TEST_POWER_MONITOR_TEST_BASE_H_
8 #include "base/message_loop/message_loop.h"
9 #include "base/power_monitor/power_monitor.h"
10 #include "base/power_monitor/power_monitor_source.h"
12 namespace base {
14 class PowerMonitorTestSource : public PowerMonitorSource {
15 public:
16 PowerMonitorTestSource();
17 ~PowerMonitorTestSource() override;
19 void GeneratePowerStateEvent(bool on_battery_power);
20 void GenerateSuspendEvent();
21 void GenerateResumeEvent();
23 protected:
24 bool IsOnBatteryPowerImpl() override;
26 bool test_on_battery_power_;
27 MessageLoop message_loop_;
30 class PowerMonitorTestObserver : public PowerObserver {
31 public:
32 PowerMonitorTestObserver();
33 ~PowerMonitorTestObserver() override;
35 // PowerObserver callbacks.
36 void OnPowerStateChange(bool on_battery_power) override;
37 void OnSuspend() override;
38 void OnResume() override;
40 // Test status counts.
41 bool last_power_state() { return last_power_state_; }
42 int power_state_changes() { return power_state_changes_; }
43 int suspends() { return suspends_; }
44 int resumes() { return resumes_; }
46 private:
47 bool last_power_state_; // Last power state we were notified of.
48 int power_state_changes_; // Count of OnPowerStateChange notifications.
49 int suspends_; // Count of OnSuspend notifications.
50 int resumes_; // Count of OnResume notifications.
53 } // namespace base
55 #endif // BASE_TEST_POWER_MONITOR_TEST_BASE_H_