File-BaseDir

 view release on metacpan or  search on metacpan

t/03_userdirs.t  view on Meta::CPAN

use strict;
use warnings;
use Test::More;
use File::UserDirs qw(:all);
use File::BaseDir qw(config_home);
use File::Spec::Functions qw(catfile);
use File::Which qw(which);
use File::Temp qw(tempdir);

my $xdg_user_dir_installed = 0;
if (which 'xdg-user-dir') {
    plan tests => 8;
    $xdg_user_dir_installed = 1;
} else {
    plan skip_all => '"xdg-user-dir" executable not found. Install package "xdg-user-dirs".';

}

my $temphomedir = tempdir(CLEANUP => 1);
local $ENV{HOME} = $temphomedir;
local $ENV{XDG_CONFIG_HOME} = '';
mkdir "$temphomedir/.config";
my $udd = "$temphomedir/.config/user-dirs.dirs";

open my $fh, '>', $udd or die "could not open $udd for writing: $!";
print $fh <<'UDD';
XDG_DESKTOP_DIR="$HOME/Workspace"
XDG_DOCUMENTS_DIR="$HOME/Files"
XDG_DOWNLOAD_DIR="$HOME/Files/Downloads"
XDG_MUSIC_DIR="$HOME/Files/Audio"
XDG_PICTURES_DIR="$HOME/Files/Images"
XDG_PUBLICSHARE_DIR="$HOME/public_html"
XDG_TEMPLATES_DIR="$HOME/Files/Document templates"
XDG_VIDEOS_DIR="$HOME/Files/Video"
UDD
close $fh;

is xdg_desktop_dir,     catfile($ENV{HOME}, 'Workspace');
is xdg_documents_dir,   catfile($ENV{HOME}, 'Files');
is xdg_download_dir,    catfile($ENV{HOME}, 'Files/Downloads');
is xdg_music_dir,       catfile($ENV{HOME}, 'Files/Audio');
is xdg_pictures_dir,    catfile($ENV{HOME}, 'Files/Images');
is xdg_publicshare_dir, catfile($ENV{HOME}, 'public_html');
is xdg_templates_dir,   catfile($ENV{HOME}, 'Files/Document templates');
is xdg_videos_dir,      catfile($ENV{HOME}, 'Files/Video');



( run in 2.993 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )