mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-08-01 15:03:39 +02:00
gdesktopappinfo: Fix validation of XDG_CURRENT_DESKTOP
Split out XDG_CURRENT_DESKTOP handling to a separate function and make sure that it drops all the invalid entries properly. Earlier a bad entry could slip through the checks by sitting just after another bad entry, like in env being set to `invalid1!:invalid2!`, where `invalid2!` could slip the checks.
This commit is contained in:
@@ -568,7 +568,8 @@ assert_implementations (const gchar *interface,
|
||||
"gnome-terminal.desktop nautilus-autorun-software.desktop gcr-viewer.desktop " \
|
||||
"nautilus-connect-server.desktop kde4-dolphin.desktop gnome-music.desktop " \
|
||||
"kde4-konqbrowser.desktop gucharmap.desktop kde4-okular.desktop nautilus.desktop " \
|
||||
"gedit.desktop evince.desktop file-roller.desktop dconf-editor.desktop glade.desktop"
|
||||
"gedit.desktop evince.desktop file-roller.desktop dconf-editor.desktop glade.desktop " \
|
||||
"invalid-desktop.desktop"
|
||||
#define HOME_APPS "epiphany-weather-for-toronto-island-9c6a4e022b17686306243dada811d550d25eb1fb.desktop"
|
||||
#define ALL_HOME_APPS HOME_APPS " eog.desktop"
|
||||
|
||||
@@ -723,6 +724,9 @@ test_show_in (void)
|
||||
assert_shown ("gcr-prompter.desktop", TRUE, "GNOME-Classic");
|
||||
assert_shown ("gcr-prompter.desktop", TRUE, "GNOME-Classic:KDE");
|
||||
assert_shown ("gcr-prompter.desktop", TRUE, "KDE:GNOME-Classic");
|
||||
assert_shown ("invalid-desktop.desktop", TRUE, "GNOME");
|
||||
assert_shown ("invalid-desktop.desktop", FALSE, "../invalid/desktop");
|
||||
assert_shown ("invalid-desktop.desktop", FALSE, "../invalid/desktop:../invalid/desktop");
|
||||
}
|
||||
|
||||
/* Test g_desktop_app_info_launch_uris_as_manager() and
|
||||
|
@@ -0,0 +1,5 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=appinfo-test
|
||||
OnlyShowIn=../invalid/desktop;GNOME
|
||||
NotShowIn=ROX;
|
Reference in New Issue
Block a user