4 TESTDIR
=$(readlink -f $(dirname $0)) 
   8 configarchitecture 
"i386" 
  10 buildsimplenativepackage 
'apt' 'all' '1.0' 'stable' 
  12 # setup http redirecting to https 
  13 getlabelfromsuite
() { echo 'Testcases'; } 
  14 setupaptarchive 
--no-update 
  15 changetowebserver 
-o 'aptwebserver::redirect::replace::/redirectme/=https://localhost:4433/' \
 
  16         -o 'aptwebserver::redirect::replace::/downgrademe/=http://localhost:8080/' \
 
  17         -o 'aptwebserver::support::http=false' 
  18 changetohttpswebserver
 
  19 sed -i -e 's#:4433/#:8080/redirectme#' -e 's# https:# http:#' rootdir
/etc
/apt
/sources.list.d
/* 
  21 testsuccess aptget update 
-o Debug
::Acquire
::http
=1 -o Debug
::Acquire
::https
=1 -o Debug
::pkgAcquire
::Worker
=1 
  23 msgtest 
'Test that the webserver does not answer' 'http requests' 
  24 downloadfile 
'http://localhost:8080/pool/main/a/apt/apt_1.0/changelog' changelog 
>/dev
/null 
2>&1 && msgfail 
|| msgpass
 
  26 echo 'Acquire::Changelogs::URI::Label::Testcases "http://localhost:8080/redirectme/pool/CHANGEPATH/changelog";' > rootdir
/etc
/apt
/apt.conf.d
/changelog.conf
 
  27 testsuccessequal 
"'http://localhost:8080/redirectme/pool/main/a/apt/apt_1.0/changelog' apt.changelog" aptget changelog apt 
--print-uris 
  30 testsuccess aptget changelog apt 
-d 
  31 testsuccess 
test -s apt.changelog
 
  34 testsuccess aptget download apt
 
  35 testsuccess 
test -s apt_1.0_all.deb
 
  39 testsuccess aptget 
install apt 
-y 
  40 testdpkginstalled 
'apt' 
  42 # create a copy of all methods, expect https 
  43 eval `aptconfig shell METHODS Dir::Bin::Methods/d` 
  44 COPYMETHODS
='usr/lib/apt/methods' 
  45 mv rootdir
/${COPYMETHODS} rootdir
/${COPYMETHODS}.bak
 
  46 mkdir -p rootdir
/$COPYMETHODS 
  47 cd rootdir
/$COPYMETHODS 
  48 find $METHODS \
! -type d 
| while read meth
; do 
  53 echo "Dir::Bin::Methods \"${COPYMETHODS}\";" >> aptconfig.conf
 
  56 testfailureequal 
"E: The method driver $(readlink -f './../')/rootdir/usr/lib/apt/methods/https could not be found. 
  57 N: Is the package apt-transport-https installed?" aptget download apt 
-q=0 
  58 testfailure 
test -e apt_1.0_all.deb
 
  61 # revert to all methods 
  62 rm -rf rootdir
/$COPYMETHODS 
  63 mv rootdir
/${COPYMETHODS}.bak rootdir
/${COPYMETHODS} 
  65 # check that downgrades from https to http are not allowed 
  66 webserverconfig 
'aptwebserver::support::http' 'true' 
  67 sed -i -e 's#:8080/redirectme#:4433/downgrademe#' -e 's# http:# https:#' rootdir
/etc
/apt
/sources.list.d
/* 
  68 testfailure aptget update 
--allow-insecure-repositories