aboutsummaryrefslogtreecommitdiff
path: root/tests/qxmpprtppacket/tst_qxmpprtppacket.cpp
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2012-09-27 15:41:13 +0200
committerJeremy Lainé <jeremy.laine@m4x.org>2012-09-27 15:41:13 +0200
commitc09d5ee9926474526d91b7d7d3686c71bab8f26a (patch)
tree50b6ae62c11e79091e4787247ba22d93206bf002 /tests/qxmpprtppacket/tst_qxmpprtppacket.cpp
parent42b6f0eca69e5ca1b23750a6baba3fb9b66e7b26 (diff)
downloadqxmpp-c09d5ee9926474526d91b7d7d3686c71bab8f26a.tar.gz
split QXmppRtpPacket tests
Diffstat (limited to 'tests/qxmpprtppacket/tst_qxmpprtppacket.cpp')
-rw-r--r--tests/qxmpprtppacket/tst_qxmpprtppacket.cpp85
1 files changed, 85 insertions, 0 deletions
diff --git a/tests/qxmpprtppacket/tst_qxmpprtppacket.cpp b/tests/qxmpprtppacket/tst_qxmpprtppacket.cpp
new file mode 100644
index 00000000..94f7d417
--- /dev/null
+++ b/tests/qxmpprtppacket/tst_qxmpprtppacket.cpp
@@ -0,0 +1,85 @@
+/*
+ * 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 <QObject>
+#include <QtTest>
+#include "QXmppRtpChannel.h"
+
+class tst_QXmppRtpPacket : public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void testBad();
+ void testSimple();
+ void testWithCsrc();
+};
+
+void tst_QXmppRtpPacket::testBad()
+{
+ QXmppRtpPacket packet;
+
+ // too short
+ QCOMPARE(packet.decode(QByteArray()), false);
+ QCOMPARE(packet.decode(QByteArray("\x80\x00\x3e", 3)), false);
+ QCOMPARE(packet.decode(QByteArray("\x84\x00\x3e\xd2\x00\x00\x00\x90\x5f\xbd\x16\x9e", 12)), false);
+
+ // wrong RTP version
+ QCOMPARE(packet.decode(QByteArray("\x40\x00\x3e\xd2\x00\x00\x00\x90\x5f\xbd\x16\x9e", 12)), false);
+}
+
+void tst_QXmppRtpPacket::testSimple()
+{
+ QByteArray data("\x80\x00\x3e\xd2\x00\x00\x00\x90\x5f\xbd\x16\x9e\x12\x34\x56", 15);
+ QXmppRtpPacket packet;
+ QCOMPARE(packet.decode(data), true);
+ QCOMPARE(packet.version, quint8(2));
+ QCOMPARE(packet.marker, false);
+ QCOMPARE(packet.type, quint8(0));
+ QCOMPARE(packet.sequence, quint16(16082));
+ QCOMPARE(packet.stamp, quint32(144));
+ QCOMPARE(packet.ssrc, quint32(1606227614));
+ QCOMPARE(packet.csrc, QList<quint32>());
+ QCOMPARE(packet.payload, QByteArray("\x12\x34\x56", 3));
+ QCOMPARE(packet.encode(), data);
+}
+
+void tst_QXmppRtpPacket::testWithCsrc()
+{
+ QByteArray data("\x84\x00\x3e\xd2\x00\x00\x00\x90\x5f\xbd\x16\x9e\xab\xcd\xef\x01\xde\xad\xbe\xef\x12\x34\x56", 23);
+ QXmppRtpPacket packet;
+ QCOMPARE(packet.decode(data), true);
+ QCOMPARE(packet.version, quint8(2));
+ QCOMPARE(packet.marker, false);
+ QCOMPARE(packet.type, quint8(0));
+ QCOMPARE(packet.sequence, quint16(16082));
+ QCOMPARE(packet.stamp, quint32(144));
+ QCOMPARE(packet.ssrc, quint32(1606227614));
+ qDebug() << packet.csrc;
+ QCOMPARE(packet.csrc, QList<quint32>() << quint32(0xabcdef01) << quint32(0xdeadbeef));
+ QCOMPARE(packet.payload, QByteArray("\x12\x34\x56", 3));
+ QCOMPARE(packet.encode(), data);
+}
+
+QTEST_MAIN(tst_QXmppRtpPacket)
+#include "tst_qxmpprtppacket.moc"