Alien-Build

 view release on metacpan or  search on metacpan

t/alien_build_plugin_fetch_curlcommand.t  view on Meta::CPAN

use 5.008004;
use lib 't/lib';
use MyTest::FauxFetchCommand;
use MyTest::HTTP;
use MyTest::CaptureNote;
use Test2::V0 -no_srand => 1;
use Test::Alien::Build;
use Alien::Build::Plugin::Fetch::CurlCommand;
use Path::Tiny qw( path );
use Capture::Tiny ();
use JSON::PP ();
use File::Which qw( which );
use Alien::Build::Util qw( _dump );
use JSON::PP qw( decode_json );

$Alien::Build::Plugin::Fetch::CurlCommand::VERSION = '1.19';

# This test makes real http request against localhost only
$ENV{ALIEN_DOWNLOAD_RULE} = 'warn';

subtest 'fetch from http' => sub {

  my $config = test_config 'httpd';

  skip_all 'Test requires httpd config' unless $config;

  my $base = $config->{url};

  my $build = alienfile_ok qq{
    use alienfile;

    meta->prop->{start_url} = '$base/html_test.html';

    probe sub { 'share' };

    share {
      plugin 'Fetch::CurlCommand';
    };
  };

  alien_install_type_is 'share';

  subtest 'directory listing' => 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 => 'http';
        end;
      },
      'list'
    );

  };

  subtest 'file' => sub {



( run in 3.071 seconds using v1.01-cache-2.11-cpan-cdf2f3d4e48 )