diff options
-rw-r--r-- | lib/events/callcandidatesevent.h | 11 | ||||
-rw-r--r-- | tests/callcandidateseventtest.cpp | 47 | ||||
-rw-r--r-- | tests/callcandidateseventtest.h | 13 |
3 files changed, 71 insertions, 0 deletions
diff --git a/lib/events/callcandidatesevent.h b/lib/events/callcandidatesevent.h index b9de7556..c2ccac3b 100644 --- a/lib/events/callcandidatesevent.h +++ b/lib/events/callcandidatesevent.h @@ -1,6 +1,7 @@ // SPDX-FileCopyrightText: 2017 Marius Gripsgard <marius@ubports.com> // SPDX-FileCopyrightText: 2018 Josip Delic <delijati@googlemail.com> // SPDX-FileCopyrightText: 2018 Kitsune Ral <Kitsune-Ral@users.sf.net> +// SPDX-FileCopyrightText: 2020 Carl Schwan <carlschwan@kde.org> // SPDX-License-Identifier: LGPL-2.1-or-later #pragma once @@ -26,6 +27,16 @@ public: { return content<QJsonArray>("candidates"_ls); } + + QString callId() const + { + return content<QString>("call_id"); + } + + int version() const + { + return content<int>("version"); + } }; REGISTER_EVENT_TYPE(CallCandidatesEvent) diff --git a/tests/callcandidateseventtest.cpp b/tests/callcandidateseventtest.cpp new file mode 100644 index 00000000..27108fdd --- /dev/null +++ b/tests/callcandidateseventtest.cpp @@ -0,0 +1,47 @@ +// SPDX-FileCopyrightText: 2020 Carl Schwan <carlschwan@kde.org> +// +// SPDX-License-Identifier: LGPL-2.1-or-later + +#include "events/callcandidatesevent.h" +#include "callcandidateseventtest.h" + +void TestCallCandidatesEvent::fromJson() +{ + auto documemt = QJsonDocument::fromJson(R"({ + "age": 242352, + "content": { + "call_id": "12345", + "candidates": [ + { + "candidate": "candidate:863018703 1 udp 2122260223 10.9.64.156 43670 typ host generation 0", + "sdpMLineIndex": 0, + "sdpMid": "audio" + } + ], + "version": 0 + }, + "event_id": "$WLGTSEFSEF:localhost", + "origin_server_ts": 1431961217939, + "room_id": "!Cuyf34gef24t:localhost", + "sender": "@example:localhost", + "type": "m.call.candidates" + })"); + + QVERIFY(documemt.isObject()); + + auto object = documemt.object(); + + Quotient::CallCandidatesEvent callCandidatesEvent(object); + + QCOMPARE(callCandidatesEvent.version(), 0); + QCOMPARE(callCandidatesEvent.callId(), "12345"); + QCOMPARE(callCandidatesEvent.candidates().count(), 1); + + const QJsonObject &candidate = callCandidatesEvent.candidates().at(0).toObject(); + QCOMPARE(candidate.value("sdpMid").toString(), "audio"); + QCOMPARE(candidate.value("sdpMLineIndex").toInt(), 0); + QCOMPARE(candidate.value("candidate").toString(), "candidate:863018703 1 udp 2122260223 10.9.64.156 43670 typ host generation 0"); +} + +QTEST_MAIN(TestCallCandidatesEvent) +#include "callcandidateseventtest.moc" diff --git a/tests/callcandidateseventtest.h b/tests/callcandidateseventtest.h new file mode 100644 index 00000000..b81c9c9b --- /dev/null +++ b/tests/callcandidateseventtest.h @@ -0,0 +1,13 @@ +// SPDX-FileCopyrightText: 2020 Carl Schwan <carlschwan@kde.org> +// +// SPDX-License-Identifier: LGPL-2.1-or-later + +#include <QtTest/QtTest> + +class TestCallCandidatesEvent : public QObject +{ + Q_OBJECT + +private Q_SLOTS: + void fromJson(); +}; |