From 37224e2eb0ba965ea6a3ffbf834209d7b9016a44 Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Thu, 12 Aug 2010 08:34:51 +0000 Subject: fix and test plaintext Non-SASL Auth Iq --- src/QXmppNonSASLAuth.cpp | 2 ++ tests/tests.cpp | 43 +++++++++++++++++++++++++++++++++++++++---- 2 files changed, 41 insertions(+), 4 deletions(-) diff --git a/src/QXmppNonSASLAuth.cpp b/src/QXmppNonSASLAuth.cpp index 7fa1e9e8..dde91363 100644 --- a/src/QXmppNonSASLAuth.cpp +++ b/src/QXmppNonSASLAuth.cpp @@ -57,6 +57,8 @@ void QXmppNonSASLAuthIq::toXmlElementFromChild(QXmlStreamWriter *writer) const writer->writeTextElement("username", m_username); if (!m_digest.isEmpty()) writer->writeTextElement("digest", m_digest.toHex()); + if (!m_password.isEmpty()) + writer->writeTextElement("password", m_password); if (!m_resource.isEmpty()) writer->writeTextElement("resource", m_resource); writer->writeEndElement(); diff --git a/tests/tests.cpp b/tests/tests.cpp index 14c05890..cc46f2c1 100644 --- a/tests/tests.cpp +++ b/tests/tests.cpp @@ -186,14 +186,49 @@ void TestPackets::testMessageLegacyDelay() void TestPackets::testNonSaslAuth() { - const QByteArray xml( + // Client Requests Authentication Fields from Server + const QByteArray xml1( "" "" ""); - QXmppNonSASLAuthIq iq; - parsePacket(iq, xml); - serializePacket(iq, xml); + QXmppNonSASLAuthIq iq1; + parsePacket(iq1, xml1); + serializePacket(iq1, xml1); + + // Client Provides Required Information (Plaintext) + const QByteArray xml3( + "" + "" + "bill" + "Calli0pe" + "globe" + "" + ""); + QXmppNonSASLAuthIq iq3; + parsePacket(iq3, xml3); + QCOMPARE(iq3.username(), QLatin1String("bill")); + QCOMPARE(iq3.digest(), QByteArray()); + QCOMPARE(iq3.password(), QLatin1String("Calli0pe")); + QCOMPARE(iq3.resource(), QLatin1String("globe")); + serializePacket(iq3, xml3); + + // Client Provides Required Information (Plaintext) + const QByteArray xml4( + "" + "" + "bill" + "48fc78be9ec8f86d8ce1c39c320c97c21d62334d" + "globe" + "" + ""); + QXmppNonSASLAuthIq iq4; + parsePacket(iq4, xml4); + QCOMPARE(iq4.username(), QLatin1String("bill")); + QCOMPARE(iq4.digest(), QByteArray("\x48\xfc\x78\xbe\x9e\xc8\xf8\x6d\x8c\xe1\xc3\x9c\x32\x0c\x97\xc2\x1d\x62\x33\x4d")); + QCOMPARE(iq4.password(), QString()); + QCOMPARE(iq4.resource(), QLatin1String("globe")); + serializePacket(iq4, xml4); } void TestPackets::testPresence() -- cgit v1.2.3