|  | // Copyright 2013 The Chromium Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #ifndef BASE_TEST_POWER_MONITOR_TEST_BASE_H_ | 
|  | #define BASE_TEST_POWER_MONITOR_TEST_BASE_H_ | 
|  |  | 
|  | #include "base/message_loop/message_loop.h" | 
|  | #include "base/power_monitor/power_monitor.h" | 
|  | #include "base/power_monitor/power_monitor_source.h" | 
|  |  | 
|  | namespace base { | 
|  |  | 
|  | class PowerMonitorTestSource : public PowerMonitorSource { | 
|  | public: | 
|  | PowerMonitorTestSource(); | 
|  | ~PowerMonitorTestSource() override; | 
|  |  | 
|  | void GeneratePowerStateEvent(bool on_battery_power); | 
|  | void GenerateSuspendEvent(); | 
|  | void GenerateResumeEvent(); | 
|  |  | 
|  | protected: | 
|  | bool IsOnBatteryPowerImpl() override; | 
|  |  | 
|  | bool test_on_battery_power_; | 
|  | MessageLoop message_loop_; | 
|  | }; | 
|  |  | 
|  | class PowerMonitorTestObserver : public PowerObserver { | 
|  | public: | 
|  | PowerMonitorTestObserver(); | 
|  | ~PowerMonitorTestObserver() override; | 
|  |  | 
|  | // PowerObserver callbacks. | 
|  | void OnPowerStateChange(bool on_battery_power) override; | 
|  | void OnSuspend() override; | 
|  | void OnResume() override; | 
|  |  | 
|  | // Test status counts. | 
|  | bool last_power_state() { return last_power_state_; } | 
|  | int power_state_changes() { return power_state_changes_; } | 
|  | int suspends() { return suspends_; } | 
|  | int resumes() { return resumes_; } | 
|  |  | 
|  | private: | 
|  | bool last_power_state_; // Last power state we were notified of. | 
|  | int power_state_changes_;  // Count of OnPowerStateChange notifications. | 
|  | int suspends_;  // Count of OnSuspend notifications. | 
|  | int resumes_;  // Count of OnResume notifications. | 
|  | }; | 
|  |  | 
|  | }  // namespace base | 
|  |  | 
|  | #endif  // BASE_TEST_POWER_MONITOR_TEST_BASE_H_ |