The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl

# Tests for Padre::Task::FindInFiles

use strict;
use warnings;
use Test::More tests => 7;
use Test::NoWarnings;
use File::Spec ();
use t::lib::Padre;
use Padre::MIME              ();
use Padre::Project::Perl     ();
use Padre::Search            ();
use Padre::Task::FindInFiles ();





######################################################################
# Mainly check support for MIME filtering in Padre::Task::FindInFiles

SCOPE: {
	my $output = [];
	my $task   = Padre::Task::FindInFiles->new(
		project => Padre::Project::Perl->new(
			root     => File::Spec->curdir,
			explicit => 1,
		),
		mime    => 'application/x-perl',
		maxsize => 1000000,
		search  => Padre::Search->new(
			find_term => 'Foo',
			find_case => 1,
		),
		output => $output,
	);
	isa_ok( $task, 'Padre::Task::FindInFiles' );

	# Execute the task in the foreground
	ok( scalar( $task->prepare ), '->prepare ok' );
	ok( scalar( $task->run ),     '->run ok' );
	ok( scalar( $task->finish ),  '->finish ok' );

	# Between 10 and 30 Perl files (20 at time of writing) contain
	# the term Foo. You may need to adjust these numbers later.
	my $results = scalar @$output;
	ok( $results > 10, 'Found more than 10 files with Foo in it' );
	ok( $results < 30, 'Found less than 30 files with Foo in it' );
}