Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(54)

Side by Side Diff: chromeos/dbus/fake_power_manager_client.cc

Issue 1206733002: ChromeOs Power Emulation Impl (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created unittest for FakePowerManagerClient Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chromeos/dbus/fake_power_manager_client.h" 5 #include "chromeos/dbus/fake_power_manager_client.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/time/time.h" 9 #include "base/time/time.h"
10 10
11 namespace chromeos { 11 namespace chromeos {
12 namespace {
13
14 const int kDefaultBatteryLifeSpanSec = 6 * 3600; // 6 hours
15
16 } // namespace
12 17
13 FakePowerManagerClient::FakePowerManagerClient() 18 FakePowerManagerClient::FakePowerManagerClient()
14 : num_request_restart_calls_(0), 19 : num_request_restart_calls_(0),
15 num_request_shutdown_calls_(0), 20 num_request_shutdown_calls_(0),
16 num_set_policy_calls_(0), 21 num_set_policy_calls_(0),
17 num_set_is_projecting_calls_(0), 22 num_set_is_projecting_calls_(0),
18 num_pending_suspend_readiness_callbacks_(0), 23 num_pending_suspend_readiness_callbacks_(0),
19 is_projecting_(false) { 24 is_projecting_(false) {
20 } 25 }
21 26
22 FakePowerManagerClient::~FakePowerManagerClient() { 27 FakePowerManagerClient::~FakePowerManagerClient() {
23 } 28 }
24 29
25 void FakePowerManagerClient::Init(dbus::Bus* bus) { 30 void FakePowerManagerClient::Init(dbus::Bus* bus) {
31 UpdatePowerProperties(
32 50, false, power_manager::PowerSupplyProperties_BatteryState_DISCHARGING,
33 power_manager::PowerSupplyProperties_ExternalPower_DISCONNECTED);
26 } 34 }
27 35
28 void FakePowerManagerClient::AddObserver(Observer* observer) { 36 void FakePowerManagerClient::AddObserver(Observer* observer) {
29 observers_.AddObserver(observer); 37 observers_.AddObserver(observer);
30 } 38 }
31 39
32 void FakePowerManagerClient::RemoveObserver(Observer* observer) { 40 void FakePowerManagerClient::RemoveObserver(Observer* observer) {
33 observers_.RemoveObserver(observer); 41 observers_.RemoveObserver(observer);
34 } 42 }
35 43
36 bool FakePowerManagerClient::HasObserver(const Observer* observer) const { 44 bool FakePowerManagerClient::HasObserver(const Observer* observer) const {
37 return false; 45 return observers_.HasObserver(observer);
38 } 46 }
39 47
40 void FakePowerManagerClient::SetRenderProcessManagerDelegate( 48 void FakePowerManagerClient::SetRenderProcessManagerDelegate(
41 base::WeakPtr<RenderProcessManagerDelegate> delegate) { 49 base::WeakPtr<RenderProcessManagerDelegate> delegate) {
42 render_process_manager_delegate_ = delegate; 50 render_process_manager_delegate_ = delegate;
43 } 51 }
44 52
45 void FakePowerManagerClient::DecreaseScreenBrightness(bool allow_off) { 53 void FakePowerManagerClient::DecreaseScreenBrightness(bool allow_off) {
46 } 54 }
47 55
48 void FakePowerManagerClient::IncreaseScreenBrightness() { 56 void FakePowerManagerClient::IncreaseScreenBrightness() {
49 } 57 }
50 58
51 void FakePowerManagerClient::SetScreenBrightnessPercent(double percent, 59 void FakePowerManagerClient::SetScreenBrightnessPercent(double percent,
52 bool gradual) { 60 bool gradual) {
53 } 61 }
54 62
55 void FakePowerManagerClient::GetScreenBrightnessPercent( 63 void FakePowerManagerClient::GetScreenBrightnessPercent(
56 const GetScreenBrightnessPercentCallback& callback) { 64 const GetScreenBrightnessPercentCallback& callback) {
57 } 65 }
58 66
59 void FakePowerManagerClient::DecreaseKeyboardBrightness() { 67 void FakePowerManagerClient::DecreaseKeyboardBrightness() {
60 } 68 }
61 69
62 void FakePowerManagerClient::IncreaseKeyboardBrightness() { 70 void FakePowerManagerClient::IncreaseKeyboardBrightness() {
63 } 71 }
64 72
65 void FakePowerManagerClient::RequestStatusUpdate() { 73 void FakePowerManagerClient::RequestStatusUpdate() {
74 NotifyObservers();
66 } 75 }
67 76
68 void FakePowerManagerClient::RequestSuspend() { 77 void FakePowerManagerClient::RequestSuspend() {
69 } 78 }
70 79
71 void FakePowerManagerClient::RequestRestart() { 80 void FakePowerManagerClient::RequestRestart() {
72 ++num_request_restart_calls_; 81 ++num_request_restart_calls_;
73 } 82 }
74 83
75 void FakePowerManagerClient::RequestShutdown() { 84 void FakePowerManagerClient::RequestShutdown() {
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 FOR_EACH_OBSERVER(Observer, observers_, DarkSuspendImminent()); 131 FOR_EACH_OBSERVER(Observer, observers_, DarkSuspendImminent());
123 } 132 }
124 133
125 void FakePowerManagerClient::SendPowerButtonEvent( 134 void FakePowerManagerClient::SendPowerButtonEvent(
126 bool down, 135 bool down,
127 const base::TimeTicks& timestamp) { 136 const base::TimeTicks& timestamp) {
128 FOR_EACH_OBSERVER(Observer, observers_, 137 FOR_EACH_OBSERVER(Observer, observers_,
129 PowerButtonEventReceived(down, timestamp)); 138 PowerButtonEventReceived(down, timestamp));
130 } 139 }
131 140
141 void FakePowerManagerClient::UpdatePowerProperties(
142 int battery_percent,
143 bool is_calculating_battery_time,
144 power_manager::PowerSupplyProperties::BatteryState battery_state,
145 power_manager::PowerSupplyProperties::ExternalPower external_power) {
146 int remaining_battery_sec =
147 battery_percent * kDefaultBatteryLifeSpanSec / 100;
148
149 // Sets the charging state based on the battery percentage to mimic real
150 // implementation.
151 if (battery_percent == 100 &&
152 battery_state ==
153 power_manager::PowerSupplyProperties_BatteryState_CHARGING ||
154 power_manager::PowerSupplyProperties_BatteryState_FULL) {
Daniel Erat 2015/06/30 22:13:31 are your tests working? the _FULL part is broken b
Daniel Erat 2015/06/30 22:13:31 use parentheses around nested || and && clauses:
mozartalouis 2015/07/01 00:43:28 Done.
mozartalouis 2015/07/01 00:43:28 Done.
155 props_.set_battery_state(
156 power_manager::PowerSupplyProperties_BatteryState_FULL);
157 props_.set_battery_time_to_full_sec(0);
158 props_.set_battery_time_to_empty_sec(0);
159 } else if (battery_state ==
160 power_manager::PowerSupplyProperties_BatteryState_CHARGING) {
161 props_.set_battery_state(
162 power_manager::PowerSupplyProperties_BatteryState_CHARGING);
163 props_.set_battery_time_to_full_sec(kDefaultBatteryLifeSpanSec -
164 remaining_battery_sec);
165 props_.set_battery_time_to_empty_sec(0);
166 } else {
167 props_.set_battery_state(
168 power_manager::PowerSupplyProperties_BatteryState_DISCHARGING);
169 props_.set_battery_time_to_full_sec(0);
170 props_.set_battery_time_to_empty_sec(remaining_battery_sec);
171 }
172
173 // Checks if the battery is in a discharging state first before setting a
174 // charger. It wouldn't make sense for the battery to be discharging on AC,
175 // but it is possible for it to be discharging on low power USB.
176 if (battery_state ==
177 power_manager::PowerSupplyProperties_BatteryState_DISCHARGING) {
178 props_.set_external_power(
179 external_power == power_manager::PowerSupplyProperties_ExternalPower_USB
180 ? power_manager::PowerSupplyProperties_ExternalPower_USB
181 : power_manager::PowerSupplyProperties_ExternalPower_DISCONNECTED);
182 } else {
183 props_.set_external_power(
184 external_power == power_manager::PowerSupplyProperties_ExternalPower_USB
185 ? power_manager::PowerSupplyProperties_ExternalPower_USB
186 : power_manager::PowerSupplyProperties_ExternalPower_AC);
187 }
188
189 props_.set_battery_percent(battery_percent);
190 props_.set_is_calculating_battery_time(is_calculating_battery_time);
191
192 NotifyObservers();
193 }
194
195 void FakePowerManagerClient::NotifyObservers() {
196 FOR_EACH_OBSERVER(Observer, observers_, PowerChanged(props_));
197 }
198
132 void FakePowerManagerClient::HandleSuspendReadiness() { 199 void FakePowerManagerClient::HandleSuspendReadiness() {
133 CHECK(num_pending_suspend_readiness_callbacks_ > 0); 200 CHECK(num_pending_suspend_readiness_callbacks_ > 0);
134 201
135 --num_pending_suspend_readiness_callbacks_; 202 --num_pending_suspend_readiness_callbacks_;
136 } 203 }
137 204
138 } // namespace chromeos 205 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698