Login
ccae538a1c82c734bab2470db90986aadcaaa70d
[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 => 7;
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 # RT #32440
77
78 $code = <<"END_PERL";
79 #This will be interpolated!
80 \$x =~ m/
81 \tsome
82 \t(really | long)
83 \tpattern
84 /mx;
85 END_PERL
86
87 is( pcritique($policy, \$code, \%config), 0, 'Tabs in regex' );
88
89 #-----------------------------------------------------------------------------
90
91 $code = <<"END_PERL";
92 ##This will be interpolated!
93
94 sub my_sub {
95 \tfor(1){
96 \t\tdo_something();
97 \t}
98 }
99
100 END_PERL
101
102 %config = (allow_leading_tabs => 0);
103 is( pcritique($policy, \$code, \%config), 3, $policy );
104
105 #-----------------------------------------------------------------------------
106
107 $code = <<"END_PERL";
108 ##This will be interpolated!
109
110 sub my_sub {
111 ;\tfor(1){
112 \t\tdo_something();
113 ;\t}
114 }
115
116 END_PERL
117
118 %config = (allow_leading_tabs => 0);
119 is( pcritique($policy, \$code, \%config), 3, $policy );
120
121 #-----------------------------------------------------------------------------
122
123 $code = <<"END_PERL";
124 #This will be interpolated!
125
126 __DATA__
127 foo\tbar\tbaz
128 \tfred\barney
129
130 END_PERL
131
132 %config = (allow_leading_tabs => 0);
133 is( pcritique($policy, \$code, \%config), 0, 'Tabs in __DATA__' );
134
135 #-----------------------------------------------------------------------------
136
137 # Local Variables:
138 #   mode: cperl
139 #   cperl-indent-level: 4
140 #   fill-column: 78
141 #   indent-tabs-mode: nil
142 #   c-indentation-style: bsd
143 # End:
144 # ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround :