#!/bin/sh
#
#	quickie - a small fast C++ Wiki Wiki
#	Copyright (C) 2005 Peter Miller
#
#	This program 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.
#
#	This program 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 this program; if not, write to the Free Software
#	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
#
# MANIFEST: Test the HTML cache functionality
#
here=`pwd`
test $? -eq 0 || exit 2
work=${TMP_DIR-/tmp}/$$

tear_down()
{
	cd $here
	rm -rf $work
}

pass()
{
	tear_down
	echo PASSED
	exit 0
}

fail()
{
	tear_down
	echo 'FAILED test of the HTML cache functionality'
	exit 1
}

no_result()
{
	tear_down
	echo 'NO RESULT for test of the HTML cache functionality'
	exit 2
}

trap "no_result" 1 2 3 15

bin=$here/${1-.}/bin
mkdir $work $work/var $work/etc
test $? -eq 0 || no_result
cd $work
test $? -eq 0 || no_result

#
# We can't pass options on the command line, because they could be
# abused by a remote client.  Instead, we configure things using
# environment variables.
#
QUICKIE_LOCALSTATEDIR=$work/var ; export QUICKIE_LOCALSTATEDIR
QUICKIE_SYSCONFDIR=$work/etc ; export QUICKIE_SYSCONFDIR

cat > var/index.html << 'fubar'
<html><body>Hello, World!</body></html>
fubar
test $? -eq 0 || no_result

cat > test.ok << 'fubar'
Content-Type: text/html
Content-Length: 40

fubar
test $? -eq 0 || no_result
cat var/index.html >> test.ok
test $? -eq 0 || no_result

PATH_INFO=/ \
REQUEST_METHOD=GET \
SCRIPT_NAME=/cgi-bin/quickie \
$bin/quickie > test.out 2>&1
if test $? -ne 0
then
    cat test.out
    fail
fi

diff test.ok test.out
test $? -eq 0 || fail

#
# The things tested here, worked.
# No other guarantees are made.
#
pass
