]> git.saurik.com Git - apt.git/commitdiff
test all redirection codes work as expected
authorDavid Kalnischkies <david@kalnischkies.de>
Thu, 28 Jan 2016 23:52:48 +0000 (00:52 +0100)
committerDavid Kalnischkies <david@kalnischkies.de>
Sun, 31 Jan 2016 18:06:19 +0000 (19:06 +0100)
Git-Dch: Ignore

test/integration/test-bug-602412-dequote-redirect
test/interactive-helper/aptwebserver.cc

index c5f0e1e64e3c81ef8a068fad42f9acc091ca8524..3d88baaef44bb649c918b23031c1d416bd5f0ec5 100755 (executable)
@@ -16,21 +16,29 @@ mv aptarchive/pool aptarchive/newpool
 mv aptarchive/dists aptarchive/newdists
 
 testrun() {
 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
        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
 }
 
 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
 
 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
index 849323cc0960ab6ba22956ba2ebf3a5184edecef..0398a45997b1f2458efb89e9d9f480ecf91156e0 100644 (file)
@@ -652,7 +652,7 @@ static void * handleClient(void * voidclient)                               /*{{{*/
               redirect.erase(0,1);
            if (redirect != filename)
            {
               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;
            }
         }
               continue;
            }
         }