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