aboutsummaryrefslogtreecommitdiff
path: root/autotests/testutils.h
diff options
context:
space:
mode:
authorAlexey Rusakov <Kitsune-Ral@users.sf.net>2022-09-12 22:02:18 +0200
committerGitHub <noreply@github.com>2022-09-12 22:02:18 +0200
commit95d3f0607556e66666b3974486b061fc4372ede0 (patch)
treecb9d8f9c8465b11f0f4c71ea9d54eb6216be360f /autotests/testutils.h
parent0d0a91b4438d68c833f480f45017847829bf6088 (diff)
parent79f995da07ca240c768281bf1d040eb94c07583e (diff)
downloadlibquotient-95d3f0607556e66666b3974486b061fc4372ede0.tar.gz
libquotient-95d3f0607556e66666b3974486b061fc4372ede0.zip
Merge #568: Add autotest for key verification and fix several edge-cases
Diffstat (limited to 'autotests/testutils.h')
-rw-r--r--autotests/testutils.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/autotests/testutils.h b/autotests/testutils.h
new file mode 100644
index 00000000..7d016a34
--- /dev/null
+++ b/autotests/testutils.h
@@ -0,0 +1,32 @@
+// SPDX-FileCopyrightText: 2021 Carl Schwan <carlschwan@kde.org>
+//
+// SPDX-License-Identifier: LGPL-2.1-or-later
+
+#pragma once
+
+#include <connection.h>
+#include <networkaccessmanager.h>
+
+#include <QtTest/QSignalSpy>
+
+using namespace Quotient;
+
+#define CREATE_CONNECTION(VAR, USERNAME, SECRET, DEVICE_NAME) \
+ NetworkAccessManager::instance()->ignoreSslErrors(true); \
+ auto VAR = std::make_shared<Connection>(); \
+ (VAR)->resolveServer("@" USERNAME ":localhost:1234"); \
+ connect((VAR).get(), &Connection::loginFlowsChanged, this, [=] { \
+ (VAR)->loginWithPassword((USERNAME), SECRET, DEVICE_NAME, ""); \
+ }); \
+ connect((VAR).get(), &Connection::networkError, [](const QString& error) { \
+ QWARN(qUtf8Printable(error)); \
+ QFAIL("Network error: make sure synapse is running"); \
+ }); \
+ connect((VAR).get(), &Connection::loginError, [](const QString& error) { \
+ QWARN(qUtf8Printable(error)); \
+ QFAIL("Login failed"); \
+ }); \
+ QSignalSpy spy##VAR((VAR).get(), &Connection::loginFlowsChanged); \
+ QSignalSpy spy2##VAR((VAR).get(), &Connection::connected); \
+ QVERIFY(spy##VAR.wait(10000)); \
+ QVERIFY(spy2##VAR.wait(10000));