X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;ds=sidebyside;f=dev%2Farm%2Flibperl-critic-perl%2Flibperl-critic-perl-1.088%2Ft%2F08_document.t;fp=dev%2Farm%2Flibperl-critic-perl%2Flibperl-critic-perl-1.088%2Ft%2F08_document.t;h=9e1c51e01c232cc05742aaf82e6349f94e2e4dc2;hb=f477fa73365d491991707e7ed9217b48d6994551;hp=0000000000000000000000000000000000000000;hpb=da95c414033799c3a62606f299c3c00b5c77ca11;p=dh-make-perl diff --git a/dev/arm/libperl-critic-perl/libperl-critic-perl-1.088/t/08_document.t b/dev/arm/libperl-critic-perl/libperl-critic-perl-1.088/t/08_document.t new file mode 100644 index 0000000..9e1c51e --- /dev/null +++ b/dev/arm/libperl-critic-perl/libperl-critic-perl-1.088/t/08_document.t @@ -0,0 +1,130 @@ +#!perl + +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/t/08_document.t $ +# $Date: 2008-06-06 00:48:04 -0500 (Fri, 06 Jun 2008) $ +# $Author: clonezone $ +# $Revision: 2416 $ +############################################################################## + +use 5.006001; +use strict; +use warnings; + +use version; + +use Perl::Critic::Utils::DataConversion qw< dor >; + +use Test::More tests => 25; + +#----------------------------------------------------------------------------- + +use_ok('Perl::Critic::Document'); +can_ok('Perl::Critic::Document', 'new'); +can_ok('Perl::Critic::Document', 'filename'); +can_ok('Perl::Critic::Document', 'find'); +can_ok('Perl::Critic::Document', 'find_first'); +can_ok('Perl::Critic::Document', 'find_any'); +can_ok('Perl::Critic::Document', 'highest_explicit_perl_version'); +can_ok('Perl::Critic::Document', 'ppi_document'); + +{ + my $code = q{'print 'Hello World';}; #Has 6 PPI::Element + my $ppi_doc = PPI::Document->new( \$code ); + my $pc_doc = Perl::Critic::Document->new( $ppi_doc ); + isa_ok($pc_doc, 'Perl::Critic::Document'); + + + my $nodes_ref = $pc_doc->find('PPI::Element'); + is( scalar @{ $nodes_ref }, 6, 'find by class name'); + + $nodes_ref = $pc_doc->find( sub{ return 1 } ); + is( scalar @{ $nodes_ref }, 6, 'find by wanted() handler'); + + $nodes_ref = $pc_doc->find( q{Element} ); + is( scalar @{ $nodes_ref }, 6, 'find by shortened class name'); + + #--------------------------- + + my $node = $pc_doc->find_first('PPI::Element'); + is( ref $node, 'PPI::Statement', 'find_first by class name'); + + $node = $pc_doc->find_first( sub{ return 1 } ); + is( ref $node, 'PPI::Statement', 'find_first by wanted() handler'); + + $node = $pc_doc->find_first( q{Element} ); + is( ref $node, 'PPI::Statement', 'find_first by shortened class name'); + + #--------------------------- + + my $found = $pc_doc->find_any('PPI::Element'); + is( $found, 1, 'find_any by class name'); + + $found = $pc_doc->find_any( sub{ return 1 } ); + is( $found, 1, 'find_any by wanted() handler'); + + $found = $pc_doc->find_any( q{Element} ); + is( $found, 1, 'find_any by shortened class name'); + + #------------------------------------------------------------------------- + + { + # Ignore "Cannot create search condition for 'PPI::': Not a PPI::Element" + local $SIG{__WARN__} = sub { + $_[0] =~ m/\QCannot create search condition for\E/ || warn @_ + }; + $nodes_ref = $pc_doc->find( q{} ); + is( $nodes_ref, undef, 'find by empty class name'); + + $node = $pc_doc->find_first( q{} ); + is( $node, undef, 'find_first by empty class name'); + + $found = $pc_doc->find_any( q{} ); + is( $found, undef, 'find_any by empty class name'); + + } +} + +#----------------------------------------------------------------------------- + +{ + test_version( 'sub { 1 }', undef ); + test_version( 'use 5.006', version->new('5.006') ); + test_version( 'use 5.8.3', version->new('5.8.3') ); + test_version( + 'use 5.006; use 5.8.3; use 5.005005', + version->new('5.8.3'), + ); +} + +sub test_version { + my ($code, $expected_version) = @_; + + my $description_version = dor( $expected_version, '' ); + + my $document = + Perl::Critic::Document->new( + PPI::Document->new( \$code ) + ); + + is( + $document->highest_explicit_perl_version(), + $expected_version, + qq, + ); +} + +#----------------------------------------------------------------------------- + +# ensure we run true if this test is loaded by +# t/08_document.t_without_optional_dependencies.t +1; + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround :