test that junk added to ROOT doesn't end up in active_paths
[p5sagit/local-lib.git] / t / bad_variables.t
CommitLineData
1b0fe50a 1use strict;
2use warnings;
c3f6eefb 3use Test::More tests => 6;
1b0fe50a 4use File::Temp 'tempdir';
6ba49acc 5use Config;
1b0fe50a 6use local::lib ();
7
663a8675 8use lib 't/lib'; use TempDir;
9
8b0f74fc 10delete $ENV{PERL_LOCAL_LIB_ROOT};
1b0fe50a 11
663a8675 12my $dir1 = mk_temp_dir('test_local_lib-XXXXX');
13my $dir2 = mk_temp_dir('test_local_lib-XXXXX');
14my $dir3 = mk_temp_dir('test_local_lib-XXXXX');
1b0fe50a 15
16ok(!(grep { $dir1 eq $_ } @INC), 'new dir is not already in @INC');
6ba49acc 17ok(!(grep { $dir1 eq $_ } split /\Q$Config{path_sep}\E/, ($ENV{PERL5LIB}||'')), 'new dir is not already in PERL5LIB');
1b0fe50a 18
19local::lib->import($dir1);
20local::lib->import($dir2);
21
22# we have junk in here now
a27f7456 23$ENV{PERL_LOCAL_LIB_ROOT} = $dir3 . $Config{path_sep} . $ENV{PERL_LOCAL_LIB_ROOT};
1b0fe50a 24
25local::lib->import($dir1);
26
27is(
28 $ENV{PERL_LOCAL_LIB_ROOT},
e4b5a839 29 join($Config{path_sep}, (grep { defined $_ and $_ ne '' } $dir1, $dir3, $dir2)),
8b0f74fc 30 'dir1 should have been removed and added back in at the top'
1b0fe50a 31);
32
c3f6eefb 33ok((!grep { $_ eq $dir3 } local::lib->active_paths), 'junk dir added not included in active_paths');
34
1b0fe50a 35ok((grep { /\Q$dir1\E/ } @INC), 'new dir has been added to @INC');
6ba49acc 36ok((grep { /\Q$dir1\E/ } split /\Q$Config{path_sep}\E/, $ENV{PERL5LIB}), 'new dir has been added to PERL5LIB');
1b0fe50a 37