summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtest/integration/test-bug-602412-dequote-redirect18
-rw-r--r--test/interactive-helper/aptwebserver.cc2
2 files changed, 14 insertions, 6 deletions
diff --git a/test/integration/test-bug-602412-dequote-redirect b/test/integration/test-bug-602412-dequote-redirect
index c5f0e1e64..3d88baaef 100755
--- a/test/integration/test-bug-602412-dequote-redirect
+++ b/test/integration/test-bug-602412-dequote-redirect
@@ -16,21 +16,29 @@ mv aptarchive/pool aptarchive/newpool
mv aptarchive/dists aptarchive/newdists
testrun() {
- msgmsg 'Test redirection works in method boundaries' "$1"
+ 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 $1 unstable InRelease
+ 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
}
-testrun "http://localhost:${APTHTTPPORT}"
+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
-rm -rf rootdir/var/lib/apt/lists rootdir/var/cache/apt/archives
changetohttpswebserver
-testrun "https://localhost:${APTHTTPSPORT}"
+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
diff --git a/test/interactive-helper/aptwebserver.cc b/test/interactive-helper/aptwebserver.cc
index 849323cc0..0398a4599 100644
--- a/test/interactive-helper/aptwebserver.cc
+++ b/test/interactive-helper/aptwebserver.cc
@@ -652,7 +652,7 @@ static void * handleClient(void * voidclient) /*{{{*/
redirect.erase(0,1);
if (redirect != filename)
{
- sendRedirect(client, 301, redirect, *m, sendContent);
+ sendRedirect(client, _config->FindI("aptwebserver::redirect::httpcode", 301), redirect, *m, sendContent);
continue;
}
}