test800 test801 test802 test803 test804 test805 test806 test807 test808 \
test809 test810 test811 test812 test813 test814 test815 test816 test817 \
test818 test819 test820 test821 test822 test823 test824 test825 test826 \
-test827 test828 test829 test830 test831 test832 \
+test827 test828 test829 test830 test831 test832 test833 test834 test835 \
\
test850 test851 test852 test853 test854 test855 test856 test857 test858 \
test859 test860 test861 test862 test863 test864 test865 test866 test867 \
--- /dev/null
+<testcase>
+<info>
+<keywords>
+IMAP
+IMAP AUTH CRAM-MD5 SASL DOWNGRADE
+RFC2195
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<servercmd>
+AUTH CRAM-MD5 PLAIN
+REPLY "AUTHENTICATE CRAM-MD5" + Rubbish
+REPLY * A002 NO AUTH exchange cancelled by client
+REPLY "AUTHENTICATE PLAIN" +
+REPLY dXNlcgB1c2VyAHNlY3JldA== A003 OK AUTHENTICATE completed
+</servercmd>
+<data>
+From: me@somewhere\r
+To: fake@nowhere\r
+\r
+body\r
+\r
+--\r
+ yours sincerely\r
+</data>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+imap
+</server>
+<features>
+crypto
+</features>
+ <name>
+IMAP CRAM-MD5 authentication with SASL downgrade
+ </name>
+ <command>
+'imap://%HOSTIP:%IMAPPORT/833/;UID=1' -u user:secret
+</command>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<protocol>
+A001 CAPABILITY\r
+A002 AUTHENTICATE CRAM-MD5\r
+*\r
+A003 AUTHENTICATE PLAIN\r
+dXNlcgB1c2VyAHNlY3JldA==\r
+A004 SELECT 833\r
+A005 FETCH 1 BODY[]\r
+A006 LOGOUT\r
+</protocol>
+</verify>
+</testcase>
--- /dev/null
+<testcase>
+<info>
+<keywords>
+IMAP
+IMAP AUTH NTLM SASL DOWNGRADE
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<servercmd>
+AUTH NTLM PLAIN
+REPLY "AUTHENTICATE NTLM" +
+REPLY TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= + Rubbish
+REPLY * A002 NO AUTH exchange cancelled by client
+REPLY "AUTHENTICATE PLAIN" +
+REPLY dXNlcgB1c2VyAHNlY3JldA== A003 OK AUTHENTICATE completed
+</servercmd>
+<data>
+From: me@somewhere\r
+To: fake@nowhere\r
+\r
+body\r
+\r
+--\r
+ yours sincerely\r
+</data>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+imap
+</server>
+<features>
+NTLM
+</features>
+ <name>
+IMAP NTLM authentication with SASL downgrade
+ </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/834/;UID=1' -u user:secret
+</command>
+<precheck>
+chkhostname curlhost
+</precheck>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<protocol>
+A001 CAPABILITY\r
+A002 AUTHENTICATE NTLM\r
+TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA=\r
+*\r
+A003 AUTHENTICATE PLAIN\r
+dXNlcgB1c2VyAHNlY3JldA==\r
+A004 SELECT 834\r
+A005 FETCH 1 BODY[]\r
+A006 LOGOUT\r
+</protocol>
+</verify>
+</testcase>
--- /dev/null
+<testcase>
+<info>
+<keywords>
+IMAP
+IMAP AUTH DIGEST-MD5 SASL DOWNGRADE
+RFC2831
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<servercmd>
+AUTH DIGEST-MD5 PLAIN
+REPLY "AUTHENTICATE DIGEST-MD5" + Rubbish
+REPLY * A002 NO AUTH exchange cancelled by client
+REPLY "AUTHENTICATE PLAIN" +
+REPLY dXNlcgB1c2VyAHNlY3JldA== A003 OK AUTHENTICATE completed
+</servercmd>
+<data>
+From: me@somewhere\r
+To: fake@nowhere\r
+\r
+body\r
+\r
+--\r
+ yours sincerely\r
+</data>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+imap
+</server>
+<features>
+debug
+crypto
+</features>
+ <name>
+IMAP DIGEST-MD5 authentication with SASL downgrade
+ </name>
+ <command>
+'imap://%HOSTIP:%IMAPPORT/835/;UID=1' -u user:secret
+</command>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<protocol>
+A001 CAPABILITY\r
+A002 AUTHENTICATE DIGEST-MD5\r
+*\r
+A003 AUTHENTICATE PLAIN\r
+dXNlcgB1c2VyAHNlY3JldA==\r
+A004 SELECT 835\r
+A005 FETCH 1 BODY[]\r
+A006 LOGOUT\r
+</protocol>
+</verify>
+</testcase>