aboutsummaryrefslogtreecommitdiff
path: root/t/wellformed.t
blob: f57d3ca9ccd0ea90a5dbe0ec04af0873417ecd1a (plain)
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
#!/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 >/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;