Login
929ff99886dbafb0ccf8640e1db57ca063329ce8
[gknop/Perl-Critic.git] / t / 20_policy_prohibithardtabs.t
1 #!perl
2
3 ##############################################################################
4 #      $URL$
5 #     $Date$
6 #   $Author$
7 # $Revision$
8 ##############################################################################
9
10 use 5.006001;
11 use strict;
12 use warnings;
13
14 # common P::C testing tools
15 use Perl::Critic::TestUtils qw(pcritique fcritique);
16
17 use Test::More tests => 6;
18
19 #-----------------------------------------------------------------------------
20
21 our $VERSION = '1.090';
22
23 #-----------------------------------------------------------------------------
24
25 Perl::Critic::TestUtils::block_perlcriticrc();
26
27 # This specific policy is being tested without run.t because the .run file
28 # would have to contain invisible characters.
29
30 my $code;
31 my $policy = 'CodeLayout::ProhibitHardTabs';
32 my %config;
33
34 #-----------------------------------------------------------------------------
35
36 $code = <<"END_PERL";
37 #This will be interpolated!
38
39 sub my_sub {
40 \tfor(1){
41 \t\tdo_something();
42 \t}
43 }
44
45 \t\t\t;
46
47 END_PERL
48
49 is( pcritique($policy, \$code), 0, $policy );
50
51 #-----------------------------------------------------------------------------
52
53 $code = <<"END_PERL";
54 #This will be interpolated!
55 print "\t  \t  foobar  \t";
56 END_PERL
57
58 is( pcritique($policy, \$code), 1, $policy );
59
60 #-----------------------------------------------------------------------------
61
62 $code = <<"END_PERL";
63 #This will be interpolated!
64
65 my \@list = qw(
66 \tfoo
67 \tbar
68 \tbaz
69 );
70
71 END_PERL
72
73 is( pcritique($policy, \$code, \%config), 0, 'Tabs in qw()' );
74
75 #-----------------------------------------------------------------------------
76
77 $code = <<"END_PERL";
78 ##This will be interpolated!
79
80 sub my_sub {
81 \tfor(1){
82 \t\tdo_something();
83 \t}
84 }
85
86 END_PERL
87
88 %config = (allow_leading_tabs => 0);
89 is( pcritique($policy, \$code, \%config), 3, $policy );
90
91 #-----------------------------------------------------------------------------
92
93 $code = <<"END_PERL";
94 ##This will be interpolated!
95
96 sub my_sub {
97 ;\tfor(1){
98 \t\tdo_something();
99 ;\t}
100 }
101
102 END_PERL
103
104 %config = (allow_leading_tabs => 0);
105 is( pcritique($policy, \$code, \%config), 3, $policy );
106
107 #-----------------------------------------------------------------------------
108
109 $code = <<"END_PERL";
110 #This will be interpolated!
111
112 __DATA__
113 foo\tbar\tbaz
114 \tfred\barney
115
116 END_PERL
117
118 %config = (allow_leading_tabs => 0);
119 is( pcritique($policy, \$code, \%config), 0, 'Tabs in __DATA__' );
120
121 #-----------------------------------------------------------------------------
122
123 # Local Variables:
124 #   mode: cperl
125 #   cperl-indent-level: 4
126 #   fill-column: 78
127 #   indent-tabs-mode: nil
128 #   c-indentation-style: bsd
129 # End:
130 # ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround :