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

Unified Diff: screen_locker_handler_test.cc

Issue 6011011: wm: Fade screen on signout. (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/window_manager.git@master
Patch Set: apply review feedback Created 10 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 | « screen_locker_handler.cc ('k') | window_manager.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: screen_locker_handler_test.cc
diff --git a/screen_locker_handler_test.cc b/screen_locker_handler_test.cc
index 6657bb68b3993477752e9ee2bdb79431883900fe..3705ff4c0a7ffe7d2266d068044354507178950d 100644
--- a/screen_locker_handler_test.cc
+++ b/screen_locker_handler_test.cc
@@ -67,13 +67,24 @@ class ScreenLockerHandlerTest : public BasicWindowManagerTest {
MockCompositor::TexturePixmapActor* actor) {
CHECK(actor);
EXPECT_TRUE(actor->is_shown());
- EXPECT_FLOAT_EQ(round(0.5 * wm_->width()), actor->x());
- EXPECT_FLOAT_EQ(round(0.5 * wm_->height()), actor->y());
+ EXPECT_EQ(static_cast<int>(round(0.5 * wm_->width())), actor->x());
+ EXPECT_EQ(static_cast<int>(round(0.5 * wm_->height())), actor->y());
EXPECT_FLOAT_EQ(0.0, actor->scale_x());
EXPECT_FLOAT_EQ(0.0, actor->scale_y());
EXPECT_FLOAT_EQ(0.0, actor->opacity());
}
+ void TestActorConfiguredForFadeout(
+ MockCompositor::TexturePixmapActor* actor) {
+ CHECK(actor);
+ EXPECT_TRUE(actor->is_shown());
+ EXPECT_EQ(0, actor->x());
+ EXPECT_EQ(0, actor->y());
+ EXPECT_FLOAT_EQ(1.0, actor->scale_x());
+ EXPECT_FLOAT_EQ(1.0, actor->scale_y());
+ EXPECT_FLOAT_EQ(0.0, actor->opacity());
+ }
+
bool IsOnlyActiveVisibilityGroup(int group) {
if (compositor_->active_visibility_groups().size() !=
static_cast<size_t>(1)) {
@@ -195,7 +206,7 @@ TEST_F(ScreenLockerHandlerTest, AbortedLock) {
EXPECT_TRUE(actor->visibility_groups().count(
WindowManager::VISIBILITY_GROUP_SCREEN_LOCKER) != 0);
EXPECT_TRUE(actor->visibility_groups().count(
- WindowManager::VISIBILITY_GROUP_SHUTDOWN) != 0);
+ WindowManager::VISIBILITY_GROUP_SESSION_ENDING) != 0);
EXPECT_TRUE(IsOnlyActiveVisibilityGroup(
WindowManager::VISIBILITY_GROUP_SCREEN_LOCKER));
@@ -274,9 +285,9 @@ TEST_F(ScreenLockerHandlerTest, AbortedShutdown) {
// The snapshot should be the only actor currently visible.
EXPECT_TRUE(actor->visibility_groups().count(
- WindowManager::VISIBILITY_GROUP_SHUTDOWN) != 0);
+ WindowManager::VISIBILITY_GROUP_SESSION_ENDING) != 0);
EXPECT_TRUE(IsOnlyActiveVisibilityGroup(
- WindowManager::VISIBILITY_GROUP_SHUTDOWN));
+ WindowManager::VISIBILITY_GROUP_SESSION_ENDING));
// Now tell the WM that the button was released before being held long
// enough to shut down.
@@ -318,7 +329,7 @@ TEST_F(ScreenLockerHandlerTest, AbortedShutdown) {
ASSERT_TRUE(actor != NULL);
TestActorConfiguredForSlowClose(actor);
EXPECT_TRUE(IsOnlyActiveVisibilityGroup(
- WindowManager::VISIBILITY_GROUP_SHUTDOWN));
+ WindowManager::VISIBILITY_GROUP_SESSION_ENDING));
// After aborting, we should be showing just the screen locker window.
msg.set_param(0, chromeos::WM_IPC_POWER_BUTTON_ABORTED_SHUTDOWN);
@@ -345,7 +356,7 @@ TEST_F(ScreenLockerHandlerTest, HandleShutdown) {
TestActorConfiguredForSlowClose(actor);
EXPECT_NE(-1, handler_->destroy_snapshot_timeout_id_);
EXPECT_TRUE(IsOnlyActiveVisibilityGroup(
- WindowManager::VISIBILITY_GROUP_SHUTDOWN));
+ WindowManager::VISIBILITY_GROUP_SESSION_ENDING));
// Notify the window manager that the system is being shut down.
msg.set_type(chromeos::WM_IPC_MESSAGE_WM_NOTIFY_SHUTTING_DOWN);
@@ -365,7 +376,7 @@ TEST_F(ScreenLockerHandlerTest, HandleShutdown) {
ASSERT_EQ(actor, GetSnapshotActor());
TestActorConfiguredForFastClose(actor);
EXPECT_TRUE(IsOnlyActiveVisibilityGroup(
- WindowManager::VISIBILITY_GROUP_SHUTDOWN));
+ WindowManager::VISIBILITY_GROUP_SESSION_ENDING));
// There's no need to destroy the snapshot after we're done with the
// animation; we're not going to be showing anything else onscreen.
@@ -426,6 +437,24 @@ TEST_F(ScreenLockerHandlerTest, ShowSomeOtherWindowsWhileLocked) {
WindowManager::VISIBILITY_GROUP_SCREEN_LOCKER));
}
+// Test that we handle messages from Chrome notifying us that the user is
+// signing out.
+TEST_F(ScreenLockerHandlerTest, SigningOut) {
+ WmIpc::Message msg(chromeos::WM_IPC_MESSAGE_WM_NOTIFY_SIGNING_OUT);
+ SendWmIpcMessage(msg);
+
+ // We should grab the pointer and keyboard, assign a transparent cursor to the
+ // root window, and fade out a snapshot of the screen.
+ XWindow root = xconn_->GetRootWindow();
+ EXPECT_EQ(root, xconn_->pointer_grab_xid());
+ EXPECT_EQ(root, xconn_->keyboard_grab_xid());
+ EXPECT_EQ(MockXConnection::kTransparentCursor,
+ xconn_->GetWindowInfoOrDie(root)->cursor);
+ TestActorConfiguredForFadeout(GetSnapshotActor());
+ EXPECT_TRUE(IsOnlyActiveVisibilityGroup(
+ WindowManager::VISIBILITY_GROUP_SESSION_ENDING));
+}
+
} // namespace window_manager
int main(int argc, char** argv) {
« no previous file with comments | « screen_locker_handler.cc ('k') | window_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698