1*6236dae4SAndroid Build Coastguard Worker<testcase> 2*6236dae4SAndroid Build Coastguard Worker<info> 3*6236dae4SAndroid Build Coastguard Worker<keywords> 4*6236dae4SAndroid Build Coastguard WorkerHTTP 5*6236dae4SAndroid Build Coastguard WorkerHTTP GET 6*6236dae4SAndroid Build Coastguard WorkerHTTP Basic auth 7*6236dae4SAndroid Build Coastguard WorkerHTTP Digest auth 8*6236dae4SAndroid Build Coastguard Worker</keywords> 9*6236dae4SAndroid Build Coastguard Worker</info> 10*6236dae4SAndroid Build Coastguard Worker# Server-side 11*6236dae4SAndroid Build Coastguard Worker<reply> 12*6236dae4SAndroid Build Coastguard Worker 13*6236dae4SAndroid Build Coastguard Worker<!-- Alternate the order that Basic and Digest headers appear in responses to 14*6236dae4SAndroid Build Coastguard Workerensure that the order doesn't matter. --> 15*6236dae4SAndroid Build Coastguard Worker 16*6236dae4SAndroid Build Coastguard Worker<!-- First request has Digest auth, wrong password --> 17*6236dae4SAndroid Build Coastguard Worker<data100> 18*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 401 Need Basic or Digest auth 19*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0 20*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1 21*6236dae4SAndroid Build Coastguard WorkerContent-Length: 27 22*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Digest realm="testrealm", nonce="1" 23*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Basic realm="testrealm" 24*6236dae4SAndroid Build Coastguard Worker 25*6236dae4SAndroid Build Coastguard WorkerThis is not the real page! 26*6236dae4SAndroid Build Coastguard Worker</data100> 27*6236dae4SAndroid Build Coastguard Worker 28*6236dae4SAndroid Build Coastguard Worker<data1100> 29*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 401 Sorry wrong password 30*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0 31*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1 32*6236dae4SAndroid Build Coastguard WorkerContent-Length: 29 33*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Basic realm="testrealm" 34*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Digest realm="testrealm", nonce="2" 35*6236dae4SAndroid Build Coastguard Worker 36*6236dae4SAndroid Build Coastguard WorkerThis is a bad password page! 37*6236dae4SAndroid Build Coastguard Worker</data1100> 38*6236dae4SAndroid Build Coastguard Worker 39*6236dae4SAndroid Build Coastguard Worker<!-- Second request has Basic auth, right password --> 40*6236dae4SAndroid Build Coastguard Worker<data200> 41*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 200 Things are fine in server land 42*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0 43*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1 44*6236dae4SAndroid Build Coastguard WorkerContent-Length: 32 45*6236dae4SAndroid Build Coastguard Worker 46*6236dae4SAndroid Build Coastguard WorkerFinally, this is the real page! 47*6236dae4SAndroid Build Coastguard Worker</data200> 48*6236dae4SAndroid Build Coastguard Worker 49*6236dae4SAndroid Build Coastguard Worker<!-- Third request has Digest auth, wrong password --> 50*6236dae4SAndroid Build Coastguard Worker<data300> 51*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 401 Need Basic or Digest auth (2) 52*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0 53*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1 54*6236dae4SAndroid Build Coastguard WorkerContent-Length: 27 55*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Digest realm="testrealm", nonce="3" 56*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Basic realm="testrealm" 57*6236dae4SAndroid Build Coastguard Worker 58*6236dae4SAndroid Build Coastguard WorkerThis is not the real page! 59*6236dae4SAndroid Build Coastguard Worker</data300> 60*6236dae4SAndroid Build Coastguard Worker 61*6236dae4SAndroid Build Coastguard Worker<data1300> 62*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 401 Sorry wrong password (2) 63*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0 64*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1 65*6236dae4SAndroid Build Coastguard WorkerContent-Length: 29 66*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Basic realm="testrealm" 67*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Digest realm="testrealm", nonce="4" 68*6236dae4SAndroid Build Coastguard Worker 69*6236dae4SAndroid Build Coastguard WorkerThis is a bad password page! 70*6236dae4SAndroid Build Coastguard Worker</data1300> 71*6236dae4SAndroid Build Coastguard Worker 72*6236dae4SAndroid Build Coastguard Worker<!-- Fourth request has Basic auth, wrong password --> 73*6236dae4SAndroid Build Coastguard Worker<data400> 74*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 401 Sorry wrong password (3) 75*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0 76*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1 77*6236dae4SAndroid Build Coastguard WorkerContent-Length: 29 78*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Digest realm="testrealm", nonce="5" 79*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Basic realm="testrealm" 80*6236dae4SAndroid Build Coastguard Worker 81*6236dae4SAndroid Build Coastguard WorkerThis is a bad password page! 82*6236dae4SAndroid Build Coastguard Worker</data400> 83*6236dae4SAndroid Build Coastguard Worker 84*6236dae4SAndroid Build Coastguard Worker<!-- Fifth request has Basic auth, right password --> 85*6236dae4SAndroid Build Coastguard Worker<data500> 86*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 200 Things are fine in server land (2) 87*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0 88*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1 89*6236dae4SAndroid Build Coastguard WorkerContent-Length: 32 90*6236dae4SAndroid Build Coastguard Worker 91*6236dae4SAndroid Build Coastguard WorkerFinally, this is the real page! 92*6236dae4SAndroid Build Coastguard Worker</data500> 93*6236dae4SAndroid Build Coastguard Worker 94*6236dae4SAndroid Build Coastguard Worker<datacheck> 95*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 401 Need Basic or Digest auth 96*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0 97*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1 98*6236dae4SAndroid Build Coastguard WorkerContent-Length: 27 99*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Digest realm="testrealm", nonce="1" 100*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Basic realm="testrealm" 101*6236dae4SAndroid Build Coastguard Worker 102*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 401 Sorry wrong password 103*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0 104*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1 105*6236dae4SAndroid Build Coastguard WorkerContent-Length: 29 106*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Basic realm="testrealm" 107*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Digest realm="testrealm", nonce="2" 108*6236dae4SAndroid Build Coastguard Worker 109*6236dae4SAndroid Build Coastguard WorkerThis is a bad password page! 110*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 200 Things are fine in server land 111*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0 112*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1 113*6236dae4SAndroid Build Coastguard WorkerContent-Length: 32 114*6236dae4SAndroid Build Coastguard Worker 115*6236dae4SAndroid Build Coastguard WorkerFinally, this is the real page! 116*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 401 Need Basic or Digest auth (2) 117*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0 118*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1 119*6236dae4SAndroid Build Coastguard WorkerContent-Length: 27 120*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Digest realm="testrealm", nonce="3" 121*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Basic realm="testrealm" 122*6236dae4SAndroid Build Coastguard Worker 123*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 401 Sorry wrong password (2) 124*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0 125*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1 126*6236dae4SAndroid Build Coastguard WorkerContent-Length: 29 127*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Basic realm="testrealm" 128*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Digest realm="testrealm", nonce="4" 129*6236dae4SAndroid Build Coastguard Worker 130*6236dae4SAndroid Build Coastguard WorkerThis is a bad password page! 131*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 401 Sorry wrong password (3) 132*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0 133*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1 134*6236dae4SAndroid Build Coastguard WorkerContent-Length: 29 135*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Digest realm="testrealm", nonce="5" 136*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Basic realm="testrealm" 137*6236dae4SAndroid Build Coastguard Worker 138*6236dae4SAndroid Build Coastguard WorkerThis is a bad password page! 139*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 200 Things are fine in server land (2) 140*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0 141*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1 142*6236dae4SAndroid Build Coastguard WorkerContent-Length: 32 143*6236dae4SAndroid Build Coastguard Worker 144*6236dae4SAndroid Build Coastguard WorkerFinally, this is the real page! 145*6236dae4SAndroid Build Coastguard Worker</datacheck> 146*6236dae4SAndroid Build Coastguard Worker 147*6236dae4SAndroid Build Coastguard Worker</reply> 148*6236dae4SAndroid Build Coastguard Worker 149*6236dae4SAndroid Build Coastguard Worker# Client-side 150*6236dae4SAndroid Build Coastguard Worker<client> 151*6236dae4SAndroid Build Coastguard Worker<server> 152*6236dae4SAndroid Build Coastguard Workerhttp 153*6236dae4SAndroid Build Coastguard Worker</server> 154*6236dae4SAndroid Build Coastguard Worker<features> 155*6236dae4SAndroid Build Coastguard Worker!SSPI 156*6236dae4SAndroid Build Coastguard Workercrypto 157*6236dae4SAndroid Build Coastguard Worker</features> 158*6236dae4SAndroid Build Coastguard Worker<tool> 159*6236dae4SAndroid Build Coastguard Workerlibauthretry 160*6236dae4SAndroid Build Coastguard Worker</tool> 161*6236dae4SAndroid Build Coastguard Worker 162*6236dae4SAndroid Build Coastguard Worker<name> 163*6236dae4SAndroid Build Coastguard WorkerHTTP authorization retry (Digest switching to Basic) 164*6236dae4SAndroid Build Coastguard Worker</name> 165*6236dae4SAndroid Build Coastguard Worker<command> 166*6236dae4SAndroid Build Coastguard Workerhttp://%HOSTIP:%HTTPPORT/%TESTNUMBER digest basic 167*6236dae4SAndroid Build Coastguard Worker</command> 168*6236dae4SAndroid Build Coastguard Worker</client> 169*6236dae4SAndroid Build Coastguard Worker 170*6236dae4SAndroid Build Coastguard Worker# Verify data after the test has been "shot" 171*6236dae4SAndroid Build Coastguard Worker<verify> 172*6236dae4SAndroid Build Coastguard Worker<protocol> 173*6236dae4SAndroid Build Coastguard WorkerGET /%TESTNUMBER0100 HTTP/1.1 174*6236dae4SAndroid Build Coastguard WorkerHost: %HOSTIP:%HTTPPORT 175*6236dae4SAndroid Build Coastguard WorkerAccept: */* 176*6236dae4SAndroid Build Coastguard Worker 177*6236dae4SAndroid Build Coastguard WorkerGET /%TESTNUMBER0100 HTTP/1.1 178*6236dae4SAndroid Build Coastguard WorkerHost: %HOSTIP:%HTTPPORT 179*6236dae4SAndroid Build Coastguard WorkerAuthorization: Digest username="testuser", realm="testrealm", nonce="1", uri="/%TESTNUMBER0100", response="5f992a2e761ab926256419f7c685f85b" 180*6236dae4SAndroid Build Coastguard WorkerAccept: */* 181*6236dae4SAndroid Build Coastguard Worker 182*6236dae4SAndroid Build Coastguard WorkerGET /%TESTNUMBER0200 HTTP/1.1 183*6236dae4SAndroid Build Coastguard WorkerHost: %HOSTIP:%HTTPPORT 184*6236dae4SAndroid Build Coastguard WorkerAuthorization: Basic dGVzdHVzZXI6dGVzdHBhc3M= 185*6236dae4SAndroid Build Coastguard WorkerAccept: */* 186*6236dae4SAndroid Build Coastguard Worker 187*6236dae4SAndroid Build Coastguard WorkerGET /%TESTNUMBER0300 HTTP/1.1 188*6236dae4SAndroid Build Coastguard WorkerHost: %HOSTIP:%HTTPPORT 189*6236dae4SAndroid Build Coastguard WorkerAccept: */* 190*6236dae4SAndroid Build Coastguard Worker 191*6236dae4SAndroid Build Coastguard WorkerGET /%TESTNUMBER0300 HTTP/1.1 192*6236dae4SAndroid Build Coastguard WorkerHost: %HOSTIP:%HTTPPORT 193*6236dae4SAndroid Build Coastguard WorkerAuthorization: Digest username="testuser", realm="testrealm", nonce="3", uri="/%TESTNUMBER0300", response="132242e602882251929be93228c830ae" 194*6236dae4SAndroid Build Coastguard WorkerAccept: */* 195*6236dae4SAndroid Build Coastguard Worker 196*6236dae4SAndroid Build Coastguard WorkerGET /%TESTNUMBER0400 HTTP/1.1 197*6236dae4SAndroid Build Coastguard WorkerHost: %HOSTIP:%HTTPPORT 198*6236dae4SAndroid Build Coastguard WorkerAuthorization: Basic dGVzdHVzZXI6d3JvbmdwYXNz 199*6236dae4SAndroid Build Coastguard WorkerAccept: */* 200*6236dae4SAndroid Build Coastguard Worker 201*6236dae4SAndroid Build Coastguard WorkerGET /%TESTNUMBER0500 HTTP/1.1 202*6236dae4SAndroid Build Coastguard WorkerHost: %HOSTIP:%HTTPPORT 203*6236dae4SAndroid Build Coastguard WorkerAuthorization: Basic dGVzdHVzZXI6dGVzdHBhc3M= 204*6236dae4SAndroid Build Coastguard WorkerAccept: */* 205*6236dae4SAndroid Build Coastguard Worker 206*6236dae4SAndroid Build Coastguard Worker</protocol> 207*6236dae4SAndroid Build Coastguard Worker</verify> 208*6236dae4SAndroid Build Coastguard Worker</testcase> 209