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