shlomi-fish-homepage / Tests / valid-html-tidy.t

#!/usr/bin/perl

use strict;
use warnings;

use Test::More tests => 1;

use HTML::Tidy;
use File::Find::Object::Rule;
use IO::All;

local $SIG{__WARN__} = sub {
    my $w = shift;
    if ($w !~ /\AUse of uninitialized/)
    {
        die $w;
    }
    return;
};

my $tidy = HTML::Tidy->new({ output_xhtml => 1, });
$tidy->ignore( type => TIDY_WARNING, type => TIDY_INFO );

my $error_count = 0;

for my $fn (File::Find::Object::Rule->file()->name(qr/\.x?html\z/)->in("./dest"))
{
    if (not ($fn =~ m{js/MathJax}
                or $fn =~ m{\Adest/t2/MathVentures/}))
    {
        $tidy->parse( $fn, (scalar io->file($fn)->slurp()));

        for my $message ( $tidy->messages ) {
            $error_count++;
            diag( $message->as_string);
        }
    }
}

# TEST
is ($error_count, 0, "No errors");
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.