App-Grepl
view release on metacpan or search on metacpan
t/50-sanity.t view on Meta::CPAN
#!/usr/bin/perl
use strict;
use warnings;
use lib 'lib', 't/lib';
use Test::More 'no_plan'; # tests => 1;
my $can_capture_output;
BEGIN {
eval "use Test::Output";
$can_capture_output = $@ ? 0 : 1;
}
my $SKIP_REASON = 'Test::Output needed to test STDERR and STDOUT';
use App::Grepl;
my $grepl = App::Grepl->new;
can_ok $grepl, 'warnings';
ok !$grepl->warnings, '... and by default they should be off';
ok $grepl->warnings(1), '... and we should be able to enable them';
ok $grepl->warnings, '... and now they should be on';
ok $grepl->warnings(0), '... and we should be able to disable them';
ok !$grepl->warnings, '... and now they should be off';
{
no warnings 'redefine', 'once';
local *PPI::Document::new = sub { };
# for some reason, PPI happily attempts to parse this file
$grepl = App::Grepl->new(
{
files => 't/lib/ruby.rb',
warnings => 1
}
);
SKIP: {
skip $SKIP_REASON, 1 unless $can_capture_output;
stderr_is(
sub { $grepl->search },
"Cannot create a PPI document for (t/lib/ruby.rb). Skipping.\n",
'We should be able to warn if we cannot create a PPI doc'
);
}
}
# new block so that PPI::Document->new is restored
$grepl = App::Grepl->new(
{
files => 't/lib/quotes/quote1.pl',
look_for => 'comment',
}
);
SKIP: {
skip $SKIP_REASON, 1 unless $can_capture_output;
my $stdout = qr/quote1.pl\n.*comment.*matched.*\n.*perl/;
stdout_like( sub { $grepl->search },
$stdout,
'We should be able to print output if search in void context' );
}
( run in 1.842 second using v1.01-cache-2.11-cpan-600a1bdf6e4 )