1use strict; 2use warnings; 3use Test::More tests => 14; 4use Config; 5 6use_ok('File::BaseDir', qw/:vars/); 7 8note "home = @{[ File::BaseDir->_home ]}"; 9ok(File::BaseDir->_home, 'HOME defined'); 10note "root = @{[ File::BaseDir->_rootdir ]}"; 11ok(File::BaseDir->_rootdir, 'root defined'); 12 13$ENV{XDG_CONFIG_HOME} = ''; 14ok( xdg_config_home() eq File::Spec->catdir(File::BaseDir->_home, qw/.config/), 15 'xdg_config_home default'); 16$ENV{XDG_CONFIG_HOME} = 'test123'; 17ok( xdg_config_home() eq 'test123', 'xdg_data_home set'); 18 19$ENV{XDG_CONFIG_DIRS} = ''; 20is_deeply( [xdg_config_dirs()], 21 [ File::Spec->catdir(File::BaseDir->_rootdir, qw/etc xdg/) ], 22 'xdg_config_dirs default'); 23$ENV{XDG_CONFIG_DIRS} = join $Config{path_sep}, qw/ t foo bar /; 24is_deeply( [xdg_config_dirs()], 25 [File::Spec->catdir('.', 't'), 'foo', 'bar'], 26 'xdg_data_dirs set'); 27 28$ENV{XDG_DATA_HOME} = ''; 29ok( xdg_data_home() eq File::Spec->catdir(File::BaseDir->_home, qw/.local share/), 30 'xdg_data_home default'); 31$ENV{XDG_DATA_HOME} = 'test123'; 32ok( xdg_data_home() eq 'test123', 'xdg_data_home set'); 33 34$ENV{XDG_DATA_DIRS} = ''; 35is_deeply( [xdg_data_dirs()], 36 [ File::Spec->catdir(File::BaseDir->_rootdir, qw/usr local share/), 37 File::Spec->catdir(File::BaseDir->_rootdir, qw/usr share/) ], 38 'xdg_data_dirs default'); 39$ENV{XDG_DATA_DIRS} = join $Config{path_sep}, qw/ t foo bar /; 40is_deeply( [xdg_data_dirs()], 41 [File::Spec->catdir('.', 't'), 'foo', 'bar'], 42 'xdg_data_dirs set'); 43 44$ENV{XDG_CACHE_HOME} = ''; 45ok( xdg_cache_home() eq File::Spec->catdir(File::BaseDir->_home, qw/.cache/), 46 'xdg_cache_home default'); 47$ENV{XDG_CACHE_HOME} = 'test123'; 48ok( xdg_cache_home() eq 'test123', 'xdg_cache_home set'); 49 50ok 1; 51