aboutsummaryrefslogtreecommitdiffstats
path: root/t.validate-xhtml
blob: fa4d8e43a74bb45511c8e739feb406b8a008bbce (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
#! /bin/sh

# This test script validates all *.html files as XHTML.

set -eu
e=0
fail=
IFS=$(printf '\n\t')

# smoke test validator and skip if it fails
cat - <<'_EOF'  | xmllint 2>/dev/null --nonet --postvalid --noout - || exit 77
<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head><title /></head><body></body></html>
_EOF
# same, for XHTML 1.1
cat - <<'_EOF'  | xmllint 2>/dev/null --nonet --postvalid --noout - || exit 77
<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    <head><title /></head><body></body></html>
_EOF

for i in "${srcdir}"/*.html ; do
    case "$i" in */fetchmail-man.html) continue ;; esac
    xmllint --postvalid --noout "$i" || { e=1 ; fail="$i${fail:+" "}$fail" ; }
done
if [ $e != 0 ] ; then
    echo >&2 ">>>>> Invalid XHTML in files: ${fail}."
fi
exit $e