#!/bin/sh +x

# Note:  When run via "make check", test output files are automatically deleted.
#	 When run from the command line, output files are left in directory
#	 spam.header.place.YYYYMMDD.  This is useful when something is different.

NODB=1 . ${srcdir=.}/t.frame

map_rc()
{
    (
	set +e
	eval "$@"
	a=$?
	[ $a -eq 0 ] && exit 0
	[ $a -eq 1 ] && exit 0
	[ $a -eq 2 ] && exit 0
	exit $a
    )
}

CFG="$TMPDIR/test.cfg"
MSG="$TMPDIR/test.msg"
REF="$TMPDIR/test.ref"
OUT="$TMPDIR/test.out"

X_BOGOSITY="X-Bogosity: Unsure, tests=bogofilter, spamicity=0.520000"

cat >> "$CFG" <<EOF
header_format = %h: %c, tests=bogofilter, spamicity=%p
EOF

cat >> "$MSG" <<EOF
from: whoever@example.com
to: somebody@example.com
DomainKey-Signature: before-this

body test
EOF

cat >> "$REF.wo" <<EOF
from: whoever@example.com
to: somebody@example.com
DomainKey-Signature: before-this
$X_BOGOSITY

body test
EOF

cat >> "$REF.wi" <<EOF
from: whoever@example.com
to: somebody@example.com
$X_BOGOSITY
DomainKey-Signature: before-this

body test
EOF

map_rc $BOGOFILTER -n -c $CFG < /dev/null
map_rc $BOGOFILTER -p -c $CFG -I "$MSG" -O "$OUT.wo"
map_rc $BOGOFILTER -p -c $CFG --spam-header-place=DomainKey-Signature: -I "$MSG" -O "$OUT.wi"

if  [ $verbose -eq 0 ]; then
    cmp "$REF.wo" "$OUT.wo" \
    ||  diff $DIFF_BRIEF "$REF.wo" "$OUT.wo"
    cmp "$REF.wi" "$OUT.wi" \
    ||  diff $DIFF_BRIEF "$REF.wi" "$OUT.wi"
else
    diff $DIFF_BRIEF "$REF.wo" "$OUT.wo"
    diff $DIFF_BRIEF "$REF.wi" "$OUT.wi"
fi
