From b679fc65f5f9cce62412bfd86b7751cb39cfd674 Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Thu, 16 Oct 2014 11:25:10 +0100 Subject: [PATCH] We no longer have a test for DTD-valid XHTML 1.0, but at least check well-formedness This means that people can do XSLT nonsense if they want to. The failures are currently marked TODO because not everything in the docwiki is in fact well-formed. --- t/wellformed.t | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100755 t/wellformed.t diff --git a/t/wellformed.t b/t/wellformed.t new file mode 100755 index 000000000..cee0ff3be --- /dev/null +++ b/t/wellformed.t @@ -0,0 +1,50 @@ +#!/usr/bin/perl +use warnings; +use strict; +use Cwd qw(); +use File::Find; +use Test::More; + +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
+ plugins/contrib/gallery | + # use templatebody when branchable.com has been upgraded + templates/ | + # malformed content in
 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;
-- 
2.39.5