From d5ed4317a53900ee2c11c298665abf184182e9cf Mon Sep 17 00:00:00 2001
From: Robin Sheat <robin@catalyst.net.nz>
Date: Wed, 13 Mar 2013 15:51:37 +1300
Subject: [PATCH] Bug 9802 - add test case to ensure man pages have correct
 XML

To test:
* run xt/verify-debian-docbook.t and make sure it's all OK
* modify an xml file in debian/docs, try again, make sure it fails

Signed-off-by: Magnus Enger <magnus@enger.priv.no>
- Running "prove -v xt/verify-debian-docbook.t" loops through all the
  XML files in debian/docs and reports them as being ok.
- Removing a "<" from one of the files makes the test report it as
  an error
- I did not verify that the test actually trips up a package build
  if there is invalid XML.
---
 debian/control             |    3 ++-
 debian/control.in          |    3 ++-
 debian/rules               |    1 +
 xt/verify-debian-docbook.t |   34 ++++++++++++++++++++++++++++++++++
 4 files changed, 39 insertions(+), 2 deletions(-)
 create mode 100755 xt/verify-debian-docbook.t

diff --git a/debian/control b/debian/control
index 31af622..8ac0262 100644
--- a/debian/control
+++ b/debian/control
@@ -106,7 +106,8 @@ Build-Depends: libalgorithm-checkdigits-perl,
  libyaml-syck-perl,
  perl,
  perl-modules, 
- debhelper (>= 7.0.50), gettext, python, python-debian, xsltproc, docbook-xsl
+ debhelper (>= 7.0.50), gettext, python, python-debian, xsltproc, docbook-xsl,
+ libxml2-utils
 
 Package: koha-common
 Architecture: all
diff --git a/debian/control.in b/debian/control.in
index 8cc49dc..a30aeed 100644
--- a/debian/control.in
+++ b/debian/control.in
@@ -7,7 +7,8 @@ Standards-Version: 3.8.4
 # See debian/rules, the override_dh_gencontrol rules. 
 # There are some exceptions.
 Build-Depends:__AUTODEPENDS__, 
- debhelper (>= 7.0.50), gettext, python, python-debian, xsltproc, docbook-xsl
+ debhelper (>= 7.0.50), gettext, python, python-debian, xsltproc, docbook-xsl,
+ libxml2-utils
 
 Package: koha-common
 Architecture: all
diff --git a/debian/rules b/debian/rules
index 0b75d09..5980ebb 100755
--- a/debian/rules
+++ b/debian/rules
@@ -100,6 +100,7 @@ override_dh_auto_install:
 		   -e 's:url(.*/skin.css.*):url(skin.css):' \
 		$(TMP)/usr/share/koha/intranet/htdocs/intranet-tmpl/prog/en/css/staff-global*.css
 	mkdir -p $(TMP)/debian/tmp_docbook
+	xt/verify-debian-docbook.t
 	xsltproc --output $(TMP)/debian/tmp_docbook/ \
 	    /usr/share/xml/docbook/stylesheet/docbook-xsl/manpages/docbook.xsl \
 	    debian/docs/*.xml
diff --git a/xt/verify-debian-docbook.t b/xt/verify-debian-docbook.t
new file mode 100755
index 0000000..06490c3
--- /dev/null
+++ b/xt/verify-debian-docbook.t
@@ -0,0 +1,34 @@
+#!/usr/bin/perl
+
+# Copyright (C) 2013 Catalyst IT Ltd.
+#
+# This file is part of Koha.
+#
+# Koha is free software; you can redistribute it and/or modify it under the
+# terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 2 of the License, or (at your option) any later
+# version.
+#
+# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with Koha; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+# This runs 'xmllint' (part of libxml2-utils) over each xml file that
+# generates the koha-common man pages and ensures they're correct.
+
+use strict;
+use warnings;
+
+use Test::More qw(no_plan);
+
+my $doc_dir = 'debian/docs';
+my @doc_files = glob($doc_dir . '/*.xml');
+my @command = qw(xmllint --noout);
+
+foreach my $file (@doc_files) {
+    ok(system(@command, $file) == 0, "XML validation for $file");
+}
-- 
1.7.9.5