aboutsummaryrefslogtreecommitdiff
path: root/tests/qxmpputils
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2012-09-27 20:50:17 +0200
committerJeremy Lainé <jeremy.laine@m4x.org>2012-09-27 20:50:17 +0200
commit6a01a0f7bfd03deb3d0e6ed3e107ddbc4e07e5c8 (patch)
tree340a4ee17e107d484a3373db56443dc6060e23ae /tests/qxmpputils
parent4dca74738a729a3f10f110c4003ba02c67b9fd47 (diff)
downloadqxmpp-6a01a0f7bfd03deb3d0e6ed3e107ddbc4e07e5c8.tar.gz
move sasl test code
Diffstat (limited to 'tests/qxmpputils')
-rw-r--r--tests/qxmpputils/tst_qxmpputils.cpp136
1 files changed, 136 insertions, 0 deletions
diff --git a/tests/qxmpputils/tst_qxmpputils.cpp b/tests/qxmpputils/tst_qxmpputils.cpp
new file mode 100644
index 00000000..bf1c80dc
--- /dev/null
+++ b/tests/qxmpputils/tst_qxmpputils.cpp
@@ -0,0 +1,136 @@
+/*
+ * Copyright (C) 2008-2012 The QXmpp developers
+ *
+ * Authors:
+ * Jeremy Lainé
+ * Manjeet Dahiya
+ *
+ * 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 <QObject>
+#include "QXmppUtils.h"
+#include "util.h"
+
+class tst_QXmppUtils : public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void testCrc32();
+ void testHmac();
+ void testJid();
+ void testMime();
+ void testLibVersion();
+ void testTimezoneOffset();
+};
+
+void tst_QXmppUtils::testCrc32()
+{
+ quint32 crc = QXmppUtils::generateCrc32(QByteArray());
+ QCOMPARE(crc, 0u);
+
+ crc = QXmppUtils::generateCrc32(QByteArray("Hi There"));
+ QCOMPARE(crc, 0xDB143BBEu);
+}
+
+void tst_QXmppUtils::testHmac()
+{
+ QByteArray hmac = QXmppUtils::generateHmacMd5(QByteArray(16, 0x0b), QByteArray("Hi There"));
+ QCOMPARE(hmac, QByteArray::fromHex("9294727a3638bb1c13f48ef8158bfc9d"));
+
+ hmac = QXmppUtils::generateHmacMd5(QByteArray("Jefe"), QByteArray("what do ya want for nothing?"));
+ QCOMPARE(hmac, QByteArray::fromHex("750c783e6ab0b503eaa86e310a5db738"));
+
+ hmac = QXmppUtils::generateHmacMd5(QByteArray(16, 0xaa), QByteArray(50, 0xdd));
+ QCOMPARE(hmac, QByteArray::fromHex("56be34521d144c88dbb8c733f0e8b3f6"));
+}
+
+void tst_QXmppUtils::testJid()
+{
+ QCOMPARE(QXmppUtils::jidToBareJid("foo@example.com/resource"), QLatin1String("foo@example.com"));
+ QCOMPARE(QXmppUtils::jidToBareJid("foo@example.com"), QLatin1String("foo@example.com"));
+ QCOMPARE(QXmppUtils::jidToBareJid("example.com"), QLatin1String("example.com"));
+ QCOMPARE(QXmppUtils::jidToBareJid(QString()), QString());
+
+ QCOMPARE(QXmppUtils::jidToDomain("foo@example.com/resource"), QLatin1String("example.com"));
+ QCOMPARE(QXmppUtils::jidToDomain("foo@example.com"), QLatin1String("example.com"));
+ QCOMPARE(QXmppUtils::jidToDomain("example.com"), QLatin1String("example.com"));
+ QCOMPARE(QXmppUtils::jidToDomain(QString()), QString());
+
+ QCOMPARE(QXmppUtils::jidToResource("foo@example.com/resource"), QLatin1String("resource"));
+ QCOMPARE(QXmppUtils::jidToResource("foo@example.com"), QString());
+ QCOMPARE(QXmppUtils::jidToResource("example.com"), QString());
+ QCOMPARE(QXmppUtils::jidToResource(QString()), QString());
+
+ QCOMPARE(QXmppUtils::jidToUser("foo@example.com/resource"), QLatin1String("foo"));
+ QCOMPARE(QXmppUtils::jidToUser("foo@example.com"), QLatin1String("foo"));
+ QCOMPARE(QXmppUtils::jidToUser("example.com"), QString());
+ QCOMPARE(QXmppUtils::jidToUser(QString()), QString());
+}
+
+// FIXME: how should we test MIME detection without expose getImageType?
+#if 0
+QString getImageType(const QByteArray &contents);
+
+static void testMimeType(const QString &fileName, const QString fileType)
+{
+ // load file from resources
+ QFile file(":/" + fileName);
+ QCOMPARE(file.open(QIODevice::ReadOnly), true);
+ QCOMPARE(getImageType(file.readAll()), fileType);
+ file.close();
+}
+
+void tst_QXmppUtils::testMime()
+{
+ testMimeType("test.bmp", "image/bmp");
+ testMimeType("test.gif", "image/gif");
+ testMimeType("test.jpg", "image/jpeg");
+ testMimeType("test.mng", "video/x-mng");
+ testMimeType("test.png", "image/png");
+ testMimeType("test.svg", "image/svg+xml");
+ testMimeType("test.xpm", "image/x-xpm");
+}
+#else
+void tst_QXmppUtils::testMime()
+{
+}
+#endif
+
+void tst_QXmppUtils::testLibVersion()
+{
+ QCOMPARE(QXmppVersion(), QString("0.7.3"));
+}
+
+void tst_QXmppUtils::testTimezoneOffset()
+{
+ // parsing
+ QCOMPARE(QXmppUtils::timezoneOffsetFromString("Z"), 0);
+ QCOMPARE(QXmppUtils::timezoneOffsetFromString("+00:00"), 0);
+ QCOMPARE(QXmppUtils::timezoneOffsetFromString("-00:00"), 0);
+ QCOMPARE(QXmppUtils::timezoneOffsetFromString("+01:30"), 5400);
+ QCOMPARE(QXmppUtils::timezoneOffsetFromString("-01:30"), -5400);
+
+ // serialization
+ QCOMPARE(QXmppUtils::timezoneOffsetToString(0), QLatin1String("Z"));
+ QCOMPARE(QXmppUtils::timezoneOffsetToString(5400), QLatin1String("+01:30"));
+ QCOMPARE(QXmppUtils::timezoneOffsetToString(-5400), QLatin1String("-01:30"));
+}
+
+QTEST_MAIN(tst_QXmppUtils)
+#include "tst_qxmpputils.moc"