summaryrefslogtreecommitdiff
path: root/t/maint
diff options
context:
space:
mode:
Diffstat (limited to 't/maint')
-rw-r--r--t/maint/bom.t38
-rw-r--r--t/maint/eol-style.t6
-rw-r--r--t/maint/php-lint.t4
-rw-r--r--t/maint/php-tag.t6
-rw-r--r--t/maint/unix-newlines.t23
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;
}