From 728901eab3d77595878ae1dc3defbcfbde6423a3 Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Wed, 18 Jul 2012 11:53:40 +0200 Subject: split RTP tests out --- tests/rtp.cpp | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 tests/rtp.cpp (limited to 'tests/rtp.cpp') 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 + +#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()); + 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(0xabcdef01) << quint32(0xdeadbeef)); + QCOMPARE(packet.payload, QByteArray("\x12\x34\x56", 3)); + QCOMPARE(packet.encode(), data); +} + + -- cgit v1.2.3