ikiwiki/t/wellformed.t

53 lines
983 B
Perl
Executable File

#!/usr/bin/perl
use warnings;
use strict;
use Cwd qw();
use File::Find;
use Test::More;
plan(skip_all => 'running installed') if $ENV{INSTALLED_TESTS};
plan(skip_all => "XML::Parser not available")
unless eval q{use XML::Parser (); 1;};
use IkiWiki;
ok(system("make docwiki >/dev/null") == 0);
chdir("html") || die "chdir: $!";
sub wanted {
my $file = $_;
return if -d $file;
$file =~ s{^\./}{};
return if $file !~ m/\.html$/;
if (eval {
XML::Parser->new()->parsefile($file);
1;
}) {
pass($file);
}
elsif ($file =~ m{^(?:
# user-contributed, contains explicit <br>
plugins/contrib/gallery |
# use templatebody when branchable.com has been upgraded
templates/ |
# malformed content in <pre> not escaped by discount
tips/convert_mediawiki_to_ikiwiki
# user-contributed, content is anyone's guess
users/ |
)}x) {
TODO: {
local $TODO = $@;
fail($file);
}
}
}
find({
no_chdir => 1,
wanted => \&wanted,
}, '.');
done_testing;