diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2011-04-23 15:48:31 +0000 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2011-04-23 15:48:31 +0000 |
| commit | d461620dcdd69a3b0fc7323db123a7296f57027e (patch) | |
| tree | 2b5e1dc422398ec85250dadc5d325a287a4d6a87 /tests/tests.cpp | |
| parent | 02ae50991c9d00f171bcc1ef105cbe52f37b39f7 (diff) | |
| download | qxmpp-d461620dcdd69a3b0fc7323db123a7296f57027e.tar.gz | |
add tests for RTP parsing / serialization
Diffstat (limited to 'tests/tests.cpp')
| -rw-r--r-- | tests/tests.cpp | 50 |
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); |
