summaryrefslogtreecommitdiff
path: root/tests
diff options
authorSami Jaktholm <sjakthol@outlook.com>2014-04-11 10:26:11 +0300
committerSami Jaktholm <sjakthol@outlook.com>2014-04-11 10:26:11 +0300
commit962c3e7bbe8e5a68aa0eed330539ca40f43ceeae (patch)
treef7784e8f549a2ce1de72e5fa25dd4a6de8528871 /tests
parent8e6caf4e94e382b43c5dc4720235d7acca02265f (diff)
Lockscreen: Give proper grabs to the shield before releasing blank_window_.
Fixes LP: #1306417 (bzr r3779.1.1)
Diffstat (limited to 'tests')
-rw-r--r--tests/test_lockscreen_controller.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/test_lockscreen_controller.cpp b/tests/test_lockscreen_controller.cpp
index fa01a0a61..55add06bc 100644
--- a/tests/test_lockscreen_controller.cpp
+++ b/tests/test_lockscreen_controller.cpp
@@ -43,6 +43,7 @@ namespace
{
const unsigned ANIMATION_DURATION = 400 * 1000; // in microseconds
+const unsigned BLANK_ANIMATION_DURATION = 10000 * 1000;
const unsigned TICK_DURATION = 10 * 1000;
}
@@ -87,6 +88,7 @@ struct TestLockScreenController : Test
{}
using Controller::shields_;
+ using Controller::blank_window_;
};
nux::NuxTimerTickSource tick_source;
@@ -227,5 +229,26 @@ TEST_F(TestLockScreenController, UnlockScreenOnMultiMonitor)
EXPECT_TRUE(controller.shields_.empty());
}
+TEST_F(TestLockScreenController, ShieldHasGrabAfterBlank)
+{
+
+ // Lock...
+ session_manager->lock_requested.emit();
+ Utils::WaitUntilMSec([this]{ return controller.shields_.size() == 1; });
+ ASSERT_EQ(1, controller.shields_.size());
+
+ // ...and let the screen blank.
+ session_manager->presence_status_changed.emit(true);
+ tick_source.tick(BLANK_ANIMATION_DURATION);
+
+ ASSERT_TRUE(controller.blank_window_->GetOpacity() == 1.0);
+ ASSERT_TRUE(controller.blank_window_->OwnsPointerGrab());
+
+ // Wake the screen
+ dbus_manager->simulate_activity.emit();
+
+ EXPECT_TRUE(controller.shields_.at(0)->OwnsPointerGrab());
+}
+
} // lockscreen
} // unity