summaryrefslogtreecommitdiff
path: root/tests
diff options
authorMartin Pitt <martin.pitt@canonical.com>2013-03-19 17:05:30 +0100
committerMartin Pitt <martin.pitt@canonical.com>2013-03-19 17:05:30 +0100
commit005444e5ec418a3a3803039545f95a950784dcc1 (patch)
tree442af06a28454152290d63889e195aa0bcf55902 /tests
parent221c8cd9e4d9f8abeb168f6c0e38483b1c215122 (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.cpp43
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")