<testcase> <info> <keywords> HTTP HTTP GET HTTP CONNECT HTTP proxy proxytunnel HTTP proxy Digest auth </keywords> </info> # Server-side <reply> <servercmd> connection-monitor auth_required </servercmd> # this is returned first since we get no proxy-auth <connect> HTTP/1.1 407 Authorization Required to proxy me my dear Proxy-Authenticate: Digest realm="weirdorealm", nonce="12345" Content-Length: 33 And you should ignore this data. </connect> # this is returned when we get a GET! <data2> HTTP/1.1 200 OK Date: Thu, 09 Nov 2010 14:49:00 GMT Content-Length: 7 Connection: close Content-Type: text/html Funny-head: yesyes daniel </data2> # then this is returned when we get proxy-auth <connect1000> HTTP/1.1 200 OK swsbounce Server: no </connect1000> <datacheck> HTTP/1.1 407 Authorization Required to proxy me my dear Proxy-Authenticate: Digest realm="weirdorealm", nonce="12345" Content-Length: 33 HTTP/1.1 200 OK swsbounce Server: no HTTP/1.1 200 OK Date: Thu, 09 Nov 2010 14:49:00 GMT Content-Length: 7 Connection: close Content-Type: text/html Funny-head: yesyes daniel </datacheck> </reply> # Client-side <client> <server> http </server> <features> !SSPI crypto </features> <name> HTTP proxy CONNECT auth Digest </name> <command> http://test.remote.haxx.se.206:8990/path/2060002 --proxy http://%HOSTIP:%HTTPPORT --proxy-user silly:person --proxy-digest --proxytunnel </command> </client> # Verify data after the test has been "shot" <verify> <strip> ^User-Agent: curl/.* </strip> <protocol> CONNECT test.remote.haxx.se.206:8990 HTTP/1.1 Host: test.remote.haxx.se.206:8990 CONNECT test.remote.haxx.se.206:8990 HTTP/1.1 Host: test.remote.haxx.se.206:8990 Proxy-Authorization: Digest username="silly", realm="weirdorealm", nonce="12345", uri="test.remote.haxx.se.206:8990", response="003e36decb4dbf6366b3ecb9b87c24ec" GET /path/2060002 HTTP/1.1 User-Agent: curl/7.12.3-CVS (i686-pc-linux-gnu) libcurl/7.12.3-CVS OpenSSL/0.9.6b zlib/1.1.4 Host: test.remote.haxx.se.206:8990 Accept: */* [DISCONNECT] </protocol> </verify> </testcase>