diff options
| author | Martin Pitt <martin.pitt@canonical.com> | 2013-03-19 17:05:30 +0100 |
|---|---|---|
| committer | Martin Pitt <martin.pitt@canonical.com> | 2013-03-19 17:05:30 +0100 |
| commit | 005444e5ec418a3a3803039545f95a950784dcc1 (patch) | |
| tree | 442af06a28454152290d63889e195aa0bcf55902 /tests | |
| parent | 221c8cd9e4d9f8abeb168f6c0e38483b1c215122 (diff) | |
Rework logind → ConsoleKit/upower fallback
Stop looking at $XDG_* environment variables for shutdown, reboot, suspend, and hibernate. Instead, just try calling logind and fall back to ConsoleKit/UPower on error. We still look at $XDG_* for terminating the session, as we need the actual value of the environment variable. (bzr r3226.3.4)
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/test_gnome_session_manager.cpp | 43 |
1 files changed, 23 insertions, 20 deletions
diff --git a/tests/test_gnome_session_manager.cpp b/tests/test_gnome_session_manager.cpp index 0627ab904..2a43517a3 100644 --- a/tests/test_gnome_session_manager.cpp +++ b/tests/test_gnome_session_manager.cpp @@ -211,6 +211,15 @@ struct TestGnomeSessionManager : testing::Test Utils::WaitUntilMSec([] { return shell_proxy_->IsConnected();}); ASSERT_TRUE(shell_proxy_->IsConnected()); EnableInteractiveShutdown(true); + + // reset default logind methods, to avoid tests clobbering each other + logind_->GetObjects().front()->SetMethodsCallsHandler([&] (std::string const& method, GVariant*) -> GVariant* { + if (method == "CanSuspend") + return g_variant_new("(s)", can_suspend_ ? "yes" : "no"); + else if (method == "CanHibernate") + return g_variant_new("(s)", can_hibernate_ ? "yes" : "no"); + return nullptr; + }); } void TearDown() @@ -324,25 +333,25 @@ TEST_F(TestGnomeSessionManager, CanShutdown) TEST_F(TestGnomeSessionManager, CanHibernateUPower) { - g_unsetenv("XDG_SESSION_ID"); + // disable logind + logind_->GetObjects().front()->SetMethodsCallsHandler(nullptr); EXPECT_EQ(manager->CanHibernate(), can_hibernate_); } TEST_F(TestGnomeSessionManager, CanHibernateLogind) { - g_setenv("XDG_SESSION_ID", "logind-id0", TRUE); EXPECT_EQ(manager->CanHibernate(), can_hibernate_); } TEST_F(TestGnomeSessionManager, CanSuspendUPower) { - g_unsetenv("XDG_SESSION_ID"); + // disable logind + logind_->GetObjects().front()->SetMethodsCallsHandler(nullptr); EXPECT_EQ(manager->CanSuspend(), can_suspend_); } TEST_F(TestGnomeSessionManager, CanSuspendLogind) { - g_setenv("XDG_SESSION_ID", "logind-id0", TRUE); EXPECT_EQ(manager->CanSuspend(), can_suspend_); } @@ -481,8 +490,6 @@ TEST_F(TestGnomeSessionManager, RebootFallbackLogind) { // This makes the standard call to return an error. session_manager_->GetObjects().front()->SetMethodsCallsHandler(nullptr); - g_setenv("XDG_SESSION_ID", "logind-id0", TRUE); - g_unsetenv("XDG_SESSION_COOKIE"); bool reboot_called = false; @@ -503,8 +510,8 @@ TEST_F(TestGnomeSessionManager, RebootFallbackConsoleKit) { // This makes the standard call to return an error. session_manager_->GetObjects().front()->SetMethodsCallsHandler(nullptr); - g_setenv("XDG_SESSION_COOKIE", "ck-session-cookie", TRUE); - g_unsetenv("XDG_SESSION_ID"); + // disable logind + logind_->GetObjects().front()->SetMethodsCallsHandler(nullptr); bool reboot_called = false; @@ -542,8 +549,6 @@ TEST_F(TestGnomeSessionManager, ShutdownFallbackLogind) { // This makes the standard call to return an error. session_manager_->GetObjects().front()->SetMethodsCallsHandler(nullptr); - g_setenv("XDG_SESSION_ID", "logind-id0", TRUE); - g_unsetenv("XDG_SESSION_COOKIE"); bool shutdown_called = false; @@ -564,8 +569,8 @@ TEST_F(TestGnomeSessionManager, ShutdownFallbackConsoleKit) { // This makes the standard call to return an error. session_manager_->GetObjects().front()->SetMethodsCallsHandler(nullptr); - g_setenv("XDG_SESSION_COOKIE", "ck-session-cookie", TRUE); - g_unsetenv("XDG_SESSION_ID"); + // disable logind + logind_->GetObjects().front()->SetMethodsCallsHandler(nullptr); bool shutdown_called = false; @@ -585,8 +590,9 @@ TEST_F(TestGnomeSessionManager, ShutdownFallbackConsoleKit) TEST_F(TestGnomeSessionManager, SuspendUPower) { bool suspend_called = false; - g_setenv("XDG_SESSION_COOKIE", "ck-session-cookie", TRUE); - g_unsetenv("XDG_SESSION_ID"); + + // disable logind + logind_->GetObjects().front()->SetMethodsCallsHandler(nullptr); upower_->GetObjects().front()->SetMethodsCallsHandler([&] (std::string const& method, GVariant*) -> GVariant* { if (method == "Suspend") @@ -604,8 +610,6 @@ TEST_F(TestGnomeSessionManager, SuspendUPower) TEST_F(TestGnomeSessionManager, SuspendLogind) { bool suspend_called = false; - g_setenv("XDG_SESSION_ID", "logind-id0", TRUE); - g_unsetenv("XDG_SESSION_COOKIE"); logind_->GetObjects().front()->SetMethodsCallsHandler([&] (std::string const& method, GVariant*) -> GVariant* { if (method == "Suspend") @@ -623,8 +627,9 @@ TEST_F(TestGnomeSessionManager, SuspendLogind) TEST_F(TestGnomeSessionManager, HibernateUPower) { bool hibernate_called = false; - g_setenv("XDG_SESSION_COOKIE", "ck-session-cookie", TRUE); - g_unsetenv("XDG_SESSION_ID"); + + // disable logind + logind_->GetObjects().front()->SetMethodsCallsHandler(nullptr); upower_->GetObjects().front()->SetMethodsCallsHandler([&] (std::string const& method, GVariant*) -> GVariant* { if (method == "Hibernate") @@ -642,8 +647,6 @@ TEST_F(TestGnomeSessionManager, HibernateUPower) TEST_F(TestGnomeSessionManager, HibernateLogind) { bool hibernate_called = false; - g_setenv("XDG_SESSION_ID", "logind-id0", TRUE); - g_unsetenv("XDG_SESSION_COOKIE"); logind_->GetObjects().front()->SetMethodsCallsHandler([&] (std::string const& method, GVariant*) -> GVariant* { if (method == "Hibernate") |
