X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/ca3965066270db678649ffd19479a157d95b429f..29c590951f812d9e9c4f17706e34f2c3315fb1f6:/test/integration/test-bug-602412-dequote-redirect?ds=sidebyside diff --git a/test/integration/test-bug-602412-dequote-redirect b/test/integration/test-bug-602412-dequote-redirect index f1e67c6d8..b4da876cb 100755 --- a/test/integration/test-bug-602412-dequote-redirect +++ b/test/integration/test-bug-602412-dequote-redirect @@ -1,29 +1,61 @@ #!/bin/sh set -e -TESTDIR=$(readlink -f $(dirname $0)) -. $TESTDIR/framework +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 +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 -msgtest 'Test redirection works in' 'apt-get update' -aptget update -qq && msgpass || msgfail +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 -testequal 'Hit http://localhost unstable InRelease -Hit http://localhost unstable/main Sources -Hit http://localhost unstable/main amd64 Packages -Hit http://localhost unstable/main Translation-en -Reading package lists...' 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' -aptget install unrelated --download-only -qq && msgpass || msgfail + msgtest 'Test redirection works in' 'package download' + testsuccess --nomsg aptget install unrelated --download-only -y +} + +for CODE in 301 302 307; do + webserverconfig 'aptwebserver::redirect::httpcode' "$CODE" + testrun "$CODE" "http://localhost:${APTHTTPPORT}" + testsuccess grep "^HTTP/1.1 $CODE " aptarchive/webserver.log + rm -rf rootdir/var/lib/apt/lists rootdir/var/cache/apt/archives +done + +changetohttpswebserver + +for CODE in 301 302 307; do + webserverconfig 'aptwebserver::redirect::httpcode' "$CODE" + testrun "$CODE" "https://localhost:${APTHTTPSPORT}" + 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