From 46837276fb52c4e1c6af7a4cb26d4cc18cb60e20 Mon Sep 17 00:00:00 2001 From: Robert Tari Date: Mon, 18 Oct 2021 22:14:06 +0200 Subject: Manage DESKTOP_SESSION in unit tests --- tests/tst_utils.cpp | 20 ++++++++++++++++++++ tests/tst_utils.vala | 21 ++++++++++++++++++++- 2 files changed, 40 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/tst_utils.cpp b/tests/tst_utils.cpp index c6b82fb..a1cf7c5 100644 --- a/tests/tst_utils.cpp +++ b/tests/tst_utils.cpp @@ -34,13 +34,17 @@ public: void TearDown() { unsetenv("XDG_CURRENT_DESKTOP"); + unsetenv("DESKTOP_SESSION"); } }; TEST_F(XdgCurrentDesktopUtilsTest, isLomiri) { unsetenv("XDG_CURRENT_DESKTOP"); + unsetenv("DESKTOP_SESSION"); EXPECT_FALSE(ayatana_common_utils_is_lomiri()); + setenv("DESKTOP_SESSION", "ubuntu-touch", 1); + EXPECT_TRUE(ayatana_common_utils_is_lomiri()); setenv("XDG_CURRENT_DESKTOP", "Lomiri", 1); EXPECT_TRUE(ayatana_common_utils_is_lomiri()); } @@ -48,13 +52,19 @@ TEST_F(XdgCurrentDesktopUtilsTest, isLomiri) TEST_F(XdgCurrentDesktopUtilsTest, isGnome) { unsetenv("XDG_CURRENT_DESKTOP"); + unsetenv("DESKTOP_SESSION"); EXPECT_FALSE(ayatana_common_utils_is_gnome()); + setenv("DESKTOP_SESSION", "gnome", 1); + EXPECT_TRUE(ayatana_common_utils_is_gnome()); setenv("XDG_CURRENT_DESKTOP", "GNOME", 1); EXPECT_TRUE(ayatana_common_utils_is_gnome()); } TEST_F(XdgCurrentDesktopUtilsTest, isUnity) { unsetenv("XDG_CURRENT_DESKTOP"); + unsetenv("DESKTOP_SESSION"); + EXPECT_FALSE(ayatana_common_utils_is_unity()); + setenv("DESKTOP_SESSION", "gnome-fallback", 1); EXPECT_FALSE(ayatana_common_utils_is_unity()); setenv("XDG_CURRENT_DESKTOP", "Unity", 1); EXPECT_TRUE(ayatana_common_utils_is_unity()); @@ -62,20 +72,27 @@ TEST_F(XdgCurrentDesktopUtilsTest, isUnity) TEST_F(XdgCurrentDesktopUtilsTest, isMate) { unsetenv("XDG_CURRENT_DESKTOP"); + unsetenv("DESKTOP_SESSION"); EXPECT_FALSE(ayatana_common_utils_is_mate()); + setenv("DESKTOP_SESSION", "mate", 1); + EXPECT_TRUE(ayatana_common_utils_is_mate()); setenv("XDG_CURRENT_DESKTOP", "MATE", 1); EXPECT_TRUE(ayatana_common_utils_is_mate()); } TEST_F(XdgCurrentDesktopUtilsTest, isXfce) { unsetenv("XDG_CURRENT_DESKTOP"); + unsetenv("DESKTOP_SESSION"); EXPECT_FALSE(ayatana_common_utils_is_xfce()); + setenv("DESKTOP_SESSION", "xfce", 1); + EXPECT_TRUE(ayatana_common_utils_is_xfce()); setenv("XDG_CURRENT_DESKTOP", "XFCE", 1); EXPECT_TRUE(ayatana_common_utils_is_xfce()); } TEST_F(XdgCurrentDesktopUtilsTest, isPantheon) { unsetenv("XDG_CURRENT_DESKTOP"); + unsetenv("DESKTOP_SESSION"); EXPECT_FALSE(ayatana_common_utils_is_pantheon()); setenv("XDG_CURRENT_DESKTOP", "PANTHEON", 1); EXPECT_TRUE(ayatana_common_utils_is_pantheon()); @@ -83,7 +100,10 @@ TEST_F(XdgCurrentDesktopUtilsTest, isPantheon) TEST_F(XdgCurrentDesktopUtilsTest, isBudgie) { unsetenv("XDG_CURRENT_DESKTOP"); + unsetenv("DESKTOP_SESSION"); EXPECT_FALSE(ayatana_common_utils_is_budgie()); + setenv("DESKTOP_SESSION", "budgie-desktop", 1); + EXPECT_TRUE(ayatana_common_utils_is_budgie()); setenv("XDG_CURRENT_DESKTOP", "Budgie:GNOME", 1); EXPECT_TRUE(ayatana_common_utils_is_budgie()); } diff --git a/tests/tst_utils.vala b/tests/tst_utils.vala index a7a624b..44ce6fe 100644 --- a/tests/tst_utils.vala +++ b/tests/tst_utils.vala @@ -5,44 +5,63 @@ using GLib; static int main(string[] args) { assert(args.length == 2); - unset_variable("DESKTOP_SESSION"); + unset_variable("DESKTOP_SESSION"); unset_variable("XDG_CURRENT_DESKTOP"); assert(! utils_is_lomiri()); + set_variable("DESKTOP_SESSION", "ubuntu-touch", true); + assert(utils_is_lomiri()); set_variable("XDG_CURRENT_DESKTOP", "Lomiri", true); assert(utils_is_lomiri()); unset_variable("XDG_CURRENT_DESKTOP"); + unset_variable("DESKTOP_SESSION"); assert(! utils_is_gnome()); + set_variable("DESKTOP_SESSION", "gnome", true); + assert(utils_is_gnome()); set_variable("XDG_CURRENT_DESKTOP", "GNOME", true); assert(utils_is_gnome()); unset_variable("XDG_CURRENT_DESKTOP"); + unset_variable("DESKTOP_SESSION"); + assert(! utils_is_unity()); + set_variable("DESKTOP_SESSION", "gnome-fallback", true); assert(! utils_is_unity()); set_variable("XDG_CURRENT_DESKTOP", "Unity", true); assert(utils_is_unity()); unset_variable("XDG_CURRENT_DESKTOP"); + unset_variable("DESKTOP_SESSION"); assert(! utils_is_mate()); + set_variable("DESKTOP_SESSION", "mate", true); + assert(utils_is_mate()); set_variable("XDG_CURRENT_DESKTOP", "MATE", true); assert(utils_is_mate()); unset_variable("XDG_CURRENT_DESKTOP"); + unset_variable("DESKTOP_SESSION"); assert(! utils_is_xfce()); + set_variable("DESKTOP_SESSION", "xfce", true); + assert(utils_is_xfce()); set_variable("XDG_CURRENT_DESKTOP", "XFCE", true); assert(utils_is_xfce()); unset_variable("XDG_CURRENT_DESKTOP"); + unset_variable("DESKTOP_SESSION"); assert(! utils_is_pantheon()); set_variable("XDG_CURRENT_DESKTOP", "PANTHEON", true); assert(utils_is_pantheon()); unset_variable("XDG_CURRENT_DESKTOP"); + unset_variable("DESKTOP_SESSION"); assert(! utils_is_budgie()); + set_variable("DESKTOP_SESSION", "budgie-desktop", true); + assert(utils_is_budgie()); set_variable("XDG_CURRENT_DESKTOP", "Budgie:GNOME", true); assert(utils_is_budgie()); unset_variable("XDG_CURRENT_DESKTOP"); + unset_variable("DESKTOP_SESSION"); set_variable("GSETTINGS_SCHEMA_DIR", args[1], true); set_variable("GSETTINGS_BACKEND", "memory", true); -- cgit v1.2.3