package Tangerine::hook::tests; $Tangerine::hook::tests::VERSION = '0.21'; use 5.010; use strict; use warnings; use parent 'Tangerine::Hook'; use List::Util 1.33 qw(any); use Tangerine::Hook; use Tangerine::HookData; sub run { my ($self, $s) = @_; if ((any { $s->[0] eq $_ } qw(use no)) && scalar(@$s) > 1 && (any { $s->[1] eq $_ } qw(Test::Inter Test::Modern Test::More Test::Strict))) { require Tangerine::hook::testloading; return Tangerine::HookData->new( hooks => [ Tangerine::hook::testloading->new(type => 'runtime') ] ); } if ((any { $s->[0] eq $_ } qw(use no)) && scalar(@$s) > 1 && $s->[1] eq 'Test::Requires') { require Tangerine::hook::testrequires; return Tangerine::HookData->new( hooks => [ Tangerine::hook::testrequires->new(type => 'runtime') ] ); } return; } 1; __END__ =pod =encoding utf8 =head1 NAME Tangerine::hook::tests - Detect testing modules being loaded and register additional hooks =head1 DESCRIPTION This hook catches various testing modules and registers their specific hooks, e.g. L<Tangerine::hook::testloading>. Currently this hook knows about L<Test::Inter>, L<Test::Modern>, and L<Test::More>. =head1 SEE ALSO L<Tangerine>, L<Test::Inter>, L<Test::Modern>, L<Test::More> =head1 AUTHOR Petr Å abata <contyk@redhat.com> =head1 COPYRIGHT AND LICENSE Copyright (c) 2014-2016 Petr Å abata See LICENSE for licensing details. =cut