aboutsummaryrefslogtreecommitdiff
path: root/tests/rtp.cpp
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2012-07-18 11:53:40 +0200
committerJeremy Lainé <jeremy.laine@m4x.org>2012-07-18 11:53:40 +0200
commit728901eab3d77595878ae1dc3defbcfbde6423a3 (patch)
tree0b1c750d9776dcf206c4bb88987719e124cbe3ea /tests/rtp.cpp
parent4fb81e112fe2d334b0627359ff02015d514abae7 (diff)
downloadqxmpp-728901eab3d77595878ae1dc3defbcfbde6423a3.tar.gz
split RTP tests out
Diffstat (limited to 'tests/rtp.cpp')
-rw-r--r--tests/rtp.cpp76
1 files changed, 76 insertions, 0 deletions
diff --git a/tests/rtp.cpp b/tests/rtp.cpp
new file mode 100644
index 00000000..8e62e075
--- /dev/null
+++ b/tests/rtp.cpp
@@ -0,0 +1,76 @@
+/*
+ * 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 <QtTest/QtTest>
+
+#include "QXmppRtpChannel.h"
+
+#include "rtp.h"
+
+void TestRtp::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 TestRtp::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 TestRtp::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);
+}
+
+