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

Unified 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: nits 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ash/system/chromeos/power/tablet_power_button_controller.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/system/chromeos/power/tablet_power_button_controller_unittest.cc
diff --git a/ash/system/chromeos/power/tablet_power_button_controller_unittest.cc b/ash/system/chromeos/power/tablet_power_button_controller_unittest.cc
index a99fb9008e2026badf611f2cd8184761ba56b934..4633032a53e5a128b82ea3b5b2c8768e3d18c392 100644
--- a/ash/system/chromeos/power/tablet_power_button_controller_unittest.cc
+++ b/ash/system/chromeos/power/tablet_power_button_controller_unittest.cc
@@ -61,6 +61,9 @@ class TabletPowerButtonControllerTest : public AshTestBase {
->tablet_power_button_controller_for_test();
test_api_ = base::MakeUnique<TabletPowerButtonController::TestApi>(
tablet_controller_);
+ tick_clock_ = new base::SimpleTestTickClock;
+ tablet_controller_->SetTickClockForTesting(
+ std::unique_ptr<base::TickClock>(tick_clock_));
generator_ = &AshTestBase::GetEventGenerator();
power_manager_client_->SendBrightnessChanged(kNonZeroBrightness, false);
EXPECT_FALSE(GetBacklightsForcedOff());
@@ -115,6 +118,7 @@ class TabletPowerButtonControllerTest : public AshTestBase {
LockStateController* lock_state_controller_; // Not owned.
TabletPowerButtonController* tablet_controller_; // Not owned.
std::unique_ptr<TabletPowerButtonController::TestApi> test_api_;
+ base::SimpleTestTickClock* tick_clock_; // Not owned.
ui::test::EventGenerator* generator_ = nullptr;
DISALLOW_COPY_AND_ASSIGN(TabletPowerButtonControllerTest);
@@ -210,13 +214,10 @@ TEST_F(TabletPowerButtonControllerTest, TappingPowerButtonWhenScreenIsIdleOff) {
EXPECT_FALSE(GetBacklightsForcedOff());
}
-// Tests tapping power button when device is suspended.
-TEST_F(TabletPowerButtonControllerTest, TappingPowerButtonWhenSuspended) {
- base::SimpleTestTickClock* tick_clock = new base::SimpleTestTickClock;
- // |tick_clock| owned by |tablet_controller_|.
- tablet_controller_->SetTickClockForTesting(
- std::unique_ptr<base::TickClock>(tick_clock));
-
+// Tests tapping power button when device is suspended without backlights forced
+// off.
+TEST_F(TabletPowerButtonControllerTest,
+ TappingPowerButtonWhenSuspendedWithoutBacklightsForcedOff) {
power_manager_client_->SendSuspendImminent();
power_manager_client_->SendBrightnessChanged(0, false);
// There is a power button pressed here, but PowerButtonEvent is sent later.
@@ -225,16 +226,48 @@ TEST_F(TabletPowerButtonControllerTest, TappingPowerButtonWhenSuspended) {
// Send the power button event after a short delay and check that it is
// ignored.
- tick_clock->Advance(base::TimeDelta::FromMilliseconds(500));
- power_manager_client_->SendPowerButtonEvent(true, tick_clock->NowTicks());
- power_manager_client_->SendPowerButtonEvent(false, tick_clock->NowTicks());
+ tick_clock_->Advance(base::TimeDelta::FromMilliseconds(500));
+ power_manager_client_->SendPowerButtonEvent(true, tick_clock_->NowTicks());
+ power_manager_client_->SendPowerButtonEvent(false, tick_clock_->NowTicks());
+ EXPECT_FALSE(GetBacklightsForcedOff());
+
+ // Send the power button event after a longer delay and check that it is not
+ // ignored.
+ tick_clock_->Advance(base::TimeDelta::FromMilliseconds(1600));
+ power_manager_client_->SendPowerButtonEvent(true, tick_clock_->NowTicks());
+ power_manager_client_->SendPowerButtonEvent(false, tick_clock_->NowTicks());
+ power_manager_client_->SendBrightnessChanged(0, false);
+ EXPECT_TRUE(GetBacklightsForcedOff());
+}
+
+// Tests tapping power button when device is suspended with backlights forced
+// off.
+TEST_F(TabletPowerButtonControllerTest,
+ TappingPowerButtonWhenSuspendedWithBacklightsForcedOff) {
+ PressPowerButton();
+ ReleasePowerButton();
+ power_manager_client_->SendBrightnessChanged(0, false);
+ EXPECT_TRUE(GetBacklightsForcedOff());
+ power_manager_client_->SendSuspendImminent();
+ // There is a power button pressed here, but PowerButtonEvent is sent later.
+ // Because of backlights forced off, resuming system will not restore
+ // brightness.
+ power_manager_client_->SendSuspendDone();
+
+ // Send the power button event after a short delay and check that it is
+ // ignored. But if backlights are forced off, stop forcing off.
+ tick_clock_->Advance(base::TimeDelta::FromMilliseconds(500));
+ power_manager_client_->SendPowerButtonEvent(true, tick_clock_->NowTicks());
+ power_manager_client_->SendBrightnessChanged(kNonZeroBrightness, false);
+ power_manager_client_->SendPowerButtonEvent(false, tick_clock_->NowTicks());
EXPECT_FALSE(GetBacklightsForcedOff());
// Send the power button event after a longer delay and check that it is not
// ignored.
- tick_clock->Advance(base::TimeDelta::FromMilliseconds(1600));
- power_manager_client_->SendPowerButtonEvent(true, tick_clock->NowTicks());
- power_manager_client_->SendPowerButtonEvent(false, tick_clock->NowTicks());
+ tick_clock_->Advance(base::TimeDelta::FromMilliseconds(1600));
+ power_manager_client_->SendPowerButtonEvent(true, tick_clock_->NowTicks());
+ power_manager_client_->SendPowerButtonEvent(false, tick_clock_->NowTicks());
+ power_manager_client_->SendBrightnessChanged(0, false);
EXPECT_TRUE(GetBacklightsForcedOff());
}
« no previous file with comments | « ash/system/chromeos/power/tablet_power_button_controller.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698