Modified source files and compiled any and armel versions of packages
[pkg-perl] / deb-src / libperl-critic-perl / libperl-critic-perl-1.088 / t / 10_userprofile.t
1 #!perl
2
3 ##############################################################################
4 #     $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/t/10_userprofile.t $
5 #    $Date: 2008-06-06 00:48:04 -0500 (Fri, 06 Jun 2008) $
6 #   $Author: clonezone $
7 # $Revision: 2416 $
8 ##############################################################################
9
10 use 5.006001;
11 use strict;
12 use warnings;
13 use Test::More tests => 41;
14 use English qw(-no_match_vars);
15 use Perl::Critic::UserProfile;
16
17 #-----------------------------------------------------------------------------
18 # Create profile from hash
19
20 {
21     my %policy_params = (keywords => 'Revision');
22     my %profile_hash = ( '-NamingConventions::ProhibitMixedCaseVars' => {},
23                          'Miscellanea::RequireRcsKeywords' => \%policy_params );
24
25     my $up = Perl::Critic::UserProfile->new( -profile => \%profile_hash );
26
27     #Using short policy names
28     is($up->policy_is_enabled('Miscellanea::RequireRcsKeywords'), 1 );
29     is($up->policy_is_disabled('NamingConventions::ProhibitMixedCaseVars'), 1 );
30     is_deeply($up->raw_policy_params('Miscellanea::RequireRcsKeywords'), \%policy_params);
31
32     #Now using long policy names
33     is($up->policy_is_enabled('Perl::Critic::Policy::Miscellanea::RequireRcsKeywords'), 1 );
34     is($up->policy_is_disabled('Perl::Critic::Policy::NamingConventions::ProhibitMixedCaseVars'), 1 );
35     is_deeply($up->raw_policy_params('Perl::Critic::Policy::Miscellanea::RequireRcsKeywords'), \%policy_params);
36
37     #Using bogus policy names
38     is($up->policy_is_enabled('Perl::Critic::Policy::Bogus'),   q{} );
39     is($up->policy_is_disabled('Perl::Critic::Policy::Bogus'),  q{} );
40     is_deeply($up->raw_policy_params('Perl::Critic::Policy::Bogus'), {} );
41 }
42
43 #-----------------------------------------------------------------------------
44 # Create profile from array
45
46 {
47     my %policy_params = (keywords => 'Revision');
48     my @profile_array = ( q{ [-NamingConventions::ProhibitMixedCaseVars] },
49                           q{ [Miscellanea::RequireRcsKeywords]           },
50                           q{ keywords = Revision                         },
51     );
52
53
54     my $up = Perl::Critic::UserProfile->new( -profile => \@profile_array );
55
56     #Now using long policy names
57     is($up->policy_is_enabled('Miscellanea::RequireRcsKeywords'), 1 );
58     is($up->policy_is_disabled('NamingConventions::ProhibitMixedCaseVars'), 1 );
59     is_deeply($up->raw_policy_params('Miscellanea::RequireRcsKeywords'), \%policy_params);
60
61     #Now using long policy names
62     is($up->policy_is_enabled('Perl::Critic::Policy::Miscellanea::RequireRcsKeywords'), 1 );
63     is($up->policy_is_disabled('Perl::Critic::Policy::NamingConventions::ProhibitMixedCaseVars'), 1 );
64     is_deeply($up->raw_policy_params('Perl::Critic::Policy::Miscellanea::RequireRcsKeywords'), \%policy_params);
65
66     #Using bogus policy names
67     is($up->policy_is_enabled('Perl::Critic::Policy::Bogus'),   q{} );
68     is($up->policy_is_disabled('Perl::Critic::Policy::Bogus'),  q{} );
69     is_deeply($up->raw_policy_params('Perl::Critic::Policy::Bogus'), {} );
70 }
71
72 #-----------------------------------------------------------------------------
73 # Create profile from string
74
75 {
76     my %policy_params = (keywords => 'Revision');
77     my $profile_string = <<'END_PROFILE';
78 [-NamingConventions::ProhibitMixedCaseVars]
79 [Miscellanea::RequireRcsKeywords]
80 keywords = Revision
81 END_PROFILE
82
83     my $up = Perl::Critic::UserProfile->new( -profile => \$profile_string );
84
85     #Now using long policy names
86     is($up->policy_is_enabled('Miscellanea::RequireRcsKeywords'), 1 );
87     is($up->policy_is_disabled('NamingConventions::ProhibitMixedCaseVars'), 1 );
88     is_deeply($up->raw_policy_params('Miscellanea::RequireRcsKeywords'), \%policy_params);
89
90     #Now using long policy names
91     is($up->policy_is_enabled('Perl::Critic::Policy::Miscellanea::RequireRcsKeywords'), 1 );
92     is($up->policy_is_disabled('Perl::Critic::Policy::NamingConventions::ProhibitMixedCaseVars'), 1 );
93     is_deeply($up->raw_policy_params('Perl::Critic::Policy::Miscellanea::RequireRcsKeywords'), \%policy_params);
94
95     #Using bogus policy names
96     is($up->policy_is_enabled('Perl::Critic::Policy::Bogus'),   q{} );
97     is($up->policy_is_disabled('Perl::Critic::Policy::Bogus'),  q{} );
98     is_deeply($up->raw_policy_params('Perl::Critic::Policy::Bogus'), {} );
99 }
100
101 #-----------------------------------------------------------------------------
102 # Test long policy names
103
104 {
105        my %policy_params = (keywords => 'Revision');
106        my $long_profile_string = <<'END_PROFILE';
107 [-Perl::Critic::Policy::NamingConventions::ProhibitMixedCaseVars]
108 [Perl::Critic::Policy::Miscellanea::RequireRcsKeywords]
109 keywords = Revision
110 END_PROFILE
111
112        my $up = Perl::Critic::UserProfile->new( -profile => \$long_profile_string );
113
114        #Now using long policy names
115        is($up->policy_is_enabled('Miscellanea::RequireRcsKeywords'), 1 );
116        is($up->policy_is_disabled('NamingConventions::ProhibitMixedCaseVars'), 1 );
117        is_deeply($up->raw_policy_params('Miscellanea::RequireRcsKeywords'), \%policy_params);
118
119        #Now using long policy names
120        is($up->policy_is_enabled('Perl::Critic::Policy::Miscellanea::RequireRcsKeywords'), 1 );
121        is($up->policy_is_disabled('Perl::Critic::Policy::NamingConventions::ProhibitMixedCaseVars'), 1 );
122        is_deeply($up->raw_policy_params('Perl::Critic::Policy::Miscellanea::RequireRcsKeywords'), \%policy_params);
123
124        #Using bogus policy names
125        is($up->policy_is_enabled('Perl::Critic::Policy::Bogus'),   q{} );
126        is($up->policy_is_disabled('Perl::Critic::Policy::Bogus'),  q{} );
127        is_deeply($up->raw_policy_params('Perl::Critic::Policy::Bogus'), {} );
128    }
129
130 #-----------------------------------------------------------------------------
131 # Test exception handling
132
133 {
134     my $code_ref = sub { return };
135     eval { Perl::Critic::UserProfile->new( -profile => $code_ref ) };
136     like( $EVAL_ERROR, qr/Can't load UserProfile/, 'Invalid profile type');
137
138     eval { Perl::Critic::UserProfile->new( -profile => 'bogus' ) };
139     like( $EVAL_ERROR, qr/File 'bogus' does not exist/, 'Invalid profile path');
140
141     my $invalid_syntax = '[Foo::Bar'; #Missing "]"
142     eval { Perl::Critic::UserProfile->new( -profile => \$invalid_syntax ) };
143     like( $EVAL_ERROR, qr/Syntax error at line/, 'Invalid profile syntax');
144
145     $invalid_syntax = 'severity 2'; #Missing "="
146     eval { Perl::Critic::UserProfile->new( -profile => \$invalid_syntax ) };
147     like( $EVAL_ERROR, qr/Syntax error at line/, 'Invalid profile syntax');
148
149 }
150
151 #-----------------------------------------------------------------------------
152 # Test profile finding
153
154 {
155     my $expected = $ENV{PERLCRITIC} = 'foo';
156     my $got = Perl::Critic::UserProfile::_find_profile_path();
157     is( $got, $expected, 'PERLCRITIC environment variable');
158 }
159
160 #-----------------------------------------------------------------------------
161
162 # ensure we run true if this test is loaded by
163 # t/10_userprofile.t_without_optional_dependencies.t
164 1;
165
166 # Local Variables:
167 #   mode: cperl
168 #   cperl-indent-level: 4
169 #   fill-column: 78
170 #   indent-tabs-mode: nil
171 #   c-indentation-style: bsd
172 # End:
173 # ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround :