diff options
-rw-r--r-- | src/utils.c | 6 | ||||
-rw-r--r-- | src/utils.h | 3 | ||||
-rw-r--r-- | tests/tst_utils.cpp | 11 | ||||
-rw-r--r-- | tests/tst_utils.vala | 8 |
4 files changed, 28 insertions, 0 deletions
diff --git a/src/utils.c b/src/utils.c index 0a33a74..712b060 100644 --- a/src/utils.c +++ b/src/utils.c @@ -74,6 +74,12 @@ ayatana_common_utils_is_lomiri () } gboolean +ayatana_common_utils_is_ubuntutouch () +{ + return is_xdg_current_desktop(DESKTOP_UBUNTUTOUCH, SESSION_UBUNTUTOUCH); +} + +gboolean ayatana_common_utils_is_gnome () { return is_xdg_current_desktop(DESKTOP_GNOME, SESSION_GNOME); diff --git a/src/utils.h b/src/utils.h index 9d3e641..c7c658e 100644 --- a/src/utils.h +++ b/src/utils.h @@ -23,6 +23,7 @@ #include <gio/gio.h> static const char * const DESKTOP_LOMIRI = "Lomiri"; +static const char * const DESKTOP_UBUNTUTOUCH = NULL; static const char * const DESKTOP_UNITY = "Unity"; static const char * const DESKTOP_MATE = "MATE"; static const char * const DESKTOP_GNOME = "GNOME"; @@ -30,6 +31,7 @@ static const char * const DESKTOP_XFCE = "XFCE"; static const char * const DESKTOP_PANTHEON = "PANTHEON"; static const char * const DESKTOP_BUDGIE = "Budgie"; static const char * const SESSION_LOMIRI = "ubuntu-touch"; +static const char * const SESSION_UBUNTUTOUCH = "ubuntu-touch"; static const char * const SESSION_UNITY = NULL; static const char * const SESSION_MATE = "mate"; static const char * const SESSION_GNOME = "gnome"; @@ -38,6 +40,7 @@ static const char * const SESSION_PANTHEON = NULL; static const char * const SESSION_BUDGIE = "budgie-desktop"; gboolean ayatana_common_utils_is_lomiri(); +gboolean ayatana_common_utils_is_ubuntutouch(); gboolean ayatana_common_utils_is_unity(); gboolean ayatana_common_utils_is_gnome(); gboolean ayatana_common_utils_is_mate(); diff --git a/tests/tst_utils.cpp b/tests/tst_utils.cpp index a1cf7c5..0d59da0 100644 --- a/tests/tst_utils.cpp +++ b/tests/tst_utils.cpp @@ -49,6 +49,17 @@ TEST_F(XdgCurrentDesktopUtilsTest, isLomiri) EXPECT_TRUE(ayatana_common_utils_is_lomiri()); } +TEST_F(XdgCurrentDesktopUtilsTest, isUbuntuTouch) +{ + unsetenv("XDG_CURRENT_DESKTOP"); + unsetenv("DESKTOP_SESSION"); + EXPECT_FALSE(ayatana_common_utils_is_ubuntutouch()); + setenv("XDG_CURRENT_DESKTOP", "Lomiri", 1); + EXPECT_FALSE(ayatana_common_utils_is_ubuntutouch()); + setenv("DESKTOP_SESSION", "ubuntu-touch", 1); + EXPECT_TRUE(ayatana_common_utils_is_ubuntutouch()); +} + TEST_F(XdgCurrentDesktopUtilsTest, isGnome) { unsetenv("XDG_CURRENT_DESKTOP"); diff --git a/tests/tst_utils.vala b/tests/tst_utils.vala index 44ce6fe..4d070e7 100644 --- a/tests/tst_utils.vala +++ b/tests/tst_utils.vala @@ -14,6 +14,14 @@ static int main(string[] args) set_variable("XDG_CURRENT_DESKTOP", "Lomiri", true); assert(utils_is_lomiri()); + unset_variable("DESKTOP_SESSION"); + unset_variable("XDG_CURRENT_DESKTOP"); + assert(! utils_is_ubuntutouch()); + set_variable("XDG_CURRENT_DESKTOP", "Lomiri", true); + assert(! utils_is_ubuntutouch()); + set_variable("DESKTOP_SESSION", "ubuntu-touch", true); + assert(utils_is_ubuntutouch()); + unset_variable("XDG_CURRENT_DESKTOP"); unset_variable("DESKTOP_SESSION"); assert(! utils_is_gnome()); |