Alien-Base-ModuleBuild
view release on metacpan or search on metacpan
t/alien_base_modulebuild_repository.t view on Meta::CPAN
use Test2::V0 -no_srand => 1;
use Alien::Base::ModuleBuild::Repository;
use File::chdir;
use Path::Tiny qw( path );
use Capture::Tiny qw( capture_stderr );
my $network_fetch = 0;
my $secure_fetch = 1;
@INC = map { path($_)->absolute->stringify } @INC;
# This test will not pass with digest required. It does not download anything
# off the internet.
$ENV{ALIEN_DOWNLOAD_RULE} = 'warn' if defined $ENV{ALIEN_DOWNLOAD_RULE} && $ENV{ALIEN_DOWNLOAD_RULE} eq 'digest';
$ENV{ALIEN_DOWNLOAD_RULE} = 'digest_or_encrypt' if defined $ENV{ALIEN_DOWNLOAD_RULE} && $ENV{ALIEN_DOWNLOAD_RULE} eq 'digest_and_encrypt';
my $default = {
protocol => 'test',
host => 'ftp.gnu.org',
location => '/gnu/gsl',
};
subtest 'alien_install_network' => sub {
local $ENV{ALIEN_INSTALL_NETWORK};
delete $ENV{ALIEN_INSTALL_NETWORK};
$network_fetch = 1;
ok(lives { Alien::Base::ModuleBuild::Repository::Test->new($default)->probe }, 'default') or diag($@);
$ENV{ALIEN_INSTALL_NETWORK} = 1;
ok(lives { Alien::Base::ModuleBuild::Repository::Test->new($default)->probe }, 'override 1') or diag($@);
$ENV{ALIEN_INSTALL_NETWORK} = 0;
is(
dies { Alien::Base::ModuleBuild::Repository::Test->new($default)->probe },
match qr/network fetch is disabled via ALIEN_INSTALL_NETWORK/,
'override 0',
);
$network_fetch = 0;
};
subtest 'alien_download_rule' => sub {
subtest 'warn' => sub {
local $ENV{ALIEN_DOWNLOAD_RULE} = 'warn';
is(
Alien::Base::ModuleBuild->alien_download_rule, 'warn',
);
my @warnings;
local $SIG{__WARN__} = sub {
my($message) = @_;
if($message =~ /^(!!! NOTICE OF FUTURE CHANGE IN BEHAVIOR !!!|A future version of Alien::Base::ModuleBuild)/)
{
push @warnings, $message
}
else
{
( run in 0.473 second using v1.01-cache-2.11-cpan-fa01517f264 )