initial import
[catagits/Test-NoTabs.git] / t / 12-fail.t
1 use strict;
2
3 use Test::More no_plan => 1;
4
5 use Test::Group;
6
7 use File::Temp qw( tempdir tempfile );
8
9 my $perl  = $^X || 'perl';
10 my $inc = join(' -I ', @INC) || '';
11 $inc = "-I $inc" if $inc;
12
13 test 'bad file 1' => sub {
14     my $dir = make_bad_file_1();
15     my ($fh, $outfile) = tempfile();
16     ok( `$perl $inc -MTest::NoTabs -e "all_perl_files_ok( '$dir' )" 2>&1 > $outfile` );
17     local $/ = undef;
18     my $content = <$fh>;
19     like( $content, qr/^not ok 1 - Found tabs in '[^']*' on line 4/m, 'tabs found in tmp file' );
20 };
21
22 test 'bad file 2' => sub {
23     my $dir = make_bad_file_2();
24     my ($fh, $outfile) = tempfile();
25     ok( `$perl $inc -MTest::NoTabs -e "all_perl_files_ok( '$dir' )" 2>&1 > $outfile` );
26     local $/ = undef;
27     my $content = <$fh>;
28     like( $content, qr/^not ok 1 - Found tabs in '[^']*' on line 12/m, 'tabs found in tmp file' );
29 };
30
31 test 'bad file 3' => sub {
32     my $file = make_bad_file_3();
33     my ($fh, $outfile) = tempfile();
34     ok( `$perl $inc -MTest::NoTabs -e "all_perl_files_ok( '$file' )" 2>&1 > $outfile` );
35     local $/ = undef;
36     my $content = <$fh>;
37     like( $content, qr/^not ok 1 - Found tabs in '[^']*' on line 6/m, 'tabs found in tmp file' );
38 };
39
40 sub make_bad_file_1 {
41   my $tmpdir = tempdir();
42   my ($fh, $filename) = tempfile( DIR => $tmpdir, SUFFIX => '.pL' );
43   print $fh <<"DUMMY";
44 #!perl
45
46 sub main {
47 \tprint "Hello!\n";
48 }
49 DUMMY
50   return $tmpdir;
51 }
52
53 sub make_bad_file_2 {
54   my $tmpdir = tempdir();
55   my ($fh, $filename) = tempfile( DIR => $tmpdir, SUFFIX => '.pL' );
56   print $fh <<"DUMMY";
57 #!perl
58
59 =pod
60
61 =head1 NAME
62
63 test.pL -       A test script
64
65 =cut
66
67 sub main {
68 \tprint "Hello!\n";
69 }
70 DUMMY
71   return $tmpdir;
72 }
73
74 sub make_bad_file_3 {
75   my $tmpdir = tempdir();
76   my ($fh, $filename) = tempfile( DIR => $tmpdir, SUFFIX => '.pm' );
77   print $fh <<"DUMMY";
78 use strict;
79
80 package My::Test;
81
82 sub new {
83 \tmy (\$class) = @_;
84 \tmy \$self = bless { }, \$class;
85 \treturn \$self;
86 }
87
88 1;
89 __DATA__
90 nick    gerakines       software engineer       22
91 DUMMY
92   return $filename;
93 }
94