1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
|
#!/usr/bin/perl -w
#
# Test that our output is validatored
#
# Steve
# --
use File::Find;
use HTML::Lint;
use Test::More;
#
# Basically this test validates the HTML which would be produced if
# a blog is compiled - if one is not present then we have nothing to
# validate against.
#
if ( -d "./output/" )
{
plan no_plan;
}
else
{
plan skip_all => 'There is no output directory to validate against!';
exit;
}
#
# Find all the files beneath the current directory,
# and call 'checkFile' with the name.
#
find( { wanted => \&checkFile, no_chdir => 1 }, './output/' );
#
# Check a file.
#
#
sub checkFile
{
# The file.
my $file = $File::Find::name;
# We don't care about directories
return if ( ! -f $file );
# We only care about html files.
return if ( $file !~ /\.html$/ );
my $lint = HTML::Lint->new;
$lint->parse_file( $file );
my $error_count = $lint->errors;
foreach my $error ( $lint->errors ) {
if ( $error->as_string =~ /<cut>/ )
{
$error_count -= 1;
}
#print $error->as_string, "\n";
}
is( $error_count, 0 , "There are no errors in $file" );
}
#
# Count and return the number of literal TAB characters contained
# in the specified file.
#
sub countTabCharacters
{
my ( $file ) = (@_);
my $count = 0;
open( FILE, "<", $file )
or die "Cannot open $file - $!";
foreach my $line ( <FILE> )
{
# We will count multiple tab characters in a single line.
while( $line =~ /(.*)\t(.*)/ )
{
$count += 1;
$line = $1 . $2;
}
}
close( FILE );
return( $count );
}
|