diff options
Diffstat (limited to 't/maint')
-rw-r--r-- | t/maint/bom.t | 38 | ||||
-rw-r--r-- | t/maint/eol-style.t | 6 | ||||
-rw-r--r-- | t/maint/php-lint.t | 4 | ||||
-rw-r--r-- | t/maint/php-tag.t | 6 | ||||
-rw-r--r-- | t/maint/unix-newlines.t | 23 |
5 files changed, 60 insertions, 17 deletions
diff --git a/t/maint/bom.t b/t/maint/bom.t new file mode 100644 index 00000000..b5e6ae98 --- /dev/null +++ b/t/maint/bom.t @@ -0,0 +1,38 @@ +#!/usr/bin/env perl +# +# This test detect Byte Order Mark (BOM). The char is sometime included at the +# top of files by some text editors to mark them as being UTF-8 encoded. +# They are not stripped by php 5.x and appear at the beginning of our content, +# You want them removed! +# See: +# http://www.fileformat.info/info/unicode/char/feff/index.htm +# http://bugzilla.wikimedia.org/show_bug.cgi?id=9954 + +use strict; +use warnings; + +use Test::More; + +use File::Find; + +# Files for wich we want to check the BOM char ( 0xFE 0XFF ) +my $ext = qr/(?:php|inc)/x ; + +my $bomchar = qr/\xef\xbb\xbf/ ; + +my @files; + +find( sub{ push @files, $File::Find::name if -f && /\.$ext$/ }, '.' ); + +# Register our files with the test system +plan tests => scalar @files ; + +for my $file (@files) { + open my $fh, "<", $file or die "Couln't open $file: $!"; + my $line = <$fh>; + if( $line =~ /$bomchar/ ) { + fail "$file has a Byte Order Mark at line $."; + } else { + pass "$file has no Byte Order Mark!"; + } +} diff --git a/t/maint/eol-style.t b/t/maint/eol-style.t index d877a264..2e281dc4 100644 --- a/t/maint/eol-style.t +++ b/t/maint/eol-style.t @@ -26,10 +26,10 @@ for my $file (@files) { waitpid $pid, 0; if ( $? != 0 ) { - ok 1 => "svn propget failed, $file probably not under version control"; + pass "svn propget failed, $file probably not under version control"; } elsif ( $res eq 'native' ) { - ok 1 => "$file svn:eol-style is 'native'"; + pass "$file svn:eol-style is 'native'"; } else { - ok 0 => "$file svn:eol-style is '$res', should be 'native'"; + fail "$file svn:eol-style is '$res', should be 'native'"; } } diff --git a/t/maint/php-lint.t b/t/maint/php-lint.t index e65d6895..6687a089 100644 --- a/t/maint/php-lint.t +++ b/t/maint/php-lint.t @@ -26,8 +26,8 @@ for my $file (@files) { waitpid $pid, 0; if ( $? == 0 ) { - ok 1 => "Looks fine"; + pass($file); } else { - ok 0 => "$file does not pass php linter. Error was: $res"; + fail("$file does not pass php -l. Error was: $res"); } } diff --git a/t/maint/php-tag.t b/t/maint/php-tag.t index 80b870b7..5093ca7f 100644 --- a/t/maint/php-tag.t +++ b/t/maint/php-tag.t @@ -17,11 +17,11 @@ plan tests => scalar @files; for my $file (@files) { my $cont = slurp $file; if ( $cont =~ m<<\?php .* \?>>xs ) { - ok 1 => "$file has <?php ?>"; + pass "$file has <?php ?>"; } elsif ( $cont =~ m<<\? .* \?>>xs ) { - ok 0 => "$file does not use <? ?>"; + fail "$file does not use <? ?>"; } else { - ok 1 => "$file has neither <?php ?> nor <? ?>, check it"; + pass "$file has neither <?php ?> nor <? ?>, check it"; } } diff --git a/t/maint/unix-newlines.t b/t/maint/unix-newlines.t index 91a24ad7..c47dd17c 100644 --- a/t/maint/unix-newlines.t +++ b/t/maint/unix-newlines.t @@ -5,23 +5,28 @@ use warnings; use Test::More;; use File::Find; -use File::Slurp qw< slurp >; -use Socket qw< $CRLF $LF >; +use Socket '$CRLF'; my $ext = qr/(?: t | pm | sql | js | php | inc | xml )/x; my @files; find( sub { push @files, $File::Find::name if -f && /\. $ext $/x }, '.' ); -plan tests => scalar @files; +plan 'no_plan'; for my $file (@files) { - my $cont = slurp $file; - if ( $cont and $cont =~ $CRLF ) { - ok 0 => "$file contains windows newlines"; - } else { - ok 1 => "$file is made of unix newlines and win"; - } + open my $fh, "<", $file or die "Can't open $file: $!"; + binmode $fh; + + my $ok = 1; + while (<$fh>) { + if (/$CRLF/) { + fail "$file has \\r\\n on line $."; + $ok = 0; + } + } + + pass "$file has only unix newlines" if $ok; } |