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

Unified Diff: ash/system/chromeos/power/power_event_observer_unittest.cc

Issue 910393002: Disable rendering when suspending on chrome os (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: clean up Created 5 years, 10 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 side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698