From 1b653eb9e6212678297281f5bca43bcd0b1a00fb Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Fri, 20 Jul 2012 18:02:32 +0200 Subject: add support for two-step PLAIN SASL --- tests/sasl.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'tests/sasl.cpp') diff --git a/tests/sasl.cpp b/tests/sasl.cpp index 8ea635b3..a5399294 100644 --- a/tests/sasl.cpp +++ b/tests/sasl.cpp @@ -231,3 +231,26 @@ void tst_QXmppSaslServer::testPlain() delete server; } + +void tst_QXmppSaslServer::testPlainChallenge() +{ + QXmppSaslServer *server = QXmppSaslServer::create("PLAIN"); + QVERIFY(server != 0); + QCOMPARE(server->mechanism(), QLatin1String("PLAIN")); + + // initial step returns challenge + QByteArray response; + QCOMPARE(server->respond(QByteArray(), response), QXmppSaslServer::Challenge); + QCOMPARE(response, QByteArray()); + + // initial step returns success + QCOMPARE(server->respond(QByteArray("\0foo\0bar", 8), response), QXmppSaslServer::InputNeeded); + QCOMPARE(response, QByteArray()); + QCOMPARE(server->username(), QLatin1String("foo")); + QCOMPARE(server->password(), QLatin1String("bar")); + + // any further step is an error + QCOMPARE(server->respond(QByteArray(), response), QXmppSaslServer::Failed); + + delete server; +} -- cgit v1.2.3