Home | History | Annotate | Download | only in test
      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.
     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_; }
     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_