1a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 2a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)// found in the LICENSE file. 4a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 5ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch#ifndef BASE_TEST_POWER_MONITOR_TEST_BASE_H_ 6ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch#define BASE_TEST_POWER_MONITOR_TEST_BASE_H_ 7ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 8a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "base/message_loop/message_loop.h" 9a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "base/power_monitor/power_monitor.h" 10a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "base/power_monitor/power_monitor_source.h" 11a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 12a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)namespace base { 13a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 14ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochclass PowerMonitorTestSource : public PowerMonitorSource { 15a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) public: 16a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) PowerMonitorTestSource(); 17a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) virtual ~PowerMonitorTestSource(); 18a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 19a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) void GeneratePowerStateEvent(bool on_battery_power); 20a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) void GenerateSuspendEvent(); 21a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) void GenerateResumeEvent(); 22a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 23a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) protected: 24a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) virtual bool IsOnBatteryPowerImpl() OVERRIDE; 25a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 26a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) bool test_on_battery_power_; 27a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) MessageLoop message_loop_; 28a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)}; 29a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 30ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochclass PowerMonitorTestObserver : public PowerObserver { 31a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) public: 32a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) PowerMonitorTestObserver(); 33a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) virtual ~PowerMonitorTestObserver(); 34a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 35a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) // PowerObserver callbacks. 36a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) virtual void OnPowerStateChange(bool on_battery_power) OVERRIDE; 37a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) virtual void OnSuspend() OVERRIDE; 38a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) virtual void OnResume() OVERRIDE; 39a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 40a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) // Test status counts. 41a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) bool last_power_state() { return last_power_state_; } 42a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) int power_state_changes() { return power_state_changes_; } 43a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) int suspends() { return suspends_; } 44a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) int resumes() { return resumes_; } 45a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 46a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) private: 47a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) bool last_power_state_; // Last power state we were notified of. 48a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) int power_state_changes_; // Count of OnPowerStateChange notifications. 49a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) int suspends_; // Count of OnSuspend notifications. 50a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) int resumes_; // Count of OnResume notifications. 51a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)}; 52a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 53ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch} // namespace base 54ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 55d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#endif // BASE_TEST_POWER_MONITOR_TEST_BASE_H_ 56