Alien-Build
view release on metacpan or search on metacpan
t/alien_build_plugin_fetch_wget.t view on Meta::CPAN
use 5.008004;
use lib 't/lib';
use MyTest::FauxFetchCommand;
use MyTest::CaptureNote;
use MyTest::HTTP;
use Test2::V0 -no_srand => 1;
use Test::Alien::Build;
use Alien::Build::Plugin::Fetch::Wget;
use Path::Tiny qw( path );
use Alien::Build::Util qw( _dump );
use JSON::PP qw( decode_json );
skip_all "No wget or not real wget" unless Alien::Build::Plugin::Fetch::Wget->_wget;
$Alien::Build::Plugin::Fetch::Wget::VERSION = '1.19';
subtest 'fetch from http' => sub {
my $config = test_config 'httpd';
skip_all 'Test requires httpd config' unless $config;
my $base = $config->{url};
my($proto) = $base =~ /^([a-z]+):/;
like $proto, qr/^https?$/, "protocol is either http or https (url = $base)";
# This test runs against a real http or ftp server, usually only in CI
# the server is running on localhost
local $ENV{ALIEN_DOWNLOAD_RULE} = $ENV{ALIEN_DOWNLOAD_RULE};
$ENV{ALIEN_DOWNLOAD_RULE} = 'warn' if $proto ne 'https';
my $build = alienfile_ok qq{
use alienfile;
meta->prop->{start_url} = '$base/html_test.html';
probe sub { 'share' };
share {
plugin 'Fetch::Wget';
};
};
alien_install_type_is 'share';
subtest 'html' => sub {
my $list = capture_note { $build->fetch };
is(
$list,
hash {
field type => 'html';
field base => "$base/html_test.html";
field content => "<html><head><title>Hello World</title></head><body><p>Hello World</p></body></html>\n";
field protocol => $proto;
end;
},
'list'
);
( run in 1.862 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )