aboutsummaryrefslogtreecommitdiff
path: root/tests/tests.cpp
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2011-04-23 15:48:31 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2011-04-23 15:48:31 +0000
commitd461620dcdd69a3b0fc7323db123a7296f57027e (patch)
tree2b5e1dc422398ec85250dadc5d325a287a4d6a87 /tests/tests.cpp
parent02ae50991c9d00f171bcc1ef105cbe52f37b39f7 (diff)
downloadqxmpp-d461620dcdd69a3b0fc7323db123a7296f57027e.tar.gz
add tests for RTP parsing / serialization
Diffstat (limited to 'tests/tests.cpp')
-rw-r--r--tests/tests.cpp50
1 files changed, 50 insertions, 0 deletions
diff --git a/tests/tests.cpp b/tests/tests.cpp
index e48564b4..8afc0d32 100644
--- a/tests/tests.cpp
+++ b/tests/tests.cpp
@@ -1022,6 +1022,53 @@ private:
QString m_password;
};
+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);
+}
+
+
void TestServer::testConnect()
{
const QString testDomain("localhost");
@@ -1370,6 +1417,9 @@ int main(int argc, char *argv[])
TestPubSub testPubSub;
errors += QTest::qExec(&testPubSub);
+ TestRtp testRtp;
+ errors += QTest::qExec(&testRtp);
+
TestServer testServer;
errors += QTest::qExec(&testServer);