aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/events/callcandidatesevent.h11
-rw-r--r--tests/callcandidateseventtest.cpp47
-rw-r--r--tests/callcandidateseventtest.h13
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();
+};