#!/usr/bin/perl
# vim: ft=perl ts=4 shiftwidth=4 softtabstop=4 expandtab
#===============================================================================
#
# FILE: 01-author.t
#
# BUGS: ---
# NOTES: ---
# AUTHOR: Anatoliy Grishaev (), grian@cpan.org
# CREATED: 03/31/2014 11:32:21 AM
# DESCRIPTION: ---
#
#===============================================================================
use strict;
use warnings;
use Test::More;
use lib 'lib';
require lib::deep;
*mkapath = \&lib::deep::mkapath;
if ( $ENV{TEST_AUTHOR} ){
plan tests => 16;
is( mkapath( '/home/webadmin/A.pm', 0, 'lib' ), '/home/webadmin/lib' );
is( mkapath( '/home/webadmin/A.pm', 0, '' ), '/home/webadmin' );
is( mkapath( '/home/webadmin/A.pm', 0, ), '/home/webadmin' );
chdir( '/home/gtoly' );
is( mkapath( './1.pm', 0, 'lib' ), '/home/gtoly/lib' );
is( mkapath( '../1.pm', 0, 'lib' ), '/home/lib' );
is( mkapath( 'lib/./1.pm', 0, 'lib'), '/home/gtoly/lib/lib' );
is( invoke( A=>'/home/gtoly/lib/A.pm', ), '/home/gtoly/lib');
is( invoke( "A::B"=>'/home/gtoly/lib/A/B.pm', ), '/home/gtoly/lib');
is( invoke( "A::B::C"=>'/home/gtoly/lib/A/B/C.pm', ), '/home/gtoly/lib');
is( invoke( main=>'/home/gtoly/lib/A.pm', -1), '/home/gtoly/lib');
is( invoke( main=>'/home/gtoly/lib/A/B.pm', -2), '/home/gtoly/lib');
is( invoke( main=>'/home/gtoly/lib/A/B/C.pm', -3), '/home/gtoly/lib');
is( invoke( main=>'/home/gtoly/bin/a.pl', 0), '/home/gtoly/bin/lib');
is( invoke( main=>'/home/gtoly/bin/a.pl', -1), '/home/gtoly/lib');
is( invoke( main=>'/home/gtoly/bin/a.pl'), '/home/gtoly/lib');
is( invoke( main=>'/home/gtoly/a.pl'), '/home/gtoly/lib');
}
else {
plan skip_all => 'Author test. Set $ENV{TEST_AUTHOR} to a true value to run.';
}
sub invoke{
my ( $p, $file, @args ) = @_;
local @INC;
my $import = \&lib::deep::import;
my $s = "package $p;\n#line 1 $file\nlib::deep::import(1,\@args)";
eval $s;
warn $@ if $@;
return shift @INC;
}