diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-09-27 15:41:13 +0200 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-09-27 15:41:13 +0200 |
| commit | c09d5ee9926474526d91b7d7d3686c71bab8f26a (patch) | |
| tree | 50b6ae62c11e79091e4787247ba22d93206bf002 /tests/qxmpprtppacket/tst_qxmpprtppacket.cpp | |
| parent | 42b6f0eca69e5ca1b23750a6baba3fb9b66e7b26 (diff) | |
| download | qxmpp-c09d5ee9926474526d91b7d7d3686c71bab8f26a.tar.gz | |
split QXmppRtpPacket tests
Diffstat (limited to 'tests/qxmpprtppacket/tst_qxmpprtppacket.cpp')
| -rw-r--r-- | tests/qxmpprtppacket/tst_qxmpprtppacket.cpp | 85 |
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" |
