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