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