• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.
4 
5 #ifndef BASE_TEST_POWER_MONITOR_TEST_BASE_H_
6 #define BASE_TEST_POWER_MONITOR_TEST_BASE_H_
7 
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"
11 
12 namespace base {
13 
14 class PowerMonitorTestSource : public PowerMonitorSource {
15  public:
16   PowerMonitorTestSource();
17   virtual ~PowerMonitorTestSource();
18 
19   void GeneratePowerStateEvent(bool on_battery_power);
20   void GenerateSuspendEvent();
21   void GenerateResumeEvent();
22 
23  protected:
24   virtual bool IsOnBatteryPowerImpl() OVERRIDE;
25 
26   bool test_on_battery_power_;
27   MessageLoop message_loop_;
28 };
29 
30 class PowerMonitorTestObserver : public PowerObserver {
31  public:
32   PowerMonitorTestObserver();
33   virtual ~PowerMonitorTestObserver();
34 
35   // PowerObserver callbacks.
36   virtual void OnPowerStateChange(bool on_battery_power) OVERRIDE;
37   virtual void OnSuspend() OVERRIDE;
38   virtual void OnResume() OVERRIDE;
39 
40   // Test status counts.
last_power_state()41   bool last_power_state() { return last_power_state_; }
power_state_changes()42   int power_state_changes() { return power_state_changes_; }
suspends()43   int suspends() { return suspends_; }
resumes()44   int resumes() { return resumes_; }
45 
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.
51 };
52 
53 }  // namespace base
54 
55 #endif  // BASE_TEST_POWER_MONITOR_TEST_BASE_H_
56