From fd9999bd871da6181c561eeacd2aed984dae4699 Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Wed, 18 Jul 2012 13:38:34 +0200 Subject: add QXmppRegisterIq as defined by XEP-0077: In-Band Registration --- tests/register.cpp | 147 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 tests/register.cpp (limited to 'tests/register.cpp') diff --git a/tests/register.cpp b/tests/register.cpp new file mode 100644 index 00000000..b8b9b547 --- /dev/null +++ b/tests/register.cpp @@ -0,0 +1,147 @@ +/* + * Copyright (C) 2008-2012 The QXmpp developers + * + * Author: + * Jeremy Lainé + * + * Source: + * http://code.google.com/p/qxmpp + * + * This file is a part of QXmpp library. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + */ + +#include "QXmppRegisterIq.h" + +#include "tests.h" +#include "register.h" + +void tst_QXmppRegisterIq::testGet() +{ + const QByteArray xml( + "" + "" + ""); + + QXmppRegisterIq iq; + parsePacket(iq, xml); + QCOMPARE(iq.id(), QLatin1String("reg1")); + QCOMPARE(iq.to(), QLatin1String("shakespeare.lit")); + QCOMPARE(iq.from(), QString()); + QCOMPARE(iq.type(), QXmppIq::Get); + QCOMPARE(iq.instructions(), QString()); + QVERIFY(iq.username().isNull()); + QVERIFY(iq.password().isNull()); + QVERIFY(iq.email().isNull()); + QVERIFY(iq.form().isNull()); + serializePacket(iq, xml); +} + +void tst_QXmppRegisterIq::testResult() +{ + const QByteArray xml( + "" + "" + "Choose a username and password for use with this service. Please also provide your email address." + "" + "" + "" + "" + ""); + + QXmppRegisterIq iq; + parsePacket(iq, xml); + QCOMPARE(iq.id(), QLatin1String("reg1")); + QCOMPARE(iq.to(), QString()); + QCOMPARE(iq.from(), QString()); + QCOMPARE(iq.type(), QXmppIq::Result); + QCOMPARE(iq.instructions(), QLatin1String("Choose a username and password for use with this service. Please also provide your email address.")); + QVERIFY(!iq.username().isNull()); + QVERIFY(iq.username().isEmpty()); + QVERIFY(!iq.password().isNull()); + QVERIFY(iq.password().isEmpty()); + QVERIFY(!iq.email().isNull()); + QVERIFY(iq.email().isEmpty()); + QVERIFY(iq.form().isNull()); + serializePacket(iq, xml); +} + +void tst_QXmppRegisterIq::testResultWithForm() +{ + const QByteArray xml( + "" + "" + "Use the enclosed form to register. If your Jabber client does not support Data Forms, visit http://www.shakespeare.lit/contests.php" + "" + "Contest Registration" + "" + "Please provide the following information" + "to sign up for our special contests!" + "" + "" + "jabber:iq:register" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + ""); + + QXmppRegisterIq iq; + parsePacket(iq, xml); + QCOMPARE(iq.id(), QLatin1String("reg3")); + QCOMPARE(iq.to(), QLatin1String("juliet@capulet.com/balcony")); + QCOMPARE(iq.from(), QLatin1String("contests.shakespeare.lit")); + QCOMPARE(iq.type(), QXmppIq::Result); + QCOMPARE(iq.instructions(), QLatin1String("Use the enclosed form to register. If your Jabber client does not support Data Forms, visit http://www.shakespeare.lit/contests.php")); + QVERIFY(iq.username().isNull()); + QVERIFY(iq.password().isNull()); + QVERIFY(iq.email().isNull()); + QVERIFY(!iq.form().isNull()); + serializePacket(iq, xml); +} + +void tst_QXmppRegisterIq::testSet() +{ + const QByteArray xml( + "" + "" + "bill" + "Calliope" + "bard@shakespeare.lit" + "" + ""); + + QXmppRegisterIq iq; + parsePacket(iq, xml); + QCOMPARE(iq.id(), QLatin1String("reg2")); + QCOMPARE(iq.to(), QString()); + QCOMPARE(iq.from(), QString()); + QCOMPARE(iq.type(), QXmppIq::Set); + QCOMPARE(iq.username(), QLatin1String("bill")); + QCOMPARE(iq.password(), QLatin1String("Calliope")); + QCOMPARE(iq.email(), QLatin1String("bard@shakespeare.lit")); + QVERIFY(iq.form().isNull()); + serializePacket(iq, xml); +} -- cgit v1.2.3