use strict;
use warnings;
use utf8;
use Test::More;
use File::Temp qw(tempdir);
use OrePAN2::CLI::Inject;
no warnings 'redefine';
*OrePAN2::CLI::Inject::pod2usage = sub { die };
# test case for https://github.com/tokuhirom/OrePAN2/issues/6#issuecomment-21912528
{
my $url
= 'http://search.cpan.org/CPAN/authors/id/M/MI/MIYAGAWA/Devel-StackTrace-AsHTML-0.14.tar.gz';
my $tmpdir = tempdir( CLEANUP => 1 );
local @ARGV = ( '--text', $url, $tmpdir );
OrePAN2::CLI::Inject->new->run();
ok( -f "$tmpdir/authors/id/D/DU/DUMMY/Devel-StackTrace-AsHTML-0.14.tar.gz"
);
ok( -f "$tmpdir/modules/02packages.details.txt" );
my $details = slurp("$tmpdir/modules/02packages.details.txt");
note $details;
like $details,
qr(Devel::StackTrace::AsHTML 0.14 D/DU/DUMMY/Devel-StackTrace-AsHTML-0.14.tar.gz);
unlike $details, qr(Module::Install);
}
done_testing;
sub slurp {
my $fname = shift;
open my $fh, '<', $fname
or Carp::croak("Can't open '$fname' for reading: '$!'");
scalar(
do { local $/; <$fh> }
);
}