aboutsummaryrefslogtreecommitdiff
path: root/tests/sasl.cpp
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2012-07-20 12:59:55 +0200
committerJeremy Lainé <jeremy.laine@m4x.org>2012-07-20 12:59:55 +0200
commit8c36594974268f4bb214fd790142b67fb47dd23c (patch)
treeaf00040e76f9511da981ea4e707faca9e7b65be0 /tests/sasl.cpp
parent04739033abe0dd6cb97e10f4391570e2bd0b2eb4 (diff)
downloadqxmpp-8c36594974268f4bb214fd790142b67fb47dd23c.tar.gz
move towards server workflow
Diffstat (limited to 'tests/sasl.cpp')
-rw-r--r--tests/sasl.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/tests/sasl.cpp b/tests/sasl.cpp
index 3f861838..e2045266 100644
--- a/tests/sasl.cpp
+++ b/tests/sasl.cpp
@@ -168,16 +168,19 @@ void tst_QXmppSaslServer::testDigestMd5()
QVERIFY(server != 0);
QCOMPARE(server->mechanism(), QLatin1String("DIGEST-MD5"));
- // FIXME: support actual server workflow..
- server->setPassword("qxmpp123");
-
// initial step returns challenge
QByteArray response;
QCOMPARE(server->respond(QByteArray(), response), QXmppSaslServer::Challenge);
QCOMPARE(response, QByteArray("algorithm=md5-sess,charset=utf-8,nonce=\"OI08/m+QRm6Ma+fKOjuqVXtz40sR5u9/u5GN6sSW0rs=\",qop=auth"));
- // another challenge
- QCOMPARE(server->respond(QByteArray("charset=utf-8,cnonce=\"AMzVG8Oibf+sVUCPPlWLR8lZQvbbJtJB9vJd+u3c6dw=\",digest-uri=\"xmpp/jabber.ru\",nc=00000001,nonce=\"OI08/m+QRm6Ma+fKOjuqVXtz40sR5u9/u5GN6sSW0rs=\",qop=auth,response=70e9063257ee2bf6bfd108975b917410,username=qxmpp1"), response), QXmppSaslServer::Challenge);
+ // password needed
+ const QByteArray request = QByteArray("charset=utf-8,cnonce=\"AMzVG8Oibf+sVUCPPlWLR8lZQvbbJtJB9vJd+u3c6dw=\",digest-uri=\"xmpp/jabber.ru\",nc=00000001,nonce=\"OI08/m+QRm6Ma+fKOjuqVXtz40sR5u9/u5GN6sSW0rs=\",qop=auth,response=70e9063257ee2bf6bfd108975b917410,username=qxmpp1");
+ QCOMPARE(server->respond(request, response), QXmppSaslServer::InputNeeded);
+ QCOMPARE(server->username(), QLatin1String("qxmpp1"));
+ server->setPassword("qxmpp123");
+
+ // second challenge
+ QCOMPARE(server->respond(request, response), QXmppSaslServer::Challenge);
QCOMPARE(response, QByteArray("rspauth=2821a3add271b9ae02b813bed57ec878"));
// success