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 #include "base/test/power_monitor_test_base.h" 6 7 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop_current.h" 9 #include "base/power_monitor/power_monitor.h" 10 #include "base/power_monitor/power_monitor_source.h" 11 #include "base/run_loop.h" 12 13 namespace base { 14 PowerMonitorTestSource()15PowerMonitorTestSource::PowerMonitorTestSource() 16 : test_on_battery_power_(false) { 17 DCHECK(MessageLoopCurrent::Get()) 18 << "PowerMonitorTestSource requires a MessageLoop."; 19 } 20 21 PowerMonitorTestSource::~PowerMonitorTestSource() = default; 22 Shutdown()23void PowerMonitorTestSource::Shutdown() {} 24 GeneratePowerStateEvent(bool on_battery_power)25void PowerMonitorTestSource::GeneratePowerStateEvent(bool on_battery_power) { 26 test_on_battery_power_ = on_battery_power; 27 ProcessPowerEvent(POWER_STATE_EVENT); 28 RunLoop().RunUntilIdle(); 29 } 30 GenerateSuspendEvent()31void PowerMonitorTestSource::GenerateSuspendEvent() { 32 ProcessPowerEvent(SUSPEND_EVENT); 33 RunLoop().RunUntilIdle(); 34 } 35 GenerateResumeEvent()36void PowerMonitorTestSource::GenerateResumeEvent() { 37 ProcessPowerEvent(RESUME_EVENT); 38 RunLoop().RunUntilIdle(); 39 } 40 IsOnBatteryPowerImpl()41bool PowerMonitorTestSource::IsOnBatteryPowerImpl() { 42 return test_on_battery_power_; 43 }; 44 PowerMonitorTestObserver()45PowerMonitorTestObserver::PowerMonitorTestObserver() 46 : last_power_state_(false), 47 power_state_changes_(0), 48 suspends_(0), 49 resumes_(0) { 50 } 51 52 PowerMonitorTestObserver::~PowerMonitorTestObserver() = default; 53 54 // PowerObserver callbacks. OnPowerStateChange(bool on_battery_power)55void PowerMonitorTestObserver::OnPowerStateChange(bool on_battery_power) { 56 last_power_state_ = on_battery_power; 57 power_state_changes_++; 58 } 59 OnSuspend()60void PowerMonitorTestObserver::OnSuspend() { 61 suspends_++; 62 } 63 OnResume()64void PowerMonitorTestObserver::OnResume() { 65 resumes_++; 66 } 67 68 } // namespace base 69