#!/bin/sh
set -e

TESTDIR=$(readlink -f $(dirname $0))
. $TESTDIR/framework

setupenvironment
configarchitecture 'native'

# old conffile
setupsimplenativepackage 'compiz-core' 'native' '1.0' 'unstable'
BUILDDIR='incoming/compiz-core-1.0'
mkdir -p ${BUILDDIR}/debian/compiz-core/etc
echo 'foo=bar;' > ${BUILDDIR}/compiz.conf
echo 'compiz.conf	/etc/compiz.conf' >> ${BUILDDIR}/debian/install
buildpackage "$BUILDDIR" 'unstable' 'main' 'native'
rm -rf "$BUILDDIR"

# new conffile
setupsimplenativepackage 'compiz-core' 'native' '2.0' 'unstable'
BUILDDIR='incoming/compiz-core-2.0'
mkdir -p ${BUILDDIR}/debian/compiz-core/etc
echo 'foo2=bar2;' > ${BUILDDIR}/compiz.conf
echo 'compiz.conf	/etc/compiz.conf' >> ${BUILDDIR}/debian/install
buildpackage "$BUILDDIR" 'unstable' 'main' 'native'
rm -rf "$BUILDDIR"

setupaptarchive

testsuccess aptget install compiz-core=1.0

# fake conffile change
echo "meep" >> rootdir/etc/compiz.conf/compiz.conf

# FIXME: Is there really no way to see if dpkg actually prompts?
msgtest 'Test for successful execution of' 'apt-get install compiz-core=2.0'
OUTPUT=$(mktemp)
addtrap "rm $OUTPUT;"
exec 3> apt-progress.log
if aptget install compiz-core=2.0 -o APT::Status-Fd=3 -o Dpkg::Use-Pty=false -o dpkg::options::='--force-confold' >${OUTPUT} 2>&1; then
	msgpass
else
	echo
	cat $OUTPUT
	msgfail
fi

# and ensure there is a conffile message in the file
msgtest 'Test status fd for an included' 'pmconffile msg'
grep -q "pmconffile:/etc/compiz.conf/compiz.conf" apt-progress.log && msgpass || (cat apt-progress.log && msgfail)