1use strict; 2use warnings; 3use Test::More; 4use File::UserDirs qw(:all); 5use File::BaseDir qw(config_home); 6use File::Spec::Functions qw(catfile); 7use File::Which qw(which); 8use File::Temp qw(tempdir); 9 10my $xdg_user_dir_installed = 0; 11if (which 'xdg-user-dir') { 12 plan tests => 8; 13 $xdg_user_dir_installed = 1; 14} else { 15 plan skip_all => '"xdg-user-dir" executable not found. Install package "xdg-user-dirs".'; 16 17} 18 19my $temphomedir = tempdir(CLEANUP => 1); 20local $ENV{HOME} = $temphomedir; 21local $ENV{XDG_CONFIG_HOME} = ''; 22mkdir "$temphomedir/.config"; 23my $udd = "$temphomedir/.config/user-dirs.dirs"; 24 25open my $fh, '>', $udd or die "could not open $udd for writing: $!"; 26print $fh <<'UDD'; 27XDG_DESKTOP_DIR="$HOME/Workspace" 28XDG_DOCUMENTS_DIR="$HOME/Files" 29XDG_DOWNLOAD_DIR="$HOME/Files/Downloads" 30XDG_MUSIC_DIR="$HOME/Files/Audio" 31XDG_PICTURES_DIR="$HOME/Files/Images" 32XDG_PUBLICSHARE_DIR="$HOME/public_html" 33XDG_TEMPLATES_DIR="$HOME/Files/Document templates" 34XDG_VIDEOS_DIR="$HOME/Files/Video" 35UDD 36close $fh; 37 38is xdg_desktop_dir, catfile($ENV{HOME}, 'Workspace'); 39is xdg_documents_dir, catfile($ENV{HOME}, 'Files'); 40is xdg_download_dir, catfile($ENV{HOME}, 'Files/Downloads'); 41is xdg_music_dir, catfile($ENV{HOME}, 'Files/Audio'); 42is xdg_pictures_dir, catfile($ENV{HOME}, 'Files/Images'); 43is xdg_publicshare_dir, catfile($ENV{HOME}, 'public_html'); 44is xdg_templates_dir, catfile($ENV{HOME}, 'Files/Document templates'); 45is xdg_videos_dir, catfile($ENV{HOME}, 'Files/Video'); 46