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 Basic auth, wrong password --> 17*6236dae4SAndroid Build Coastguard Worker<data100> 18*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 401 Sorry wrong password 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: 29 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 a bad password page! 26*6236dae4SAndroid Build Coastguard Worker</data100> 27*6236dae4SAndroid Build Coastguard Worker 28*6236dae4SAndroid Build Coastguard Worker<!-- Second request has Digest auth, right password --> 29*6236dae4SAndroid Build Coastguard Worker<data1200> 30*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 200 Things are fine in server land 31*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0 32*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1 33*6236dae4SAndroid Build Coastguard WorkerContent-Length: 32 34*6236dae4SAndroid Build Coastguard Worker 35*6236dae4SAndroid Build Coastguard WorkerFinally, this is the real page! 36*6236dae4SAndroid Build Coastguard Worker</data1200> 37*6236dae4SAndroid Build Coastguard Worker 38*6236dae4SAndroid Build Coastguard Worker<!-- Third request has Basic auth, wrong password --> 39*6236dae4SAndroid Build Coastguard Worker<data300> 40*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 401 Sorry wrong password (2) 41*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0 42*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1 43*6236dae4SAndroid Build Coastguard WorkerContent-Length: 29 44*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Digest realm="testrealm", nonce="2" 45*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Basic realm="testrealm" 46*6236dae4SAndroid Build Coastguard Worker 47*6236dae4SAndroid Build Coastguard WorkerThis is a bad password page! 48*6236dae4SAndroid Build Coastguard Worker</data300> 49*6236dae4SAndroid Build Coastguard Worker 50*6236dae4SAndroid Build Coastguard Worker<!-- Fourth request has Digest auth, wrong password --> 51*6236dae4SAndroid Build Coastguard Worker<data1400> 52*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 401 Sorry wrong password (3) 53*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0 54*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1 55*6236dae4SAndroid Build Coastguard WorkerContent-Length: 29 56*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Digest realm="testrealm", nonce="3" 57*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Basic realm="testrealm" 58*6236dae4SAndroid Build Coastguard Worker 59*6236dae4SAndroid Build Coastguard WorkerThis is a bad password page! 60*6236dae4SAndroid Build Coastguard Worker</data1400> 61*6236dae4SAndroid Build Coastguard Worker 62*6236dae4SAndroid Build Coastguard Worker<!-- Fifth request has Digest auth, right password --> 63*6236dae4SAndroid Build Coastguard Worker<data1500> 64*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 200 Things are fine in server land (2) 65*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0 66*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1 67*6236dae4SAndroid Build Coastguard WorkerContent-Length: 32 68*6236dae4SAndroid Build Coastguard Worker 69*6236dae4SAndroid Build Coastguard WorkerFinally, this is the real page! 70*6236dae4SAndroid Build Coastguard Worker</data1500> 71*6236dae4SAndroid Build Coastguard Worker 72*6236dae4SAndroid Build Coastguard Worker<datacheck> 73*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 401 Sorry wrong password 74*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0 75*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1 76*6236dae4SAndroid Build Coastguard WorkerContent-Length: 29 77*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Digest realm="testrealm", nonce="1" 78*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Basic realm="testrealm" 79*6236dae4SAndroid Build Coastguard Worker 80*6236dae4SAndroid Build Coastguard WorkerThis is a bad password page! 81*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 200 Things are fine in server land 82*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0 83*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1 84*6236dae4SAndroid Build Coastguard WorkerContent-Length: 32 85*6236dae4SAndroid Build Coastguard Worker 86*6236dae4SAndroid Build Coastguard WorkerFinally, this is the real page! 87*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 401 Sorry wrong password (2) 88*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0 89*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1 90*6236dae4SAndroid Build Coastguard WorkerContent-Length: 29 91*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Digest realm="testrealm", nonce="2" 92*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Basic realm="testrealm" 93*6236dae4SAndroid Build Coastguard Worker 94*6236dae4SAndroid Build Coastguard WorkerThis is a bad password page! 95*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 401 Sorry wrong password (3) 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: 29 99*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Digest realm="testrealm", nonce="3" 100*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Basic realm="testrealm" 101*6236dae4SAndroid Build Coastguard Worker 102*6236dae4SAndroid Build Coastguard WorkerThis is a bad password page! 103*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 200 Things are fine in server land (2) 104*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/5.0 105*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1 106*6236dae4SAndroid Build Coastguard WorkerContent-Length: 32 107*6236dae4SAndroid Build Coastguard Worker 108*6236dae4SAndroid Build Coastguard WorkerFinally, this is the real page! 109*6236dae4SAndroid Build Coastguard Worker</datacheck> 110*6236dae4SAndroid Build Coastguard Worker 111*6236dae4SAndroid Build Coastguard Worker</reply> 112*6236dae4SAndroid Build Coastguard Worker 113*6236dae4SAndroid Build Coastguard Worker# Client-side 114*6236dae4SAndroid Build Coastguard Worker<client> 115*6236dae4SAndroid Build Coastguard Worker<server> 116*6236dae4SAndroid Build Coastguard Workerhttp 117*6236dae4SAndroid Build Coastguard Worker</server> 118*6236dae4SAndroid Build Coastguard Worker<features> 119*6236dae4SAndroid Build Coastguard Worker!SSPI 120*6236dae4SAndroid Build Coastguard Workercrypto 121*6236dae4SAndroid Build Coastguard Worker</features> 122*6236dae4SAndroid Build Coastguard Worker<tool> 123*6236dae4SAndroid Build Coastguard Workerlibauthretry 124*6236dae4SAndroid Build Coastguard Worker</tool> 125*6236dae4SAndroid Build Coastguard Worker 126*6236dae4SAndroid Build Coastguard Worker<name> 127*6236dae4SAndroid Build Coastguard WorkerHTTP authorization retry (Basic switching to Digest) 128*6236dae4SAndroid Build Coastguard Worker</name> 129*6236dae4SAndroid Build Coastguard Worker<command> 130*6236dae4SAndroid Build Coastguard Workerhttp://%HOSTIP:%HTTPPORT/%TESTNUMBER basic digest 131*6236dae4SAndroid Build Coastguard Worker</command> 132*6236dae4SAndroid Build Coastguard Worker</client> 133*6236dae4SAndroid Build Coastguard Worker 134*6236dae4SAndroid Build Coastguard Worker# Verify data after the test has been "shot" 135*6236dae4SAndroid Build Coastguard Worker<verify> 136*6236dae4SAndroid Build Coastguard Worker<protocol> 137*6236dae4SAndroid Build Coastguard WorkerGET /%TESTNUMBER0100 HTTP/1.1 138*6236dae4SAndroid Build Coastguard WorkerHost: %HOSTIP:%HTTPPORT 139*6236dae4SAndroid Build Coastguard WorkerAuthorization: Basic dGVzdHVzZXI6d3JvbmdwYXNz 140*6236dae4SAndroid Build Coastguard WorkerAccept: */* 141*6236dae4SAndroid Build Coastguard Worker 142*6236dae4SAndroid Build Coastguard WorkerGET /%TESTNUMBER0200 HTTP/1.1 143*6236dae4SAndroid Build Coastguard WorkerHost: %HOSTIP:%HTTPPORT 144*6236dae4SAndroid Build Coastguard WorkerAuthorization: Digest username="testuser", realm="testrealm", nonce="1", uri="/%TESTNUMBER0200", response="ed646c565f79e2dd9fa37cb5a621213c" 145*6236dae4SAndroid Build Coastguard WorkerAccept: */* 146*6236dae4SAndroid Build Coastguard Worker 147*6236dae4SAndroid Build Coastguard WorkerGET /%TESTNUMBER0300 HTTP/1.1 148*6236dae4SAndroid Build Coastguard WorkerHost: %HOSTIP:%HTTPPORT 149*6236dae4SAndroid Build Coastguard WorkerAuthorization: Basic dGVzdHVzZXI6d3JvbmdwYXNz 150*6236dae4SAndroid Build Coastguard WorkerAccept: */* 151*6236dae4SAndroid Build Coastguard Worker 152*6236dae4SAndroid Build Coastguard WorkerGET /%TESTNUMBER0400 HTTP/1.1 153*6236dae4SAndroid Build Coastguard WorkerHost: %HOSTIP:%HTTPPORT 154*6236dae4SAndroid Build Coastguard WorkerAuthorization: Digest username="testuser", realm="testrealm", nonce="2", uri="/%TESTNUMBER0400", response="9741ced8caacc6124770187b36f007c5" 155*6236dae4SAndroid Build Coastguard WorkerAccept: */* 156*6236dae4SAndroid Build Coastguard Worker 157*6236dae4SAndroid Build Coastguard WorkerGET /%TESTNUMBER0500 HTTP/1.1 158*6236dae4SAndroid Build Coastguard WorkerHost: %HOSTIP:%HTTPPORT 159*6236dae4SAndroid Build Coastguard WorkerAuthorization: Digest username="testuser", realm="testrealm", nonce="3", uri="/%TESTNUMBER0500", response="5bc77ec8c2d443b27a1b55f1fd8fbb13" 160*6236dae4SAndroid Build Coastguard WorkerAccept: */* 161*6236dae4SAndroid Build Coastguard Worker 162*6236dae4SAndroid Build Coastguard Worker</protocol> 163*6236dae4SAndroid Build Coastguard Worker</verify> 164*6236dae4SAndroid Build Coastguard Worker</testcase> 165