40d1c00aeb5e8b0f29c4f8d7bd17505f898c791e
[p5sagit/local-lib.git] / t / bad_variables.t
1 use strict;
2 use warnings;
3 use Test::More tests => 5;
4 use File::Temp 'tempdir';
5 use Config;
6 use local::lib ();
7
8 use lib 't/lib'; use TempDir;
9
10 # remember the original value of this, in case we are already running inside a
11 # local::lib
12 my $orig_llr = $ENV{PERL_LOCAL_LIB_ROOT} || '';
13 $orig_llr = '' if $orig_llr eq $Config{path_sep};
14
15 my $dir1 = mk_temp_dir('test_local_lib-XXXXX');
16 my $dir2 = mk_temp_dir('test_local_lib-XXXXX');
17 my $dir3 = mk_temp_dir('test_local_lib-XXXXX');
18
19 ok(!(grep { $dir1 eq $_ } @INC), 'new dir is not already in @INC');
20 ok(!(grep { $dir1 eq $_ } split /\Q$Config{path_sep}\E/, ($ENV{PERL5LIB}||'')), 'new dir is not already in PERL5LIB');
21
22 local::lib->import($dir1);
23 local::lib->import($dir2);
24
25 # we have junk in here now
26 $ENV{PERL_LOCAL_LIB_ROOT} .= $Config{path_sep} . $dir3;
27
28 local::lib->import($dir1);
29
30 is(
31     $ENV{PERL_LOCAL_LIB_ROOT},
32     join($Config{path_sep}, (grep { $_ } $orig_llr, $dir2, $dir1)),
33     'dir1 should have been removed and added back in at the top',
34 );
35
36 ok((grep { /\Q$dir1\E/ } @INC), 'new dir has been added to @INC');
37 ok((grep { /\Q$dir1\E/ } split /\Q$Config{path_sep}\E/, $ENV{PERL5LIB}), 'new dir has been added to PERL5LIB');
38