X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=deb-src%2Flibperl-critic-perl%2Flibperl-critic-perl-1.088%2Ft%2F00_modules.t;fp=deb-src%2Flibperl-critic-perl%2Flibperl-critic-perl-1.088%2Ft%2F00_modules.t;h=f132938f09ae2e9e1c393072b526ff5268432099;hb=9235c81891f90483b524a2ccb1f8c15689c8dfd3;hp=0000000000000000000000000000000000000000;hpb=3b84a260e354a1cd3480729daaedbeeab0eae136;p=pkg-perl diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/00_modules.t b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/00_modules.t new file mode 100644 index 0000000..f132938 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/00_modules.t @@ -0,0 +1,296 @@ +#!perl + +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/t/00_modules.t $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +use 5.006001; +use strict; +use warnings; + +use English qw(-no_match_vars); + +use PPI::Document; + +use Perl::Critic::TestUtils qw(bundled_policy_names); + +use Test::More; + +#----------------------------------------------------------------------------- + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Perl::Critic::TestUtils::block_perlcriticrc(); + +my @bundled_policy_names = bundled_policy_names(); + +my @concrete_exceptions = qw{ + AggregateConfiguration + Configuration::Generic + Configuration::Option::Global::ExtraParameter + Configuration::Option::Global::ParameterValue + Configuration::Option::Policy::ExtraParameter + Configuration::Option::Policy::ParameterValue + Fatal::Generic + Fatal::Internal + Fatal::PolicyDefinition + IO +}; + +plan tests => + 108 + + ( 9 * scalar @concrete_exceptions ) + + ( 14 * scalar @bundled_policy_names ); + +# pre-compute for version comparisons +my $version_string = __PACKAGE__->VERSION; + +#----------------------------------------------------------------------------- +# Test Perl::Critic module interface + +use_ok('Perl::Critic') or BAIL_OUT(q); +can_ok('Perl::Critic', 'new'); +can_ok('Perl::Critic', 'add_policy'); +can_ok('Perl::Critic', 'config'); +can_ok('Perl::Critic', 'critique'); +can_ok('Perl::Critic', 'policies'); + +#Set -profile to avoid messing with .perlcriticrc +my $critic = Perl::Critic->new( -profile => 'NONE' ); +isa_ok($critic, 'Perl::Critic'); +is($critic->VERSION(), $version_string, 'Perl::Critic version'); + +#----------------------------------------------------------------------------- +# Test Perl::Critic::Config module interface + +use_ok('Perl::Critic::Config') or BAIL_OUT(q); +can_ok('Perl::Critic::Config', 'new'); +can_ok('Perl::Critic::Config', 'add_policy'); +can_ok('Perl::Critic::Config', 'policies'); +can_ok('Perl::Critic::Config', 'exclude'); +can_ok('Perl::Critic::Config', 'force'); +can_ok('Perl::Critic::Config', 'include'); +can_ok('Perl::Critic::Config', 'only'); +can_ok('Perl::Critic::Config', 'profile_strictness'); +can_ok('Perl::Critic::Config', 'severity'); +can_ok('Perl::Critic::Config', 'single_policy'); +can_ok('Perl::Critic::Config', 'theme'); +can_ok('Perl::Critic::Config', 'top'); +can_ok('Perl::Critic::Config', 'verbose'); +can_ok('Perl::Critic::Config', 'color'); +can_ok('Perl::Critic::Config', 'criticism_fatal'); +can_ok('Perl::Critic::Config', 'site_policy_names'); + +#Set -profile to avoid messing with .perlcriticrc +my $config = Perl::Critic::Config->new( -profile => 'NONE'); +isa_ok($config, 'Perl::Critic::Config'); +is($config->VERSION(), $version_string, 'Perl::Critic::Config version'); + +#----------------------------------------------------------------------------- +# Test Perl::Critic::Config::OptionsProcessor module interface + +use_ok('Perl::Critic::OptionsProcessor') or BAIL_OUT(q); +can_ok('Perl::Critic::OptionsProcessor', 'new'); +can_ok('Perl::Critic::OptionsProcessor', 'exclude'); +can_ok('Perl::Critic::OptionsProcessor', 'include'); +can_ok('Perl::Critic::OptionsProcessor', 'force'); +can_ok('Perl::Critic::OptionsProcessor', 'only'); +can_ok('Perl::Critic::OptionsProcessor', 'profile_strictness'); +can_ok('Perl::Critic::OptionsProcessor', 'single_policy'); +can_ok('Perl::Critic::OptionsProcessor', 'severity'); +can_ok('Perl::Critic::OptionsProcessor', 'theme'); +can_ok('Perl::Critic::OptionsProcessor', 'top'); +can_ok('Perl::Critic::OptionsProcessor', 'verbose'); +can_ok('Perl::Critic::OptionsProcessor', 'color'); +can_ok('Perl::Critic::OptionsProcessor', 'criticism_fatal'); + +my $processor = Perl::Critic::OptionsProcessor->new(); +isa_ok($processor, 'Perl::Critic::OptionsProcessor'); +is($processor->VERSION(), $version_string, 'Perl::Critic::OptionsProcessor version'); + +#----------------------------------------------------------------------------- +# Test Perl::Critic::Policy module interface + +use_ok('Perl::Critic::Policy') or BAIL_OUT(q); +can_ok('Perl::Critic::Policy', 'add_themes'); +can_ok('Perl::Critic::Policy', 'applies_to'); +can_ok('Perl::Critic::Policy', 'default_severity'); +can_ok('Perl::Critic::Policy', 'default_themes'); +can_ok('Perl::Critic::Policy', 'get_severity'); +can_ok('Perl::Critic::Policy', 'get_themes'); +can_ok('Perl::Critic::Policy', 'new'); +can_ok('Perl::Critic::Policy', 'set_severity'); +can_ok('Perl::Critic::Policy', 'set_themes'); +can_ok('Perl::Critic::Policy', 'violates'); +can_ok('Perl::Critic::Policy', 'violation'); + + +my $policy = Perl::Critic::Policy->new(); +isa_ok($policy, 'Perl::Critic::Policy'); +is($policy->VERSION(), $version_string, 'Perl::Critic::Policy version'); + +#----------------------------------------------------------------------------- +# Test Perl::Critic::Violation module interface + +use_ok('Perl::Critic::Violation') or BAIL_OUT(q); +can_ok('Perl::Critic::Violation', 'description'); +can_ok('Perl::Critic::Violation', 'diagnostics'); +can_ok('Perl::Critic::Violation', 'explanation'); +can_ok('Perl::Critic::Violation', 'get_format'); +can_ok('Perl::Critic::Violation', 'location'); +can_ok('Perl::Critic::Violation', 'new'); +can_ok('Perl::Critic::Violation', 'policy'); +can_ok('Perl::Critic::Violation', 'set_format'); +can_ok('Perl::Critic::Violation', 'severity'); +can_ok('Perl::Critic::Violation', 'sort_by_location'); +can_ok('Perl::Critic::Violation', 'sort_by_severity'); +can_ok('Perl::Critic::Violation', 'source'); +can_ok('Perl::Critic::Violation', 'to_string'); + +my $code = q{print 'Hello World';}; +my $doc = PPI::Document->new(\$code); +my $viol = Perl::Critic::Violation->new(undef, undef, $doc, undef); +isa_ok($viol, 'Perl::Critic::Violation'); +is($viol->VERSION(), $version_string, 'Perl::Critic::Violation version'); + +#----------------------------------------------------------------------------- +# Test Perl::Critic::UserProfile module interface + +use_ok('Perl::Critic::UserProfile') or BAIL_OUT(q); +can_ok('Perl::Critic::UserProfile', 'options_processor'); +can_ok('Perl::Critic::UserProfile', 'new'); +can_ok('Perl::Critic::UserProfile', 'policy_is_disabled'); +can_ok('Perl::Critic::UserProfile', 'policy_is_enabled'); + +my $up = Perl::Critic::UserProfile->new(); +isa_ok($up, 'Perl::Critic::UserProfile'); +is($up->VERSION(), $version_string, 'Perl::Critic::UserProfile version'); + +#----------------------------------------------------------------------------- +# Test Perl::Critic::PolicyFactory module interface + +use_ok('Perl::Critic::PolicyFactory') or BAIL_OUT(q); +can_ok('Perl::Critic::PolicyFactory', 'create_policy'); +can_ok('Perl::Critic::PolicyFactory', 'new'); +can_ok('Perl::Critic::PolicyFactory', 'site_policy_names'); + + +my $profile = Perl::Critic::UserProfile->new(); +my $factory = Perl::Critic::PolicyFactory->new( -profile => $profile ); +isa_ok($factory, 'Perl::Critic::PolicyFactory'); +is($factory->VERSION(), $version_string, 'Perl::Critic::PolicyFactory version'); + +#----------------------------------------------------------------------------- +# Test Perl::Critic::Theme module interface + +use_ok('Perl::Critic::Theme') or BAIL_OUT(q); +can_ok('Perl::Critic::Theme', 'new'); +can_ok('Perl::Critic::Theme', 'rule'); +can_ok('Perl::Critic::Theme', 'policy_is_thematic'); + + +my $theme = Perl::Critic::Theme->new( -rule => 'foo' ); +isa_ok($theme, 'Perl::Critic::Theme'); +is($theme->VERSION(), $version_string, 'Perl::Critic::Theme version'); + +#----------------------------------------------------------------------------- +# Test Perl::Critic::PolicyListing module interface + +use_ok('Perl::Critic::PolicyListing') or BAIL_OUT(q); +can_ok('Perl::Critic::PolicyListing', 'new'); +can_ok('Perl::Critic::PolicyListing', 'to_string'); + +my $listing = Perl::Critic::PolicyListing->new(); +isa_ok($listing, 'Perl::Critic::PolicyListing'); +is($listing->VERSION(), $version_string, 'Perl::Critic::PolicyListing version'); + +#----------------------------------------------------------------------------- +# Test Perl::Critic::ProfilePrototype module interface + +use_ok('Perl::Critic::ProfilePrototype') or BAIL_OUT(q); +can_ok('Perl::Critic::ProfilePrototype', 'new'); +can_ok('Perl::Critic::ProfilePrototype', 'to_string'); + +my $prototype = Perl::Critic::ProfilePrototype->new(); +isa_ok($prototype, 'Perl::Critic::ProfilePrototype'); +is($prototype->VERSION(), $version_string, 'Perl::Critic::ProfilePrototype version'); + +#----------------------------------------------------------------------------- +# Test module interface for exceptions + +{ + foreach my $class ( + map { "Perl::Critic::Exception::$_" } @concrete_exceptions + ) { + use_ok($class) or BAIL_OUT(q); + can_ok($class, 'new'); + can_ok($class, 'throw'); + can_ok($class, 'message'); + can_ok($class, 'error'); + can_ok($class, 'full_message'); + can_ok($class, 'as_string'); + + my $exception = $class->new(); + isa_ok($exception, $class); + is($exception->VERSION(), $version_string, "$class version"); + } +} + +#----------------------------------------------------------------------------- +# Test module interface for each Policy subclass + +{ + for my $mod ( @bundled_policy_names ) { + + use_ok($mod) or BAIL_OUT(q); + can_ok($mod, 'applies_to'); + can_ok($mod, 'default_severity'); + can_ok($mod, 'default_themes'); + can_ok($mod, 'get_severity'); + can_ok($mod, 'get_themes'); + can_ok($mod, 'new'); + can_ok($mod, 'set_severity'); + can_ok($mod, 'set_themes'); + can_ok($mod, 'set_themes'); + can_ok($mod, 'violates'); + can_ok($mod, 'violation'); + + my $policy = $mod->new(); + isa_ok($policy, 'Perl::Critic::Policy'); + is($policy->VERSION(), $version_string, "Version of $mod"); + } +} + +#----------------------------------------------------------------------------- +# Test functional interface to Perl::Critic + +Perl::Critic->import( qw(critique) ); +can_ok('main', 'critique'); #Export test + +# TODO: These tests are weak. They just verify that it doesn't +# blow up, and that at least one violation is returned. +ok( critique( \$code ), 'Functional style, no config' ); +ok( critique( {}, \$code ), 'Functional style, empty config' ); +ok( critique( {severity => 1}, \$code ), 'Functional style, with config'); +ok( !critique(), 'Functional style, no args at all'); +ok( !critique(undef, undef), 'Functional style, undef args'); + +#----------------------------------------------------------------------------- + +# ensure we run true if this test is loaded by +# t/00_modules.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 :