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

Side by Side Diff: ash/system/chromeos/power/tablet_power_button_controller_unittest.cc

Issue 2544073002: Resuming from suspend should stop backlights forced off if they are (Closed)
Patch Set: add test coverage Created 4 years 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "ash/system/chromeos/power/tablet_power_button_controller.h" 5 #include "ash/system/chromeos/power/tablet_power_button_controller.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "ash/common/ash_switches.h" 9 #include "ash/common/ash_switches.h"
10 #include "ash/common/session/session_state_delegate.h" 10 #include "ash/common/session/session_state_delegate.h"
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 // Tests tapping power button when screen is idle off. 203 // Tests tapping power button when screen is idle off.
204 TEST_F(TabletPowerButtonControllerTest, TappingPowerButtonWhenScreenIsIdleOff) { 204 TEST_F(TabletPowerButtonControllerTest, TappingPowerButtonWhenScreenIsIdleOff) {
205 power_manager_client_->SendBrightnessChanged(0, false); 205 power_manager_client_->SendBrightnessChanged(0, false);
206 PressPowerButton(); 206 PressPowerButton();
207 EXPECT_FALSE(GetBacklightsForcedOff()); 207 EXPECT_FALSE(GetBacklightsForcedOff());
208 power_manager_client_->SendBrightnessChanged(kNonZeroBrightness, false); 208 power_manager_client_->SendBrightnessChanged(kNonZeroBrightness, false);
209 ReleasePowerButton(); 209 ReleasePowerButton();
210 EXPECT_FALSE(GetBacklightsForcedOff()); 210 EXPECT_FALSE(GetBacklightsForcedOff());
211 } 211 }
212 212
213 // Tests tapping power button when device is suspended. 213 // Tests tapping power button when device is suspended without backlights forced
214 TEST_F(TabletPowerButtonControllerTest, TappingPowerButtonWhenSuspended) { 214 // off.
215 TEST_F(TabletPowerButtonControllerTest,
216 TappingPowerButtonWhenSuspendedWithoutBacklightsForcedOff) {
215 base::SimpleTestTickClock* tick_clock = new base::SimpleTestTickClock; 217 base::SimpleTestTickClock* tick_clock = new base::SimpleTestTickClock;
216 // |tick_clock| owned by |tablet_controller_|. 218 // |tick_clock| owned by |tablet_controller_|.
Daniel Erat 2016/12/02 00:58:27 nit: remove this comment; passing an std::unique_p
217 tablet_controller_->SetTickClockForTesting( 219 tablet_controller_->SetTickClockForTesting(
218 std::unique_ptr<base::TickClock>(tick_clock)); 220 std::unique_ptr<base::TickClock>(tick_clock));
219 221
220 power_manager_client_->SendSuspendImminent(); 222 power_manager_client_->SendSuspendImminent();
221 power_manager_client_->SendBrightnessChanged(0, false); 223 power_manager_client_->SendBrightnessChanged(0, false);
222 // There is a power button pressed here, but PowerButtonEvent is sent later. 224 // There is a power button pressed here, but PowerButtonEvent is sent later.
223 power_manager_client_->SendSuspendDone(); 225 power_manager_client_->SendSuspendDone();
224 power_manager_client_->SendBrightnessChanged(kNonZeroBrightness, false); 226 power_manager_client_->SendBrightnessChanged(kNonZeroBrightness, false);
225 227
226 // Send the power button event after a short delay and check that it is 228 // Send the power button event after a short delay and check that it is
227 // ignored. 229 // ignored.
228 tick_clock->Advance(base::TimeDelta::FromMilliseconds(500)); 230 tick_clock->Advance(base::TimeDelta::FromMilliseconds(500));
229 power_manager_client_->SendPowerButtonEvent(true, tick_clock->NowTicks()); 231 power_manager_client_->SendPowerButtonEvent(true, tick_clock->NowTicks());
230 power_manager_client_->SendPowerButtonEvent(false, tick_clock->NowTicks()); 232 power_manager_client_->SendPowerButtonEvent(false, tick_clock->NowTicks());
231 EXPECT_FALSE(GetBacklightsForcedOff()); 233 EXPECT_FALSE(GetBacklightsForcedOff());
232 234
233 // Send the power button event after a longer delay and check that it is not 235 // Send the power button event after a longer delay and check that it is not
234 // ignored. 236 // ignored.
235 tick_clock->Advance(base::TimeDelta::FromMilliseconds(1600)); 237 tick_clock->Advance(base::TimeDelta::FromMilliseconds(1600));
236 power_manager_client_->SendPowerButtonEvent(true, tick_clock->NowTicks()); 238 power_manager_client_->SendPowerButtonEvent(true, tick_clock->NowTicks());
237 power_manager_client_->SendPowerButtonEvent(false, tick_clock->NowTicks()); 239 power_manager_client_->SendPowerButtonEvent(false, tick_clock->NowTicks());
240 power_manager_client_->SendBrightnessChanged(0, false);
238 EXPECT_TRUE(GetBacklightsForcedOff()); 241 EXPECT_TRUE(GetBacklightsForcedOff());
239 } 242 }
240 243
244 // Tests tapping power button when device is suspended with backlights forced
245 // off.
246 TEST_F(TabletPowerButtonControllerTest,
247 TappingPowerButtonWhenSuspendedWithBacklightsForcedOff) {
248 base::SimpleTestTickClock* tick_clock = new base::SimpleTestTickClock;
249 // |tick_clock| owned by |tablet_controller_|.
Daniel Erat 2016/12/02 00:58:27 same here
250 tablet_controller_->SetTickClockForTesting(
251 std::unique_ptr<base::TickClock>(tick_clock));
252
253 PressPowerButton();
254 ReleasePowerButton();
255 power_manager_client_->SendBrightnessChanged(0, false);
256 EXPECT_TRUE(GetBacklightsForcedOff());
257 power_manager_client_->SendSuspendImminent();
258 // There is a power button pressed here, but PowerButtonEvent is sent later.
259 // Because of backlights forced off, resuming system will not resume
Daniel Erat 2016/12/02 00:58:27 nit: s/will not resume/will not restore/
260 // brightness.
261 power_manager_client_->SendSuspendDone();
262
263 // Send the power button event after a short delay and check that it is
264 // ignored. But if backlights are forced off, stop forcing off.
265 tick_clock->Advance(base::TimeDelta::FromMilliseconds(500));
266 power_manager_client_->SendPowerButtonEvent(true, tick_clock->NowTicks());
267 power_manager_client_->SendBrightnessChanged(kNonZeroBrightness, false);
268 power_manager_client_->SendPowerButtonEvent(false, tick_clock->NowTicks());
269 EXPECT_FALSE(GetBacklightsForcedOff());
270
271 // Send the power button event after a longer delay and check that it is not
272 // ignored.
273 tick_clock->Advance(base::TimeDelta::FromMilliseconds(1600));
274 power_manager_client_->SendPowerButtonEvent(true, tick_clock->NowTicks());
275 power_manager_client_->SendPowerButtonEvent(false, tick_clock->NowTicks());
276 power_manager_client_->SendBrightnessChanged(0, false);
277 EXPECT_TRUE(GetBacklightsForcedOff());
278 }
279
241 // For convertible device working on laptop mode, tests keyboard/mouse event 280 // For convertible device working on laptop mode, tests keyboard/mouse event
242 // when screen is off. 281 // when screen is off.
243 TEST_F(TabletPowerButtonControllerTest, ConvertibleOnLaptopMode) { 282 TEST_F(TabletPowerButtonControllerTest, ConvertibleOnLaptopMode) {
244 EnableMaximizeMode(false); 283 EnableMaximizeMode(false);
245 284
246 // KeyEvent should SetBacklightsForcedOff(false). 285 // KeyEvent should SetBacklightsForcedOff(false).
247 PressPowerButton(); 286 PressPowerButton();
248 ReleasePowerButton(); 287 ReleasePowerButton();
249 power_manager_client_->SendBrightnessChanged(0, false); 288 power_manager_client_->SendBrightnessChanged(0, false);
250 EXPECT_TRUE(GetBacklightsForcedOff()); 289 EXPECT_TRUE(GetBacklightsForcedOff());
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
318 tablet_controller_->OnKeyEvent(&power_key_pressed); 357 tablet_controller_->OnKeyEvent(&power_key_pressed);
319 tablet_controller_->OnKeyEvent(&power_key_pressed); 358 tablet_controller_->OnKeyEvent(&power_key_pressed);
320 ReleasePowerButton(); 359 ReleasePowerButton();
321 tablet_controller_->OnKeyEvent(&power_key_released); 360 tablet_controller_->OnKeyEvent(&power_key_released);
322 tablet_controller_->OnKeyEvent(&power_key_released); 361 tablet_controller_->OnKeyEvent(&power_key_released);
323 EXPECT_EQ(1, power_manager_client_->num_set_backlights_forced_off_calls()); 362 EXPECT_EQ(1, power_manager_client_->num_set_backlights_forced_off_calls());
324 } 363 }
325 364
326 } // namespace test 365 } // namespace test
327 } // namespace ash 366 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698