<?xml version="1.0" encoding="US-ASCII"?>
<testcase>
<info>
<keywords>
HTTP
HTTP GET
HTTP CONNECT
HTTP proxy
HTTP proxy NTLM auth
NTLM
</keywords>
</info>

# Server-side
<reply>

# this is returned first since we get no proxy-auth
<connect1001 crlf="headers">
HTTP/1.1 407 Authorization Required to proxy me my dear
Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAACGggEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA==
Content-Length: 33

And you should ignore this data.
</connect1001>

# This is supposed to be returned when the server gets the second
# Authorization: NTLM line passed-in from the client
<connect1002 crlf="headers">
HTTP/1.1 200 Things are fine in proxy land
Server: Microsoft-IIS/5.0
Content-Type: text/html; charset=iso-8859-1

</connect1002>

# this is returned when we get a GET!
<data2>
HTTP/1.1 200 OK
Date: Tue, 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
<data1000>
HTTP/1.1 200 OK swsbounce%CR
Server: no
%CR
Nice proxy auth sir!
</data1000>

<datacheck>
HTTP/1.1 407 Authorization Required to proxy me my dear%CR
Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAACGggEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA==%CR
Content-Length: 33%CR
%CR
HTTP/1.1 200 Things are fine in proxy land%CR
Server: Microsoft-IIS/5.0%CR
Content-Type: text/html; charset=iso-8859-1%CR
%CR
HTTP/1.1 200 OK
Date: Tue, 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>
NTLM
SSL
!SSPI
proxy
</features>
<name>
HTTP proxy CONNECT auth NTLM
</name>
<command>
http://test.remote.example.com.%TESTNUMBER:%HTTPPORT/path/%TESTNUMBER0002 --proxy http://%HOSTIP:%HTTPPORT --proxy-user testuser:testpass --proxy-ntlm --proxytunnel
</command>
</client>

# Verify data after the test has been "shot"
<verify>
<protocol crlf="headers">
CONNECT test.remote.example.com.%TESTNUMBER:%HTTPPORT HTTP/1.1
Host: test.remote.example.com.%TESTNUMBER:%HTTPPORT
Proxy-Authorization: NTLM %b64[NTLMSSP%00%01%00%00%00%06%82%08%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00]b64%
User-Agent: curl/%VERSION
Proxy-Connection: Keep-Alive

CONNECT test.remote.example.com.%TESTNUMBER:%HTTPPORT HTTP/1.1
Host: test.remote.example.com.%TESTNUMBER:%HTTPPORT
Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAALAAsAeAAAAAAAAAAAAAAAhoIBAFpkQwKRCZFMhjj0tw47wEjKHRHlvzfxQamFcheMuv8v+xeqphEO5V41xRd7R9deOXRlc3R1c2VyV09SS1NUQVRJT04=
User-Agent: curl/%VERSION
Proxy-Connection: Keep-Alive

GET /path/%TESTNUMBER0002 HTTP/1.1
Host: test.remote.example.com.%TESTNUMBER:%HTTPPORT
User-Agent: curl/%VERSION
Accept: */*

</protocol>
</verify>
</testcase>
