Chromium Code Reviews| Index: ash/system/chromeos/power/power_event_observer_unittest.cc |
| diff --git a/ash/system/chromeos/power/power_event_observer_unittest.cc b/ash/system/chromeos/power/power_event_observer_unittest.cc |
| index aaaf2c7c46a0afd0cba9cee8b3cac519ca138906..3afb748b1250c7fbea13a0298d293719321a06f5 100644 |
| --- a/ash/system/chromeos/power/power_event_observer_unittest.cc |
| +++ b/ash/system/chromeos/power/power_event_observer_unittest.cc |
| @@ -4,11 +4,15 @@ |
| #include "ash/system/chromeos/power/power_event_observer.h" |
| +#include "ash/shell.h" |
| #include "ash/test/ash_test_base.h" |
| #include "base/memory/scoped_ptr.h" |
| #include "base/time/time.h" |
| #include "chromeos/dbus/dbus_thread_manager.h" |
| #include "chromeos/dbus/power_manager_client.h" |
| +#include "ui/aura/window.h" |
| +#include "ui/aura/window_tree_host.h" |
| +#include "ui/compositor/compositor.h" |
| namespace ash { |
| @@ -29,6 +33,12 @@ class PowerEventObserverTest : public test::AshTestBase { |
| } |
| protected: |
| + void ExpectCompositorVisibility(bool expected) { |
|
Daniel Erat
2015/02/11 14:11:43
to get more-meaningful failure messages, how about
Chirantan Ekbote
2015/02/18 02:47:13
Done.
|
| + for (const auto& window : Shell::GetAllRootWindows()) { |
|
Daniel Erat
2015/02/11 14:11:42
nit: omit curly brackets
|
| + EXPECT_EQ(expected, window->GetHost()->compositor()->IsVisible()); |
| + } |
| + } |
| + |
| scoped_ptr<PowerEventObserver> observer_; |
| private: |
| @@ -67,4 +77,41 @@ TEST_F(PowerEventObserverTest, LockBeforeSuspend) { |
| EXPECT_EQ(0, client->GetNumPendingSuspendReadinessCallbacks()); |
| } |
| +TEST_F(PowerEventObserverTest, SetInvisibleBeforeSuspend) { |
| + // Tests that all the LayerTreeHosts are marked invisible before a suspend |
| + // request when the screen is not supposed to be locked before a suspend. |
| + ExpectCompositorVisibility(true); |
| + |
| + observer_->SuspendImminent(); |
| + ExpectCompositorVisibility(false); |
| + observer_->SuspendDone(base::TimeDelta()); |
| + |
| + // Tests that all the LayerTreeHosts are marked invisible _after_ the screen |
| + // is locked for a suspend request. |
| + SetCanLockScreen(true); |
| + SetShouldLockScreenBeforeSuspending(true); |
| + |
| + observer_->SuspendImminent(); |
| + ExpectCompositorVisibility(true); |
| + |
| + observer_->ScreenIsLocked(); |
| + ExpectCompositorVisibility(false); |
| + |
| + observer_->SuspendDone(base::TimeDelta()); |
| + ExpectCompositorVisibility(true); |
| +} |
| + |
| +TEST_F(PowerEventObserverTest, CanceledSuspend) { |
| + // Tests that the LayerTreeHosts are not marked invisible if a suspend is |
| + // canceled before the lock screen is ready. |
|
Daniel Erat
2015/02/11 14:11:43
nit: s/canceled/canceled or resumed/
Chirantan Ekbote
2015/02/18 02:47:13
Done.
|
| + SetCanLockScreen(true); |
| + SetShouldLockScreenBeforeSuspending(true); |
| + observer_->SuspendImminent(); |
| + ExpectCompositorVisibility(true); |
| + |
| + observer_->SuspendDone(base::TimeDelta()); |
| + observer_->ScreenIsLocked(); |
| + ExpectCompositorVisibility(true); |
| +} |
| + |
| } // namespace ash |