#!/bin/sh
set -e

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

setupenvironment
configarchitecture "i386"
changetowebserver

# setup env
mkdir -p var/lib/apt/keyrings
mkdir -p usr/share/keyrings

# install the fake master keyring
install -m0644 keys/test-master-keyring.pub usr/share/keyrings
echo "APT::Key::MasterKeyring \"${TMPWORKINGDIRECTORY}/usr/share/keyrings/test-master-keyring.pub\";" >> ./aptconfig.conf

# setup archive-keyring 
mkdir -p aptarchive/ubuntu/project
install -m0644 keys/test-archive-keyring.pub aptarchive/ubuntu/project/
echo 'APT::Key::ArchiveKeyringURI "http://localhost:8080/ubuntu/project/test-archive-keyring.pub";' >> ./aptconfig.conf
echo 'APT::Key::Net-Update-Enabled "1";' >> ./aptconfig.conf

# test against the "real" webserver
testsuccessequal 'Checking for new archive signing keys now
gpg: key F68C85A3: public key "Test Automatic Archive Signing Key <ftpmaster@example.com>" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)' aptkey --fakeroot net-update

aptkey list | grep '^pub' > aptkey.list
testfileequal ./aptkey.list 'pub   1024R/F68C85A3 2013-12-19
pub   2048R/DBAC8DAE 2010-08-18'

# now try a different one
# setup archive-keyring 
mkdir -p aptarchive/ubuntu/project
install -m0644 keys/marvinparanoid.pub aptarchive/ubuntu/project/
echo 'APT::Key::ArchiveKeyringURI "http://localhost:8080/ubuntu/project/marvinparanoid.pub";' >> ./aptconfig.conf
echo 'APT::Key::Net-Update-Enabled "1";' >> ./aptconfig.conf

# test against the "real" webserver
testsuccessequal "Checking for new archive signing keys now
Key 'DE66AECA9151AFA1877EC31DE8525D47528144E2' not added. It is not signed with a master key" aptkey --fakeroot net-update

aptkey list | grep '^pub' > aptkey.list
testfileequal ./aptkey.list 'pub   1024R/F68C85A3 2013-12-19
pub   2048R/DBAC8DAE 2010-08-18'