Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 Loading... | |
| 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 Loading... | |
| 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 |
| OLD | NEW |