<testcase>
<info>
<keywords>
IMAP
SASL
SASL AUTH NTLM
SASL CANCELLATION
</keywords>
</info>

#
# Server-side
<reply>
<servercmd>
AUTH NTLM
CAPA LOGINDISABLED
REPLY AUTHENTICATE +
REPLY TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= + Rubbish
REPLY * A002 NO AUTH exchange cancelled by client
</servercmd>
</reply>

#
# Client-side
<client>
<server>
imap
</server>
<features>
NTLM
SSL
!SSPI
</features>
<name>
IMAP NTLM graceful cancellation
</name>
 <setenv>
# we force our own host name, in order to make the test machine independent
CURL_GETHOSTNAME=curlhost
# we try to use the LD_PRELOAD hack, if not a debug build
LD_PRELOAD=%PWD/libtest/.libs/libhostname.so
 </setenv>
<command>
'imap://%HOSTIP:%IMAPPORT/%TESTNUMBER/;MAILINDEX=1' -u testuser:testpass
</command>
<precheck>
chkhostname curlhost
</precheck>
</client>

#
# Verify data after the test has been "shot"
<verify>
# 67 - CURLE_LOGIN_DENIED
<errorcode>
67
</errorcode>
#
# The multi interface considers a broken "CONNECT" as a prematurely broken
# transfer and such a connection will not get a "LOGOUT"
<protocol>
A001 CAPABILITY
A002 AUTHENTICATE NTLM
TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA=
*
</protocol>
</verify>
</testcase>
