Alien-Build
view release on metacpan or search on metacpan
t/alien_build_plugin_fetch_httptiny.t view on Meta::CPAN
use 5.008004;
use Test2::V0 -no_srand => 1;
use Test::Alien::Build;
use Alien::Build::Plugin::Fetch::HTTPTiny;
use lib 't/lib';
use Path::Tiny qw( path );
use MyTest::HTTP;
use MyTest::CaptureNote;
use Alien::Build::Util qw( _dump );
use JSON::PP qw( decode_json );
subtest 'updates requires' => sub {
my $plugin = Alien::Build::Plugin::Fetch::HTTPTiny->new( url => 'http://example.test/' );
my $build = alienfile filename => 'corpus/blank/alienfile';
my $meta = $build->meta;
$plugin->init($meta);
is(
$build->requires('share'),
hash {
field 'HTTP::Tiny' => '0.044';
field 'URI' => '0';
field 'Net::SSLeay' => DNE();
field 'IO::Socket::SSL' => DNE();
etc;
},
);
note _dump($build->requires('share'));
};
subtest 'updates requires ssl' => sub {
my $plugin = Alien::Build::Plugin::Fetch::HTTPTiny->new( url => 'https://example.test/' );
my $build = alienfile filename => 'corpus/blank/alienfile';
my $meta = $build->meta;
$plugin->init($meta);
is(
$build->requires('share'),
hash {
field 'HTTP::Tiny' => '0.044';
field 'URI' => '0';
field 'Net::SSLeay' => T();
field 'IO::Socket::SSL' => T();
etc;
},
);
note _dump($build->requires('share'));
};
subtest 'use start_url' => sub {
subtest 'sets start_url' => sub {
my $build = alienfile_ok q{
use alienfile;
plugin 'Fetch::HTTPTiny' => 'http://foo.bar.baz';
};
is $build->meta_prop->{start_url}, 'http://foo.bar.baz';
};
subtest 'uses start_url' => sub {
my $mock = mock 'Alien::Build::Plugin::Fetch::HTTPTiny';
my $plugin;
$mock->after(init => sub {
my($self, $meta) = @_;
$plugin = $self;
});
my $build = alienfile_ok q{
use alienfile;
meta->prop->{start_url} = 'http://baz.bar.foo';
plugin 'Fetch::HTTPTiny';
};
is $plugin->url, 'http://baz.bar.foo';
};
};
subtest 'fetch' => sub {
skip_all 'test requires HTTP::Tiny' unless eval { require HTTP::Tiny; HTTP::Tiny->VERSION(0.044) };
my $url = http_url;
skip_all http_error unless $url;
my($proto) = $url =~ /^([a-z]+):/;
# tests usually in CI only against a real http server on localhost
( run in 0.319 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )