~thalexander/unity/update-fsf-address

« back to all changes in this revision

Viewing changes to tests/test_gnome_session_manager.cpp

  • Committer: Marco Trevisan (Treviño)
  • Date: 2016-03-07 18:51:47 UTC
  • mfrom: (4080 unity)
  • mto: This revision was merged to the branch mainline in revision 4085.
  • Revision ID: mail@3v1n0.net-20160307185147-0p1m89up4tqfb6w1
Merge with trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
42
42
const std::string CONSOLE_KIT_PATH = "/org/freedesktop/ConsoleKit/Manager";
43
43
const std::string SESSION_MANAGER_PATH = "/org/gnome/SessionManager";
44
44
const std::string SESSION_MANAGER_PRESENCE_PATH = "/org/gnome/SessionManager/Presence";
 
45
const std::string DISPLAY_MANAGER_SEAT_PATH = "/org/freedesktop/DisplayManager/Seat0";
45
46
 
46
47
const std::string SESSION_OPTIONS = "com.canonical.indicator.session";
47
48
const std::string SUPPRESS_DIALOGS_KEY = "suppress-logout-restart-shutdown";
137
138
</node>
138
139
)";
139
140
 
 
141
const std::string DISPLAY_MANAGER_SEAT =
 
142
R"(<node>
 
143
  <interface name="org.freedesktop.DisplayManager.Seat">
 
144
    <method name="SwitchToGreeter"/>
 
145
  </interface>
 
146
</node>
 
147
)";
140
148
}
141
149
 
142
150
struct MockGnomeSessionManager : session::GnomeManager {
208
216
      return nullptr;
209
217
    });
210
218
 
 
219
    display_manager_seat_ = std::make_shared<DBusServer>();
 
220
    display_manager_seat_->AddObjects(introspection::DISPLAY_MANAGER_SEAT, DISPLAY_MANAGER_SEAT_PATH);
 
221
 
211
222
    manager = std::make_shared<MockGnomeSessionManager>();
212
223
    shell_proxy_ = std::make_shared<DBusProxy>(TEST_SERVER_NAME, SHELL_OBJECT_PATH, SHELL_INTERFACE);
213
224
 
228
239
    Utils::WaitUntilMSec([] { return logind_->IsConnected(); });
229
240
    Utils::WaitUntilMSec([] { return console_kit_->IsConnected(); });
230
241
    Utils::WaitUntilMSec([] { return session_manager_->IsConnected(); });
 
242
    Utils::WaitUntilMSec([] { return display_manager_seat_->IsConnected(); });
231
243
    Utils::WaitUntilMSec([] { return shell_proxy_->IsConnected();});
232
244
    ASSERT_TRUE(shell_proxy_->IsConnected());
233
245
    EnableInteractiveShutdown(true);
277
289
    logind_.reset();
278
290
    console_kit_.reset();
279
291
    session_manager_.reset();
 
292
    display_manager_seat_.reset();
280
293
  }
281
294
 
282
295
  bool SettingsAvailable()
342
355
  static DBusServer::Ptr console_kit_;
343
356
  static DBusServer::Ptr logind_;
344
357
  static DBusServer::Ptr session_manager_;
 
358
  static DBusServer::Ptr display_manager_seat_;
345
359
  static DBusProxy::Ptr shell_proxy_;
346
360
};
347
361
 
350
364
DBusServer::Ptr TestGnomeSessionManager::console_kit_;
351
365
DBusServer::Ptr TestGnomeSessionManager::logind_;
352
366
DBusServer::Ptr TestGnomeSessionManager::session_manager_;
 
367
DBusServer::Ptr TestGnomeSessionManager::display_manager_seat_;
353
368
DBusProxy::Ptr TestGnomeSessionManager::shell_proxy_;
354
369
bool TestGnomeSessionManager::can_shutdown_;
355
370
bool TestGnomeSessionManager::can_suspend_;
390
405
  EXPECT_EQ(manager->HostName(), g_get_host_name());
391
406
}
392
407
 
 
408
TEST_F(TestGnomeSessionManager, SwitchToGreeter)
 
409
{
 
410
  bool switch_called = false;
 
411
 
 
412
  display_manager_seat_->GetObjects().front()->SetMethodsCallsHandler([&] (std::string const& method, GVariant*) {
 
413
    if (method == "SwitchToGreeter")
 
414
      switch_called = true;
 
415
 
 
416
    return static_cast<GVariant*>(nullptr);
 
417
  });
 
418
 
 
419
  manager->SwitchToGreeter();
 
420
 
 
421
  Utils::WaitUntilMSec(switch_called);
 
422
  EXPECT_TRUE(switch_called);
 
423
}
 
424
 
393
425
TEST_F(TestGnomeSessionManager, ScreenSaverActivate)
394
426
{
395
427
  bool signal_emitted = false;