diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-07-20 18:02:32 +0200 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-07-20 18:02:32 +0200 |
| commit | 1b653eb9e6212678297281f5bca43bcd0b1a00fb (patch) | |
| tree | 88033357f290e498f1028d3f194141d99812efcc /tests/sasl.cpp | |
| parent | 51eef84fd4104f19228ebd85fce89658b64464a2 (diff) | |
| download | qxmpp-1b653eb9e6212678297281f5bca43bcd0b1a00fb.tar.gz | |
add support for two-step PLAIN SASL
Diffstat (limited to 'tests/sasl.cpp')
| -rw-r--r-- | tests/sasl.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
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; +} |
