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"
14 class PowerMonitorTestSource
: public PowerMonitorSource
{
16 PowerMonitorTestSource();
17 virtual ~PowerMonitorTestSource();
19 void GeneratePowerStateEvent(bool on_battery_power
);
20 void GenerateSuspendEvent();
21 void GenerateResumeEvent();
24 virtual bool IsOnBatteryPowerImpl() OVERRIDE
;
26 bool test_on_battery_power_
;
27 MessageLoop message_loop_
;
30 class PowerMonitorTestObserver
: public PowerObserver
{
32 PowerMonitorTestObserver();
33 virtual ~PowerMonitorTestObserver();
35 // PowerObserver callbacks.
36 virtual void OnPowerStateChange(bool on_battery_power
) OVERRIDE
;
37 virtual void OnSuspend() OVERRIDE
;
38 virtual 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_
; }
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.
55 #endif // BASE_TEST_POWER_MONITOR_TEST_BASE_H_