diff options
Diffstat (limited to 'test/integration/test-bug-602412-dequote-redirect')
-rwxr-xr-x | test/integration/test-bug-602412-dequote-redirect | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/test/integration/test-bug-602412-dequote-redirect b/test/integration/test-bug-602412-dequote-redirect new file mode 100755 index 0000000..3db7b5e --- /dev/null +++ b/test/integration/test-bug-602412-dequote-redirect @@ -0,0 +1,64 @@ +#!/bin/sh +set -e + +TESTDIR="$(readlink -f "$(dirname "$0")")" +. "$TESTDIR/framework" +setupenvironment +configarchitecture 'amd64' + +buildsimplenativepackage 'unrelated' 'all' '0.5~squeeze1' 'unstable' +buildsimplenativepackage 'unrelated2' 'all' '0.5~squeeze1' 'unstable' +insertinstalledpackage 'unrelated2' 'all' '0.1' + +setupaptarchive --no-update +changetowebserver -o aptwebserver::redirect::replace::/pool/=/newpool/ \ + -o aptwebserver::redirect::replace::/dists/=/newdists/ + +mv aptarchive/pool aptarchive/newpool +mv aptarchive/dists aptarchive/newdists + +testrun() { + msgmsg "Test $1 redirection works in method boundaries" "$2" + msgtest 'Test redirection works in' 'apt-get update' + testsuccess --nomsg aptget update + + # check that I-M-S header is kept in redirections + testsuccessequal "Hit:1 $2 unstable InRelease +Reading package lists..." aptget update + + msgtest 'Test redirection works in' 'package download' + testsuccess --nomsg aptget install unrelated --download-only -y +} + +for CODE in 301 302 307 308; do + webserverconfig 'aptwebserver::redirect::httpcode' "$CODE" + rm -f aptarchive/webserver.log.client*.log + testrun "$CODE" "http://localhost:${APTHTTPPORT}" + testsuccess grep "^HTTP/1.1 $CODE " aptarchive/webserver.log.client*.log + rm -rf rootdir/var/lib/apt/lists rootdir/var/cache/apt/archives +done + +changetohttpswebserver + +for CODE in 301 302 307 308; do + webserverconfig 'aptwebserver::redirect::httpcode' "$CODE" + rm -f aptarchive/webserver.log.client*.log + testrun "$CODE" "https://localhost:${APTHTTPSPORT}" + testsuccess grep "^HTTP/1.1 $CODE " aptarchive/webserver.log.client*.log + rm -rf rootdir/var/lib/apt/lists rootdir/var/cache/apt/archives +done + +testsuccess apt update +testsuccess aptget install unrelated --download-only +testsuccessequal 'Reading package lists... +Building dependency tree... +Calculating upgrade... +The following NEW packages will be installed: + unrelated +The following packages have been kept back: + unrelated2 +0 upgraded, 1 newly installed, 0 to remove and 1 not upgraded. +Inst unrelated (0.5~squeeze1 unstable [all]) +Conf unrelated (0.5~squeeze1 unstable [all])' aptget dist-upgrade unrelated --no-download --fix-missing -s +testsuccess aptget dist-upgrade unrelated --no-download --fix-missing -y +testdpkginstalled unrelated |