#!/bin/sh
set -e

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

setupenvironment
configarchitecture "i386"

buildsimplenativepackage 'apt' 'all' '1.0' 'stable'

setupaptarchive --no-update
changetowebserver
testsuccess aptget update

# simulate normal user with non-existent root-owned directories
rm -rf rootdir/var/cache/apt/archives/
mkdir rootdir/var/cache/apt/archives/
addtrap 'prefix' "chmod -f -R +w $PWD/rootdir/var/cache/apt/archives || true;"
chmod -R -w rootdir/var/cache/apt/archives

echo 'Apt::Changelogs::Server "http://localhost:8080/";' > rootdir/etc/apt/apt.conf.d/changelog.conf

testequal "'http://localhost:8080//pool/apt_1.0/changelog'" aptget changelog apt --print-uris

testequal "'http://localhost:8080//pool/apt_1.0/changelog'
'http://localhost:8080//pool/apt_1.0/changelog'" aptget changelog apt apt --print-uris

testsuccess aptget changelog apt -qq
testfileequal 'rootdir/tmp/testsuccess.output' "$(cat aptarchive/pool/apt_1.0/changelog)"

testsuccess aptget changelog apt -d
testfileequal 'apt.changelog' "$(cat  aptarchive/pool/apt_1.0/changelog)"
rm -f apt.changelog aptarchive/pool/apt_1.0/changelog

testequal "$(cat aptarchive/pool/apt_1.0.changelog)" aptget changelog apt \
	-qq -o APT::Changelogs::Server='http://not-on-the-main-server:8080/'

testsuccess aptget changelog apt -d
testfileequal 'apt.changelog' "$(cat aptarchive/pool/apt_1.0.changelog)"
rm -f apt.changelog aptarchive/pool/apt_1.0.changelog

testequal 'E: changelog download failed' aptget changelog apt -qq -o APT::Changelogs::Server='http://not-on-the-main-server:8080/'