Merge lp:~azzar1/unity/gnome_session_manager_more_tests into lp:unity

Proposed by Andrea Azzarone
Status: Merged
Approved by: Marco Trevisan (Treviño)
Approved revision: no longer in the source branch.
Merged at revision: 4001
Proposed branch: lp:~azzar1/unity/gnome_session_manager_more_tests
Merge into: lp:unity
Diff against target: 213 lines (+111/-12)
2 files modified
UnityCore/GnomeSessionManager.cpp (+3/-3)
tests/test_gnome_session_manager.cpp (+108/-9)
To merge this branch: bzr merge lp:~azzar1/unity/gnome_session_manager_more_tests
Reviewer Review Type Date Requested Status
Marco Trevisan (Treviño) Approve
PS Jenkins bot (community) continuous-integration Approve
Review via email: mp+216516@code.launchpad.net

Commit message

Add/Update tests for gnome session manager.

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Marco Trevisan (Treviño) (3v1n0) :
review: Approve
Revision history for this message
Andrea Azzarone (azzar1) wrote :

Merged with trunk.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'UnityCore/GnomeSessionManager.cpp'
2--- UnityCore/GnomeSessionManager.cpp 2015-05-19 18:33:41 +0000
3+++ UnityCore/GnomeSessionManager.cpp 2015-09-08 01:55:47 +0000
4@@ -121,7 +121,7 @@
5 }
6
7 {
8- presence_proxy_ = std::make_shared<glib::DBusProxy>("org.gnome.SessionManager",
9+ presence_proxy_ = std::make_shared<glib::DBusProxy>(test_mode_ ? testing::DBUS_NAME : "org.gnome.SessionManager",
10 "/org/gnome/SessionManager/Presence",
11 "org.gnome.SessionManager.Presence");
12
13@@ -547,12 +547,12 @@
14
15 void GnomeManager::LockScreen()
16 {
17- impl_->LockScreen(false);
18+ impl_->LockScreen(/* prompt */ false);
19 }
20
21 void GnomeManager::PromptLockScreen()
22 {
23- impl_->LockScreen(true);
24+ impl_->LockScreen(/* prompt */ true);
25 }
26
27 void GnomeManager::Logout()
28
29=== modified file 'tests/test_gnome_session_manager.cpp'
30--- tests/test_gnome_session_manager.cpp 2015-03-13 13:49:16 +0000
31+++ tests/test_gnome_session_manager.cpp 2015-09-08 01:55:47 +0000
32@@ -41,6 +41,7 @@
33 const std::string LOGIND_SESSION_PATH = "/org/freedesktop/login1/session/id0";
34 const std::string CONSOLE_KIT_PATH = "/org/freedesktop/ConsoleKit/Manager";
35 const std::string SESSION_MANAGER_PATH = "/org/gnome/SessionManager";
36+const std::string SESSION_MANAGER_PRESENCE_PATH = "/org/gnome/SessionManager/Presence";
37
38 const std::string SESSION_OPTIONS = "com.canonical.indicator.session";
39 const std::string SUPPRESS_DIALOGS_KEY = "suppress-logout-restart-shutdown";
40@@ -125,6 +126,17 @@
41 </interface>
42 </node>
43 )";
44+
45+const std::string SESSION_MANAGER_PRESENCE =
46+R"(<node>
47+ <interface name="org.gnome.SessionManager.Presence">
48+ <signal name="StatusChanged">
49+ <arg name="new_status" type="u" />
50+ </signal>
51+ </interface>
52+</node>
53+)";
54+
55 }
56
57 struct MockGnomeSessionManager : session::GnomeManager {
58@@ -185,6 +197,7 @@
59
60 session_manager_ = std::make_shared<DBusServer>();
61 session_manager_->AddObjects(introspection::SESSION_MANAGER, SESSION_MANAGER_PATH);
62+ session_manager_->AddObjects(introspection::SESSION_MANAGER_PRESENCE, SESSION_MANAGER_PRESENCE_PATH);
63 session_manager_->GetObjects().front()->SetMethodsCallsHandler([&] (std::string const& method, GVariant*) -> GVariant* {
64 if (method == "CanShutdown")
65 {
66@@ -372,6 +385,45 @@
67 EXPECT_EQ(manager->UserName(), g_get_user_name());
68 }
69
70+TEST_F(TestGnomeSessionManager, HostName)
71+{
72+ EXPECT_EQ(manager->HostName(), g_get_host_name());
73+}
74+
75+TEST_F(TestGnomeSessionManager, ScreenSaverActivate)
76+{
77+ bool signal_emitted = false;
78+ bool signal_value = false;
79+
80+ manager->screensaver_requested.connect([&signal_emitted, &signal_value] (bool value) {
81+ signal_emitted = true;
82+ signal_value = value;
83+ });
84+
85+ manager->ScreenSaverActivate();
86+
87+ Utils::WaitUntilMSec(signal_emitted);
88+ ASSERT_TRUE(signal_emitted);
89+ ASSERT_TRUE(signal_value);
90+}
91+
92+
93+TEST_F(TestGnomeSessionManager, ScreenSaverDeactivate)
94+{
95+ bool signal_emitted = false;
96+ bool signal_value = true;
97+
98+ manager->screensaver_requested.connect([&signal_emitted, &signal_value] (bool value) {
99+ signal_emitted = true;
100+ signal_value = value;
101+ });
102+
103+ manager->ScreenSaverDeactivate();
104+
105+ Utils::WaitUntilMSec(signal_emitted);
106+ ASSERT_FALSE(signal_value);
107+}
108+
109 TEST_F(TestGnomeSessionManager, LockScreen)
110 {
111 bool lock_emitted = false;
112@@ -387,6 +439,20 @@
113 EXPECT_TRUE(lock_emitted);
114 }
115
116+TEST_F(TestGnomeSessionManager, PromptLockScreen)
117+{
118+ bool signal_emitted = false;
119+
120+ manager->prompt_lock_requested.connect([&signal_emitted]() {
121+ signal_emitted = true;
122+ });
123+
124+ manager->PromptLockScreen();
125+
126+ Utils::WaitUntilMSec(signal_emitted);
127+ EXPECT_TRUE(signal_emitted);
128+}
129+
130 TEST_F(TestGnomeSessionManager, Logout)
131 {
132 bool logout_called = false;
133@@ -994,19 +1060,19 @@
134 EXPECT_TRUE(closed);
135 }
136
137-TEST_F(TestGnomeSessionManager, DISABLED_LogindLock)
138+TEST_F(TestGnomeSessionManager, LogindLock)
139 {
140- bool lock_emitted = false;
141+ bool signal_emitted = false;
142
143- manager->lock_requested.connect([&lock_emitted]()
144+ manager->prompt_lock_requested.connect([&signal_emitted]()
145 {
146- lock_emitted = true;
147+ signal_emitted = true;
148 });
149
150 logind_->GetObject("org.freedesktop.login1.Session")->EmitSignal("Lock");
151
152- Utils::WaitUntilMSec(lock_emitted);
153- EXPECT_TRUE(lock_emitted);
154+ Utils::WaitUntilMSec(signal_emitted);
155+ EXPECT_TRUE(signal_emitted);
156 }
157
158 TEST_F(TestGnomeSessionManager, LogindUnLock)
159@@ -1027,18 +1093,51 @@
160 TEST_F(TestGnomeSessionManager, NoLockWhenLockingDisabled)
161 {
162 bool lock_emitted = false;
163+ bool screensaver_emitted = false;
164+ bool screensaver_value = false;
165
166- manager->lock_requested.connect([&lock_emitted]()
167- {
168+ manager->lock_requested.connect([&lock_emitted]() {
169 lock_emitted = true;
170 });
171
172+ manager->screensaver_requested.connect([&screensaver_emitted, &screensaver_value] (bool value) {
173+ screensaver_emitted = true;
174+ screensaver_value = value;
175+ });
176+
177 DisableScreenLocking(true);
178+ manager->LockScreen();
179
180- manager->LockScreen();
181+ Utils::WaitUntilMSec(screensaver_emitted);
182+ EXPECT_TRUE(screensaver_value);
183 EXPECT_FALSE(lock_emitted);
184
185 DisableScreenLocking(false);
186 }
187
188+TEST_F(TestGnomeSessionManager, PresenceStatusChanged)
189+{
190+ bool signal_emitted = false;
191+ bool idle = false;
192+
193+ manager->presence_status_changed.connect([&signal_emitted, &idle] (bool is_idle) {
194+ signal_emitted = true;
195+ idle = is_idle;
196+ });
197+
198+ session_manager_->GetObject("org.gnome.SessionManager.Presence")->EmitSignal("StatusChanged", g_variant_new("(u)", 3));
199+
200+ Utils::WaitUntilMSec(signal_emitted);
201+ ASSERT_TRUE(signal_emitted);
202+ ASSERT_TRUE(idle);
203+
204+ signal_emitted = false;
205+
206+ session_manager_->GetObject("org.gnome.SessionManager.Presence")->EmitSignal("StatusChanged", g_variant_new("(u)", 0));
207+
208+ Utils::WaitUntilMSec(signal_emitted);
209+ ASSERT_TRUE(signal_emitted);
210+ ASSERT_FALSE(idle);
211+}
212+
213 } // Namespace