From 36778e8eda3264d99a40cb75ec07445c13f2aade Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Wed, 3 Apr 2019 21:55:16 +0200 Subject: [PATCH] Add test trigger for auto device reconfiguration --- plugins/mock/devicepluginmock.cpp | 1 + tests/auto/devices/testdevices.cpp | 25 ++++++++++++++++--------- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/plugins/mock/devicepluginmock.cpp b/plugins/mock/devicepluginmock.cpp index c321bab4..3407a308 100644 --- a/plugins/mock/devicepluginmock.cpp +++ b/plugins/mock/devicepluginmock.cpp @@ -110,6 +110,7 @@ DeviceManager::DeviceSetupStatus DevicePluginMock::setupDevice(Device *device) connect(daemon, &HttpDaemon::setState, this, &DevicePluginMock::setState); // Keep this queued or it might happen that the HttpDaemon is deleted before it is able to reply to the caller connect(daemon, &HttpDaemon::disappear, this, &DevicePluginMock::onDisappear, Qt::QueuedConnection); + connect(daemon, &HttpDaemon::reconfigureAutodevice, this, &DevicePluginMock::onReconfigureAutoDevice, Qt::QueuedConnection); if (async) { m_asyncSetupDevices.append(device); diff --git a/tests/auto/devices/testdevices.cpp b/tests/auto/devices/testdevices.cpp index 0661eac0..8e5dc938 100644 --- a/tests/auto/devices/testdevices.cpp +++ b/tests/auto/devices/testdevices.cpp @@ -52,6 +52,8 @@ private slots: void storedDevices(); + void reconfigureAutodevice(); + void discoverDevices_data(); void discoverDevices(); @@ -91,7 +93,6 @@ private slots: void reconfigureByDiscovery(); void reconfigureByDiscoveryAndPair(); - void reconfigureAutodevice(); void removeDevice_data(); void removeDevice(); @@ -1278,17 +1279,23 @@ void TestDevices::reconfigureByDiscoveryAndPair() void TestDevices::reconfigureAutodevice() { - // Get the current autodevice + qCDebug(dcTests()) << "Reconfigure auto device"; - QVariant response = injectAndWait("Devices.GetConfiguredDevices"); - QVariantList devices = response.toMap().value("params").toMap().value("devices").toList(); + QList devices = NymeaCore::instance()->deviceManager()->findConfiguredDevices(mockDeviceAutoClassId); + QVERIFY2(devices.count() > 0, "There needs to be at least one auto-created Mock Device for this test"); + Device *device = devices.first(); + + // Setup connection to mock client + QNetworkAccessManager *nam = new QNetworkAccessManager(this); + QSignalSpy spy(nam, SIGNAL(finished(QNetworkReply*))); + + // trigger reconfigure signal in mock device + QNetworkReply *reply = nam->get(QNetworkRequest(QUrl(QString("http://localhost:%1/reconfigureautodevice").arg(device->paramValue(httpportParamTypeId).toInt())))); + spy.wait(); + QCOMPARE(spy.count(), 1); + reply->deleteLater(); - QVariantMap autoDevice; - foreach (const QVariant &deviceVariant, devices) { - QVariantMap deviceMap = deviceVariant.toMap(); - qDebug() << deviceMap; - } }