change ports and add ssl configuration

This commit is contained in:
Simon Stürz 2015-08-04 15:10:46 +02:00 committed by Michael Zanetti
parent 70560df8c6
commit fc86244018
21 changed files with 198 additions and 148 deletions

View File

@ -1,14 +1,20 @@
[JSONRPC] [JSONRPC]
port=1234 port=2222
interfaces="lo", "all" interfaces="lo", "all"
ip="IPv4", "IPv6" ip="IPv4", "IPv6"
[Webserver] [WebServer]
port=3000 port=3333
https=false https=false
publicFolder=/usr/share/guh-webinterface/public
[WebSocketServer]
port=4444
https=false
[SSL-Configuration]
certificate=/etc/ssl/certs/guhd-certificate.crt certificate=/etc/ssl/certs/guhd-certificate.crt
certificate-key=/etc/ssl/private/guhd-certificate.key certificate-key=/etc/ssl/private/guhd-certificate.key
publicFolder=/usr/share/guh-webinterface/public
[GPIO] [GPIO]
rf433rx=27 rf433rx=27

View File

@ -51,10 +51,11 @@
#include <QJsonDocument> #include <QJsonDocument>
#include <QStringList> #include <QStringList>
#include <QSslConfiguration>
namespace guhserver { namespace guhserver {
JsonRPCServer::JsonRPCServer(QObject *parent): JsonRPCServer::JsonRPCServer(const QSslConfiguration &sslConfiguration, QObject *parent):
JsonHandler(parent), JsonHandler(parent),
#ifdef TESTING_ENABLED #ifdef TESTING_ENABLED
m_tcpServer(new MockTcpServer(this)), m_tcpServer(new MockTcpServer(this)),
@ -62,7 +63,7 @@ JsonRPCServer::JsonRPCServer(QObject *parent):
m_tcpServer(new TcpServer(this)), m_tcpServer(new TcpServer(this)),
#endif #endif
#ifdef WEBSOCKET #ifdef WEBSOCKET
m_websocketServer(new WebSocketServer(this)), m_websocketServer(new WebSocketServer(sslConfiguration, this)),
#endif #endif
m_notificationId(0) m_notificationId(0)
{ {

View File

@ -34,6 +34,7 @@
#include <QString> #include <QString>
class Device; class Device;
class QSslConfiguration;
namespace guhserver { namespace guhserver {
#ifdef WEBSOCKET #ifdef WEBSOCKET
@ -50,7 +51,7 @@ class JsonRPCServer: public JsonHandler
{ {
Q_OBJECT Q_OBJECT
public: public:
JsonRPCServer(QObject *parent = 0); JsonRPCServer(const QSslConfiguration &sslConfiguration = QSslConfiguration(), QObject *parent = 0);
// JsonHandler API implementation // JsonHandler API implementation
QString name() const; QString name() const;

View File

@ -25,13 +25,14 @@
#include "guhcore.h" #include "guhcore.h"
#include <QJsonDocument> #include <QJsonDocument>
#include <QSslConfiguration>
namespace guhserver { namespace guhserver {
RestServer::RestServer(QObject *parent) : RestServer::RestServer(const QSslConfiguration &sslConfiguration, QObject *parent) :
QObject(parent) QObject(parent)
{ {
m_webserver = new WebServer(this); m_webserver = new WebServer(sslConfiguration, this);
connect(m_webserver, &WebServer::clientConnected, this, &RestServer::clientConnected); connect(m_webserver, &WebServer::clientConnected, this, &RestServer::clientConnected);
connect(m_webserver, &WebServer::clientDisconnected, this, &RestServer::clientDisconnected); connect(m_webserver, &WebServer::clientDisconnected, this, &RestServer::clientDisconnected);
connect(m_webserver, &WebServer::httpRequestReady, this, &RestServer::processHttpRequest); connect(m_webserver, &WebServer::httpRequestReady, this, &RestServer::processHttpRequest);

View File

@ -34,6 +34,7 @@
class HttpRequest; class HttpRequest;
class HttpReply; class HttpReply;
class QSslConfiguration;
namespace guhserver { namespace guhserver {
@ -41,7 +42,7 @@ class RestServer : public QObject
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit RestServer(QObject *parent = 0); explicit RestServer(const QSslConfiguration &sslConfiguration = QSslConfiguration(), QObject *parent = 0);
private: private:

View File

@ -21,16 +21,45 @@
#include "servermanager.h" #include "servermanager.h"
#include "guhsettings.h" #include "guhsettings.h"
#include <QSslCertificate>
#include <QSslConfiguration>
#include <QSslKey>
namespace guhserver { namespace guhserver {
ServerManager::ServerManager(QObject *parent) : ServerManager::ServerManager(QObject *parent) :
QObject(parent) QObject(parent),
m_sslConfiguration(QSslConfiguration())
{ {
// check SSL
if (!QSslSocket::supportsSsl()) {
qCWarning(dcConnection) << "SSL is not supported/installed on this platform.";
} else {
qCDebug(dcConnection) << "SSL library version:" << QSslSocket::sslLibraryVersionString();
// load SSL configuration settings
GuhSettings settings(GuhSettings::SettingsRoleGlobal);
qCDebug(dcConnection) << "Loading SSL-configuration from" << settings.fileName();
settings.beginGroup("SSL-Configuration");
QString certificateFileName = settings.value("certificate", QVariant("/etc/ssl/certs/guhd-certificate.crt")).toString();
QString keyFileName = settings.value("certificate-key", QVariant("/etc/ssl/private/guhd-certificate.key")).toString();
settings.endGroup();
if (!loadCertificate(keyFileName, certificateFileName)) {
qCWarning(dcConnection) << "SSL encryption disabled";
} else {
m_sslConfiguration.setProtocol(QSsl::TlsV1_2);
m_sslConfiguration.setPrivateKey(m_certificateKey);
m_sslConfiguration.setLocalCertificate(m_certificate);
}
}
qCDebug(dcApplication) << "Starting JSON RPC Server"; qCDebug(dcApplication) << "Starting JSON RPC Server";
m_jsonServer = new JsonRPCServer(this); m_jsonServer = new JsonRPCServer(m_sslConfiguration, this);
qCDebug(dcApplication) << "Starting REST Server"; qCDebug(dcApplication) << "Starting REST Server";
m_restServer = new RestServer(this); m_restServer = new RestServer(m_sslConfiguration, this);
} }
JsonRPCServer *ServerManager::jsonServer() const JsonRPCServer *ServerManager::jsonServer() const
@ -43,4 +72,27 @@ RestServer *ServerManager::restServer() const
return m_restServer; return m_restServer;
} }
bool ServerManager::loadCertificate(const QString &certificateKeyFileName, const QString &certificateFileName)
{
QFile certificateKeyFile(certificateKeyFileName);
if (!certificateKeyFile.open(QIODevice::ReadOnly)) {
qCWarning(dcWebServer) << "Could not open" << certificateKeyFile.fileName() << ":" << certificateKeyFile.errorString();
return false;
}
m_certificateKey = QSslKey(certificateKeyFile.readAll(), QSsl::Rsa);
qCDebug(dcWebServer) << "Loaded successfully private certificate key " << certificateKeyFileName;
certificateKeyFile.close();
QFile certificateFile(certificateFileName);
if (!certificateFile.open(QIODevice::ReadOnly)) {
qCWarning(dcWebServer) << "Could not open" << certificateFile.fileName() << ":" << certificateFile.errorString();
return false;
}
m_certificate = QSslCertificate(certificateFile.readAll());
qCDebug(dcWebServer) << "Loaded successfully certificate file " << certificateFileName;
certificateFile.close();
return true;
}
} }

View File

@ -27,6 +27,10 @@
#include "jsonrpc/jsonrpcserver.h" #include "jsonrpc/jsonrpcserver.h"
#include "rest/restserver.h" #include "rest/restserver.h"
class QSslConfiguration;
class QSslCertificate;
class QSslKey;
namespace guhserver { namespace guhserver {
class ServerManager : public QObject class ServerManager : public QObject
@ -42,6 +46,13 @@ private:
JsonRPCServer *m_jsonServer; JsonRPCServer *m_jsonServer;
RestServer *m_restServer; RestServer *m_restServer;
QSslConfiguration m_sslConfiguration;
QSslKey m_certificateKey;
QSslCertificate m_certificate;
bool loadCertificate(const QString &certificateKeyFileName, const QString &certificateFileName);
}; };
} }

View File

@ -42,11 +42,12 @@ TcpServer::TcpServer(QObject *parent) :
// load JSON-RPC server settings // load JSON-RPC server settings
GuhSettings settings(GuhSettings::SettingsRoleGlobal); GuhSettings settings(GuhSettings::SettingsRoleGlobal);
qCDebug(dcTcpServer) << "Loading Tcp server settings from:" << settings.fileName(); qCDebug(dcTcpServer) << "Loading Tcp server settings from" << settings.fileName();
settings.beginGroup("JSONRPC"); settings.beginGroup("JSONRPC");
// load port // load port
m_port = settings.value("port", 1234).toUInt(); // 2222 Official free according to https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers
m_port = settings.value("port", 2222).toUInt();
// load interfaces // load interfaces
QStringList interfaceList = settings.value("interfaces", QStringList("all")).toStringList(); QStringList interfaceList = settings.value("interfaces", QStringList("all")).toStringList();

View File

@ -35,34 +35,32 @@
namespace guhserver { namespace guhserver {
WebServer::WebServer(QObject *parent) : WebServer::WebServer(const QSslConfiguration &sslConfiguration, QObject *parent) :
QTcpServer(parent), QTcpServer(parent),
m_enabled(false), m_sslConfiguration(sslConfiguration),
m_useSsl(false) m_useSsl(false),
m_enabled(false)
{ {
// load webserver settings // load webserver settings
GuhSettings settings(GuhSettings::SettingsRoleGlobal); GuhSettings settings(GuhSettings::SettingsRoleGlobal);
qCDebug(dcWebSocketServer) << "Loading web socket server settings from:" << settings.fileName(); qCDebug(dcWebSocketServer) << "Loading web socket server settings from" << settings.fileName();
settings.beginGroup("WebSocketServer"); settings.beginGroup("WebServer");
m_port = settings.value("port", 3000).toInt(); // 3333 Official free according to https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers
m_port = settings.value("port", 3333).toInt();
m_useSsl = settings.value("https", false).toBool(); m_useSsl = settings.value("https", false).toBool();
QString certificateFileName = settings.value("certificate", QVariant("/etc/ssl/certs/guhd-certificate.crt")).toString(); m_webinterfaceDir = QDir(settings.value("publicFolder", "/usr/share/guh-webinterface/public/").toString());
QString keyFileName = settings.value("certificate-key", QVariant("/etc/ssl/private/guhd-certificate.key")).toString();
settings.endGroup(); settings.endGroup();
// check SSL // check public directory
if (m_useSsl && !QSslSocket::supportsSsl()) { qCDebug(dcWebServer) << "Publish webinterface folder" << m_webinterfaceDir.path();
qCWarning(dcWebServer) << "SSL is not supported/installed on this platform."; if (!m_webinterfaceDir.exists())
m_useSsl = false; qCWarning(dcWebServer) << "Web interface public folder" << m_webinterfaceDir.path() << "does not exist.";
}
if (m_useSsl && !loadCertificate(keyFileName, certificateFileName)) {
qCWarning(dcWebServer) << "SSL encryption disabled"; // check SSL
if (m_useSsl && m_sslConfiguration.isNull())
m_useSsl = false; m_useSsl = false;
return;
}
qCDebug(dcWebServer) << "Using SSL lib version:" << QSslSocket::sslLibraryVersionString();
} }
WebServer::~WebServer() WebServer::~WebServer()
@ -74,7 +72,6 @@ void WebServer::sendHttpReply(HttpReply *reply)
{ {
QSslSocket *socket = 0; QSslSocket *socket = 0;
socket = m_clientList.value(reply->clientId()); socket = m_clientList.value(reply->clientId());
if (!socket) { if (!socket) {
qCDebug(dcWebServer) << "Invalid socket pointer! This should never happen!!!"; qCDebug(dcWebServer) << "Invalid socket pointer! This should never happen!!!";
return; return;
@ -132,33 +129,6 @@ QString WebServer::fileName(const QString &query)
return m_webinterfaceDir.path() + fileName; return m_webinterfaceDir.path() + fileName;
} }
bool WebServer::loadCertificate(const QString &keyFileName, const QString &certificateFileName)
{
QByteArray certificateData;
QByteArray certificateKeyData;
QFile certificateKeyFile(keyFileName);
if (!certificateKeyFile.open(QIODevice::ReadOnly)) {
qCWarning(dcWebServer) << "Could not open" << certificateKeyFile.fileName() << ":" << certificateKeyFile.errorString();
return false;
}
certificateKeyData = certificateKeyFile.readAll();
certificateKeyFile.close();
qCDebug(dcWebServer) << "Loaded successfully private certificate key.";
QFile certificateFile(certificateFileName);
if (!certificateFile.open(QIODevice::ReadOnly)) {
qCWarning(dcWebServer) << "Could not open" << certificateFile.fileName() << ":" << certificateFile.errorString();
return false;
}
certificateData = certificateFile.readAll();
certificateFile.close();
qCDebug(dcWebServer) << "Loaded successfully certificate file.";
m_certificate = QSslCertificate(certificateData);
m_certificateKey = QSslKey(certificateKeyData, QSsl::Rsa);
return true;
}
void WebServer::writeData(QSslSocket *socket, const QByteArray &data) void WebServer::writeData(QSslSocket *socket, const QByteArray &data)
{ {
@ -174,6 +144,7 @@ void WebServer::incomingConnection(qintptr socketDescriptor)
QSslSocket *socket = new QSslSocket(); QSslSocket *socket = new QSslSocket();
if (!socket->setSocketDescriptor(socketDescriptor)) { if (!socket->setSocketDescriptor(socketDescriptor)) {
qCWarning(dcConnection) << "Could not set socket descriptor. Rejecting connection."; qCWarning(dcConnection) << "Could not set socket descriptor. Rejecting connection.";
socket->close();
delete socket; delete socket;
return; return;
} }
@ -186,9 +157,7 @@ void WebServer::incomingConnection(qintptr socketDescriptor)
if (m_useSsl) { if (m_useSsl) {
// configure client connection // configure client connection
socket->setProtocol(QSsl::TlsV1_2); socket->setSslConfiguration(m_sslConfiguration);
socket->setPrivateKey(m_certificateKey);
socket->setLocalCertificate(m_certificate);
connect(socket, SIGNAL(encrypted()), this, SLOT(onEncrypted())); connect(socket, SIGNAL(encrypted()), this, SLOT(onEncrypted()));
socket->startServerEncryption(); socket->startServerEncryption();
// wait for encrypted connection before continue with this client // wait for encrypted connection before continue with this client

View File

@ -28,6 +28,7 @@
#include <QDir> #include <QDir>
#include <QSslSocket> #include <QSslSocket>
#include <QSslCertificate> #include <QSslCertificate>
#include <QSslConfiguration>
#include <QSslKey> #include <QSslKey>
class HttpRequest; class HttpRequest;
@ -42,7 +43,7 @@ class WebServer : public QTcpServer
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit WebServer(QObject *parent = 0); explicit WebServer(const QSslConfiguration &sslConfiguration = QSslConfiguration(), QObject *parent = 0);
~WebServer(); ~WebServer();
void sendHttpReply(HttpReply *reply); void sendHttpReply(HttpReply *reply);
@ -51,18 +52,17 @@ private:
QHash<QUuid, QSslSocket *> m_clientList; QHash<QUuid, QSslSocket *> m_clientList;
QHash<QSslSocket *, HttpRequest> m_incompleteRequests; QHash<QSslSocket *, HttpRequest> m_incompleteRequests;
bool m_enabled; QSslConfiguration m_sslConfiguration;
bool m_useSsl; bool m_useSsl;
bool m_enabled;
qint16 m_port; qint16 m_port;
QDir m_webinterfaceDir; QDir m_webinterfaceDir;
QSslCertificate m_certificate;
QSslKey m_certificateKey;
bool verifyFile(QSslSocket *socket, const QString &fileName); bool verifyFile(QSslSocket *socket, const QString &fileName);
QString fileName(const QString &query); QString fileName(const QString &query);
bool loadCertificate(const QString &keyFileName, const QString &certificateFileName);
void writeData(QSslSocket *socket, const QByteArray &data); void writeData(QSslSocket *socket, const QByteArray &data);
protected: protected:

View File

@ -23,27 +23,30 @@
#include "loggingcategories.h" #include "loggingcategories.h"
#include <QJsonDocument> #include <QJsonDocument>
#include <QSslConfiguration>
namespace guhserver { namespace guhserver {
WebSocketServer::WebSocketServer(QObject *parent) : WebSocketServer::WebSocketServer(const QSslConfiguration &sslConfiguration, QObject *parent) :
TransportInterface(parent), TransportInterface(parent),
m_server(0) m_server(0),
m_sslConfiguration(sslConfiguration),
m_useSsl(false),
m_enabled(false)
{ {
// load webserver settings // load webserver settings
GuhSettings settings(GuhSettings::SettingsRoleGlobal); GuhSettings settings(GuhSettings::SettingsRoleGlobal);
qCDebug(dcWebServer) << "Loading webserver settings from:" << settings.fileName(); qCDebug(dcWebServer) << "Loading webserver settings from" << settings.fileName();
settings.beginGroup("WebSocketServer"); settings.beginGroup("WebSocketServer");
m_port = settings.value("port", 3001).toInt(); // 4444 Official free according to https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers
m_port = settings.value("port", 4444).toInt();
m_useSsl = settings.value("https", false).toBool(); m_useSsl = settings.value("https", false).toBool();
settings.endGroup(); settings.endGroup();
// check SSL // check SSL
if (m_useSsl && !QSslSocket::supportsSsl()) { if (m_useSsl && m_sslConfiguration.isNull())
qCWarning(dcWebServer) << "SSL is not supported/installed on this platform.";
m_useSsl = false; m_useSsl = false;
}
} }
WebSocketServer::~WebSocketServer() WebSocketServer::~WebSocketServer()
@ -141,6 +144,7 @@ bool WebSocketServer::startServer()
if (m_useSsl) { if (m_useSsl) {
m_server = new QWebSocketServer("guh", QWebSocketServer::SecureMode, this); m_server = new QWebSocketServer("guh", QWebSocketServer::SecureMode, this);
m_server->setSslConfiguration(m_sslConfiguration);
} else { } else {
m_server = new QWebSocketServer("guh", QWebSocketServer::NonSecureMode, this); m_server = new QWebSocketServer("guh", QWebSocketServer::NonSecureMode, this);
} }
@ -157,8 +161,6 @@ bool WebSocketServer::startServer()
} else { } else {
qCDebug(dcConnection) << "Started websocket server" << m_server->serverName() << QString("on wss://%1:%2").arg(m_server->serverAddress().toString()).arg(m_port); qCDebug(dcConnection) << "Started websocket server" << m_server->serverName() << QString("on wss://%1:%2").arg(m_server->serverAddress().toString()).arg(m_port);
} }
qCDebug(dcWebSocketServer) << "Supported protocol versions" << m_server->supportedVersions();
return true; return true;
} }

View File

@ -33,13 +33,15 @@
// Note: WebSocket Protocol from the Internet Engineering Task Force (IETF) -> RFC6455 V13: // Note: WebSocket Protocol from the Internet Engineering Task Force (IETF) -> RFC6455 V13:
// http://tools.ietf.org/html/rfc6455 // http://tools.ietf.org/html/rfc6455
class QSslConfiguration;
namespace guhserver { namespace guhserver {
class WebSocketServer : public TransportInterface class WebSocketServer : public TransportInterface
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit WebSocketServer(QObject *parent = 0); explicit WebSocketServer(const QSslConfiguration &sslConfiguration = QSslConfiguration(), QObject *parent = 0);
~WebSocketServer(); ~WebSocketServer();
void sendData(const QUuid &clientId, const QVariantMap &data) override; void sendData(const QUuid &clientId, const QVariantMap &data) override;
@ -49,8 +51,10 @@ private:
QWebSocketServer *m_server; QWebSocketServer *m_server;
QHash<QUuid, QWebSocket *> m_clientList; QHash<QUuid, QWebSocket *> m_clientList;
bool m_enabled; QSslConfiguration m_sslConfiguration;
bool m_useSsl; bool m_useSsl;
bool m_enabled;
qint16 m_port; qint16 m_port;
private slots: private slots:

View File

@ -14,6 +14,8 @@ SUBDIRS = versioning \
restplugins \ restplugins \
restvendors \ restvendors \
restrules \ restrules \
websocketserver \
contains(DEFINES, WEBSOCKET){
SUBDIRS += websocketserver
}

View File

@ -70,7 +70,7 @@ void TestRestDeviceClasses::getSupportedDevices()
// Get all devices // Get all devices
QNetworkRequest request; QNetworkRequest request;
request.setUrl(QUrl("http://localhost:3000/api/v1/deviceclasses")); request.setUrl(QUrl("http://localhost:3333/api/v1/deviceclasses"));
QNetworkReply *reply = nam->get(request); QNetworkReply *reply = nam->get(request);
clientSpy.wait(); clientSpy.wait();
QVERIFY2(clientSpy.count() == 1, "expected exactly 1 response from webserver"); QVERIFY2(clientSpy.count() == 1, "expected exactly 1 response from webserver");
@ -88,7 +88,7 @@ void TestRestDeviceClasses::getSupportedDevices()
QVariantMap deviceClassMap = deviceClass.toMap(); QVariantMap deviceClassMap = deviceClass.toMap();
QNetworkRequest request; QNetworkRequest request;
request.setHeader(QNetworkRequest::ContentTypeHeader, "text/json"); request.setHeader(QNetworkRequest::ContentTypeHeader, "text/json");
request.setUrl(QUrl(QString("http://localhost:3000/api/v1/deviceclasses/%1").arg(deviceClassMap.value("id").toString()))); request.setUrl(QUrl(QString("http://localhost:3333/api/v1/deviceclasses/%1").arg(deviceClassMap.value("id").toString())));
clientSpy.clear(); clientSpy.clear();
QNetworkReply *reply = nam->get(request); QNetworkReply *reply = nam->get(request);
clientSpy.wait(); clientSpy.wait();
@ -126,10 +126,10 @@ void TestRestDeviceClasses::getActionTypes()
QNetworkRequest request; QNetworkRequest request;
if (!actionTypeId.isNull()) { if (!actionTypeId.isNull()) {
request.setUrl(QUrl(QString("http://localhost:3000/api/v1/deviceclasses/%1/actiontypes/%2").arg(deviceClassId.toString()).arg(actionTypeId.toString()))); request.setUrl(QUrl(QString("http://localhost:3333/api/v1/deviceclasses/%1/actiontypes/%2").arg(deviceClassId.toString()).arg(actionTypeId.toString())));
} else { } else {
// Get all actiontypes // Get all actiontypes
request.setUrl(QUrl(QString("http://localhost:3000/api/v1/deviceclasses/%1/actiontypes").arg(deviceClassId.toString()))); request.setUrl(QUrl(QString("http://localhost:3333/api/v1/deviceclasses/%1/actiontypes").arg(deviceClassId.toString())));
} }
QNetworkReply *reply = nam->get(request); QNetworkReply *reply = nam->get(request);
@ -164,10 +164,10 @@ void TestRestDeviceClasses::getStateTypes()
QNetworkRequest request; QNetworkRequest request;
if (!stateTypeId.isNull()) { if (!stateTypeId.isNull()) {
request.setUrl(QUrl(QString("http://localhost:3000/api/v1/deviceclasses/%1/statetypes/%2").arg(deviceClassId.toString()).arg(stateTypeId.toString()))); request.setUrl(QUrl(QString("http://localhost:3333/api/v1/deviceclasses/%1/statetypes/%2").arg(deviceClassId.toString()).arg(stateTypeId.toString())));
} else { } else {
// Get all actiontypes // Get all actiontypes
request.setUrl(QUrl(QString("http://localhost:3000/api/v1/deviceclasses/%1/statetypes").arg(deviceClassId.toString()))); request.setUrl(QUrl(QString("http://localhost:3333/api/v1/deviceclasses/%1/statetypes").arg(deviceClassId.toString())));
} }
QNetworkReply *reply = nam->get(request); QNetworkReply *reply = nam->get(request);
@ -202,10 +202,10 @@ void TestRestDeviceClasses::getEventTypes()
QNetworkRequest request; QNetworkRequest request;
if (!eventTypeId.isNull()) { if (!eventTypeId.isNull()) {
request.setUrl(QUrl(QString("http://localhost:3000/api/v1/deviceclasses/%1/eventtypes/%2").arg(deviceClassId.toString()).arg(eventTypeId.toString()))); request.setUrl(QUrl(QString("http://localhost:3333/api/v1/deviceclasses/%1/eventtypes/%2").arg(deviceClassId.toString()).arg(eventTypeId.toString())));
} else { } else {
// Get all actiontypes // Get all actiontypes
request.setUrl(QUrl(QString("http://localhost:3000/api/v1/deviceclasses/%1/eventtypes").arg(deviceClassId.toString()))); request.setUrl(QUrl(QString("http://localhost:3333/api/v1/deviceclasses/%1/eventtypes").arg(deviceClassId.toString())));
} }
QNetworkReply *reply = nam->get(request); QNetworkReply *reply = nam->get(request);
@ -249,7 +249,7 @@ void TestRestDeviceClasses::discoverDevices()
QSignalSpy clientSpy(nam, SIGNAL(finished(QNetworkReply*))); QSignalSpy clientSpy(nam, SIGNAL(finished(QNetworkReply*)));
// DISCOVER // DISCOVER
QUrl url(QString("http://localhost:3000/api/v1/deviceclasses/%1/discover").arg(deviceClassId.toString())); QUrl url(QString("http://localhost:3333/api/v1/deviceclasses/%1/discover").arg(deviceClassId.toString()));
if (!discoveryParams.isEmpty()) { if (!discoveryParams.isEmpty()) {
QUrlQuery query; QUrlQuery query;
@ -277,7 +277,7 @@ void TestRestDeviceClasses::discoverDevices()
QCOMPARE(foundDevices.count(), resultCount); QCOMPARE(foundDevices.count(), resultCount);
// ADD the discovered device // ADD the discovered device
request.setUrl(QUrl("http://localhost:3000/api/v1/devices")); request.setUrl(QUrl("http://localhost:3333/api/v1/devices"));
DeviceDescriptorId descriptorId = DeviceDescriptorId(foundDevices.first().toMap().value("id").toString()); DeviceDescriptorId descriptorId = DeviceDescriptorId(foundDevices.first().toMap().value("id").toString());
qDebug() << descriptorId; qDebug() << descriptorId;
params.clear(); params.clear();
@ -302,7 +302,7 @@ void TestRestDeviceClasses::discoverDevices()
DeviceId deviceId = DeviceId(response.value("deviceId").toString()); DeviceId deviceId = DeviceId(response.value("deviceId").toString());
request = QNetworkRequest(QUrl(QString("http://localhost:3000/api/v1/devices/%1").arg(deviceId.toString()))); request = QNetworkRequest(QUrl(QString("http://localhost:3333/api/v1/devices/%1").arg(deviceId.toString())));
clientSpy.clear(); clientSpy.clear();
reply = nam->deleteResource(request); reply = nam->deleteResource(request);
clientSpy.wait(); clientSpy.wait();

View File

@ -73,7 +73,7 @@ void TestRestDevices::getConfiguredDevices()
// Get all devices // Get all devices
QNetworkRequest request; QNetworkRequest request;
request.setHeader(QNetworkRequest::ContentTypeHeader, "text/json"); request.setHeader(QNetworkRequest::ContentTypeHeader, "text/json");
request.setUrl(QUrl("http://localhost:3000/api/v1/devices")); request.setUrl(QUrl("http://localhost:3333/api/v1/devices"));
QNetworkReply *reply; QNetworkReply *reply;
reply = nam->get(request); reply = nam->get(request);
@ -94,7 +94,7 @@ void TestRestDevices::getConfiguredDevices()
QVariantMap deviceMap = device.toMap(); QVariantMap deviceMap = device.toMap();
QNetworkRequest request; QNetworkRequest request;
request.setHeader(QNetworkRequest::ContentTypeHeader, "text/json"); request.setHeader(QNetworkRequest::ContentTypeHeader, "text/json");
request.setUrl(QUrl(QString("http://localhost:3000/api/v1/devices/%1").arg(deviceMap.value("id").toString()))); request.setUrl(QUrl(QString("http://localhost:3333/api/v1/devices/%1").arg(deviceMap.value("id").toString())));
clientSpy.clear(); clientSpy.clear();
QNetworkReply *reply = nam->get(request); QNetworkReply *reply = nam->get(request);
clientSpy.wait(); clientSpy.wait();
@ -179,7 +179,7 @@ void TestRestDevices::addConfiguredDevice()
// Get all devices // Get all devices
QNetworkRequest request; QNetworkRequest request;
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
request.setUrl(QUrl("http://localhost:3000/api/v1/devices")); request.setUrl(QUrl("http://localhost:3333/api/v1/devices"));
QByteArray payload = QJsonDocument::fromVariant(params).toJson(QJsonDocument::Compact); QByteArray payload = QJsonDocument::fromVariant(params).toJson(QJsonDocument::Compact);
qDebug() << "sending" << payload; qDebug() << "sending" << payload;
@ -204,7 +204,7 @@ void TestRestDevices::addConfiguredDevice()
DeviceId deviceId = DeviceId(response.value("deviceId").toString()); DeviceId deviceId = DeviceId(response.value("deviceId").toString());
request.setUrl(QUrl(QString("http://localhost:3000/api/v1/devices/%1").arg(deviceId.toString()))); request.setUrl(QUrl(QString("http://localhost:3333/api/v1/devices/%1").arg(deviceId.toString())));
clientSpy.clear(); clientSpy.clear();
reply = nam->deleteResource(request); reply = nam->deleteResource(request);
clientSpy.wait(); clientSpy.wait();
@ -256,7 +256,7 @@ void TestRestDevices::executeAction()
QVariantMap payloadMap; QVariantMap payloadMap;
payloadMap.insert("params", actionParams); payloadMap.insert("params", actionParams);
QNetworkRequest request(QUrl(QString("http://localhost:3000/api/v1/devices/%1/execute/%2").arg(deviceId.toString()).arg(actionTypeId.toString()))); QNetworkRequest request(QUrl(QString("http://localhost:3333/api/v1/devices/%1/execute/%2").arg(deviceId.toString()).arg(actionTypeId.toString())));
spy.clear(); spy.clear();
QNetworkReply *reply = nam.post(request, QJsonDocument::fromVariant(payloadMap).toJson(QJsonDocument::Compact)); QNetworkReply *reply = nam.post(request, QJsonDocument::fromVariant(payloadMap).toJson(QJsonDocument::Compact));
spy.wait(); spy.wait();
@ -320,10 +320,10 @@ void TestRestDevices::getStateValue()
QNetworkRequest request; QNetworkRequest request;
if (!stateTypeId.isNull()) { if (!stateTypeId.isNull()) {
request.setUrl(QUrl(QString("http://localhost:3000/api/v1/devices/%1/states/%2").arg(deviceId.toString()).arg(stateTypeId.toString()))); request.setUrl(QUrl(QString("http://localhost:3333/api/v1/devices/%1/states/%2").arg(deviceId.toString()).arg(stateTypeId.toString())));
} else { } else {
// Get all states // Get all states
request.setUrl(QUrl(QString("http://localhost:3000/api/v1/devices/%1/states").arg(deviceId.toString()))); request.setUrl(QUrl(QString("http://localhost:3333/api/v1/devices/%1/states").arg(deviceId.toString())));
} }
qDebug() << request.url(); qDebug() << request.url();
@ -418,7 +418,7 @@ void TestRestDevices::editDevices()
QNetworkAccessManager *nam = new QNetworkAccessManager(); QNetworkAccessManager *nam = new QNetworkAccessManager();
QSignalSpy clientSpy(nam, SIGNAL(finished(QNetworkReply*))); QSignalSpy clientSpy(nam, SIGNAL(finished(QNetworkReply*)));
QNetworkRequest request(QUrl(QString("http://localhost:3000/api/v1/devices"))); QNetworkRequest request(QUrl(QString("http://localhost:3333/api/v1/devices")));
QNetworkReply *reply = nam->post(request, QJsonDocument::fromVariant(params).toJson(QJsonDocument::Compact)); QNetworkReply *reply = nam->post(request, QJsonDocument::fromVariant(params).toJson(QJsonDocument::Compact));
clientSpy.wait(); clientSpy.wait();
@ -440,7 +440,7 @@ void TestRestDevices::editDevices()
editParams.insert("deviceId", deviceId); editParams.insert("deviceId", deviceId);
editParams.insert("deviceParams", newDeviceParams); editParams.insert("deviceParams", newDeviceParams);
request.setUrl(QUrl(QString("http://localhost:3000/api/v1/devices/%1").arg(deviceId.toString()))); request.setUrl(QUrl(QString("http://localhost:3333/api/v1/devices/%1").arg(deviceId.toString())));
clientSpy.clear(); clientSpy.clear();
reply = nam->put(request, QJsonDocument::fromVariant(editParams).toJson(QJsonDocument::Compact)); reply = nam->put(request, QJsonDocument::fromVariant(editParams).toJson(QJsonDocument::Compact));
clientSpy.wait(); clientSpy.wait();
@ -452,7 +452,7 @@ void TestRestDevices::editDevices()
// if the edit should have been successfull // if the edit should have been successfull
if (expectedStatusCode == 200) { if (expectedStatusCode == 200) {
request.setUrl(QUrl(QString("http://localhost:3000/api/v1/devices/%1").arg(deviceId.toString()))); request.setUrl(QUrl(QString("http://localhost:3333/api/v1/devices/%1").arg(deviceId.toString())));
clientSpy.clear(); clientSpy.clear();
reply = nam->get(request); reply = nam->get(request);
clientSpy.wait(); clientSpy.wait();
@ -468,7 +468,7 @@ void TestRestDevices::editDevices()
} }
// delete it // delete it
request.setUrl(QUrl(QString("http://localhost:3000/api/v1/devices/%1").arg(deviceId.toString()))); request.setUrl(QUrl(QString("http://localhost:3333/api/v1/devices/%1").arg(deviceId.toString())));
clientSpy.clear(); clientSpy.clear();
reply = nam->deleteResource(request); reply = nam->deleteResource(request);
clientSpy.wait(); clientSpy.wait();
@ -508,7 +508,7 @@ void TestRestDevices::editByDiscovery()
QNetworkAccessManager *nam = new QNetworkAccessManager(this); QNetworkAccessManager *nam = new QNetworkAccessManager(this);
QSignalSpy clientSpy(nam, SIGNAL(finished(QNetworkReply*))); QSignalSpy clientSpy(nam, SIGNAL(finished(QNetworkReply*)));
QUrl url(QString("http://localhost:3000/api/v1/deviceclasses/%1/discover").arg(deviceClassId.toString())); QUrl url(QString("http://localhost:3333/api/v1/deviceclasses/%1/discover").arg(deviceClassId.toString()));
if (!discoveryParams.isEmpty()) { if (!discoveryParams.isEmpty()) {
QUrlQuery query; QUrlQuery query;
@ -534,7 +534,7 @@ void TestRestDevices::editByDiscovery()
QCOMPARE(foundDevices.count(), resultCount); QCOMPARE(foundDevices.count(), resultCount);
// add Discovered Device 1 port 55555 // add Discovered Device 1 port 55555
request.setUrl(QUrl("http://localhost:3000/api/v1/devices")); request.setUrl(QUrl("http://localhost:3333/api/v1/devices"));
DeviceDescriptorId descriptorId1; DeviceDescriptorId descriptorId1;
foreach (const QVariant &descriptor, foundDevices) { foreach (const QVariant &descriptor, foundDevices) {
// find the device with port 55555 // find the device with port 55555
@ -571,7 +571,7 @@ void TestRestDevices::editByDiscovery()
params.insert("discoveryParams", discoveryParams); params.insert("discoveryParams", discoveryParams);
clientSpy.clear(); clientSpy.clear();
url = QUrl(QString("http://localhost:3000/api/v1/deviceclasses/%1/discover").arg(deviceClassId.toString())); url = QUrl(QString("http://localhost:3333/api/v1/deviceclasses/%1/discover").arg(deviceClassId.toString()));
QUrlQuery query2; QUrlQuery query2;
query2.addQueryItem("params", QJsonDocument::fromVariant(discoveryParams).toJson(QJsonDocument::Compact)); query2.addQueryItem("params", QJsonDocument::fromVariant(discoveryParams).toJson(QJsonDocument::Compact));
url.setQuery(query2); url.setQuery(query2);
@ -607,7 +607,7 @@ void TestRestDevices::editByDiscovery()
params.insert("deviceId", deviceId.toString()); params.insert("deviceId", deviceId.toString());
params.insert("deviceDescriptorId", descriptorId2); params.insert("deviceDescriptorId", descriptorId2);
request = QNetworkRequest(QUrl(QString("http://localhost:3000/api/v1/devices/%1").arg(deviceId.toString()))); request = QNetworkRequest(QUrl(QString("http://localhost:3333/api/v1/devices/%1").arg(deviceId.toString())));
clientSpy.clear(); clientSpy.clear();
payload = QJsonDocument::fromVariant(params).toJson(QJsonDocument::Compact); payload = QJsonDocument::fromVariant(params).toJson(QJsonDocument::Compact);
@ -675,7 +675,7 @@ void TestRestDevices::editByDiscovery()
// remove added device // remove added device
request = QNetworkRequest(QUrl(QString("http://localhost:3000/api/v1/devices/%1").arg(deviceId.toString()))); request = QNetworkRequest(QUrl(QString("http://localhost:3333/api/v1/devices/%1").arg(deviceId.toString())));
clientSpy.clear(); clientSpy.clear();
reply = nam->deleteResource(request); reply = nam->deleteResource(request);
clientSpy.wait(); clientSpy.wait();

View File

@ -57,7 +57,7 @@ void TestRestDeviceClasses::getPlugins()
// Get all plugins // Get all plugins
QNetworkRequest request; QNetworkRequest request;
request.setUrl(QUrl("http://localhost:3000/api/v1/plugins")); request.setUrl(QUrl("http://localhost:3333/api/v1/plugins"));
QNetworkReply *reply = nam->get(request); QNetworkReply *reply = nam->get(request);
clientSpy.wait(); clientSpy.wait();
QVERIFY2(clientSpy.count() == 1, "expected exactly 1 response from webserver"); QVERIFY2(clientSpy.count() == 1, "expected exactly 1 response from webserver");
@ -74,7 +74,7 @@ void TestRestDeviceClasses::getPlugins()
// Get each of thouse devices individualy // Get each of thouse devices individualy
foreach (const QVariant &plugin, pluginList) { foreach (const QVariant &plugin, pluginList) {
QVariantMap pluginMap = plugin.toMap(); QVariantMap pluginMap = plugin.toMap();
QNetworkRequest request(QUrl(QString("http://localhost:3000/api/v1/plugins/%1").arg(pluginMap.value("id").toString()))); QNetworkRequest request(QUrl(QString("http://localhost:3333/api/v1/plugins/%1").arg(pluginMap.value("id").toString())));
request.setHeader(QNetworkRequest::ContentTypeHeader, "text/json"); request.setHeader(QNetworkRequest::ContentTypeHeader, "text/json");
clientSpy.clear(); clientSpy.clear();
QNetworkReply *reply = nam->get(request); QNetworkReply *reply = nam->get(request);
@ -95,7 +95,7 @@ void TestRestDeviceClasses::getPluginConfiguration()
// Get all plugins // Get all plugins
QNetworkRequest request; QNetworkRequest request;
request.setUrl(QUrl(QString("http://localhost:3000/api/v1/plugins/%1/configuration").arg(mockPluginId.toString()))); request.setUrl(QUrl(QString("http://localhost:3333/api/v1/plugins/%1/configuration").arg(mockPluginId.toString())));
QNetworkReply *reply = nam->get(request); QNetworkReply *reply = nam->get(request);
clientSpy.wait(); clientSpy.wait();
QVERIFY2(clientSpy.count() == 1, "expected exactly 1 response from webserver"); QVERIFY2(clientSpy.count() == 1, "expected exactly 1 response from webserver");
@ -157,7 +157,7 @@ void TestRestDeviceClasses::setPluginConfiguration()
// Get plugin configuration // Get plugin configuration
QNetworkRequest request; QNetworkRequest request;
request.setUrl(QUrl(QString("http://localhost:3000/api/v1/plugins/%1/configuration").arg(pluginId.toString()))); request.setUrl(QUrl(QString("http://localhost:3333/api/v1/plugins/%1/configuration").arg(pluginId.toString())));
QNetworkReply *reply = nam->get(request); QNetworkReply *reply = nam->get(request);
clientSpy.wait(); clientSpy.wait();
QVERIFY2(clientSpy.count() == 1, "expected exactly 1 response from webserver"); QVERIFY2(clientSpy.count() == 1, "expected exactly 1 response from webserver");
@ -181,7 +181,7 @@ void TestRestDeviceClasses::setPluginConfiguration()
// Set new configuration // Set new configuration
clientSpy.clear(); clientSpy.clear();
request.setUrl(QUrl(QString("http://localhost:3000/api/v1/plugins/%1/configuration").arg(pluginId.toString()))); request.setUrl(QUrl(QString("http://localhost:3333/api/v1/plugins/%1/configuration").arg(pluginId.toString())));
reply = nam->put(request, QJsonDocument::fromVariant(newConfigurations).toJson(QJsonDocument::Compact)); reply = nam->put(request, QJsonDocument::fromVariant(newConfigurations).toJson(QJsonDocument::Compact));
clientSpy.wait(); clientSpy.wait();
QVERIFY2(clientSpy.count() == 1, "expected exactly 1 response from webserver"); QVERIFY2(clientSpy.count() == 1, "expected exactly 1 response from webserver");
@ -194,7 +194,7 @@ void TestRestDeviceClasses::setPluginConfiguration()
// check new configurations // check new configurations
clientSpy.clear(); clientSpy.clear();
request.setUrl(QUrl(QString("http://localhost:3000/api/v1/plugins/%1/configuration").arg(pluginId.toString()))); request.setUrl(QUrl(QString("http://localhost:3333/api/v1/plugins/%1/configuration").arg(pluginId.toString())));
reply = nam->get(request); reply = nam->get(request);
clientSpy.wait(); clientSpy.wait();
QVERIFY2(clientSpy.count() == 1, "expected exactly 1 response from webserver"); QVERIFY2(clientSpy.count() == 1, "expected exactly 1 response from webserver");
@ -215,7 +215,7 @@ void TestRestDeviceClasses::setPluginConfiguration()
// check new configurations after restart // check new configurations after restart
clientSpy.clear(); clientSpy.clear();
request.setUrl(QUrl(QString("http://localhost:3000/api/v1/plugins/%1/configuration").arg(pluginId.toString()))); request.setUrl(QUrl(QString("http://localhost:3333/api/v1/plugins/%1/configuration").arg(pluginId.toString())));
reply = nam->get(request); reply = nam->get(request);
clientSpy.wait(); clientSpy.wait();
QVERIFY2(clientSpy.count() == 1, "expected exactly 1 response from webserver"); QVERIFY2(clientSpy.count() == 1, "expected exactly 1 response from webserver");

View File

@ -77,7 +77,7 @@ void TestRestRules::cleanupRules()
QSignalSpy clientSpy(nam, SIGNAL(finished(QNetworkReply*))); QSignalSpy clientSpy(nam, SIGNAL(finished(QNetworkReply*)));
// Get all rules // Get all rules
QNetworkRequest request = QNetworkRequest(QUrl("http://localhost:3000/api/v1/rules")); QNetworkRequest request = QNetworkRequest(QUrl("http://localhost:3333/api/v1/rules"));
QNetworkReply *reply = nam->get(request); QNetworkReply *reply = nam->get(request);
clientSpy.wait(); clientSpy.wait();
QVERIFY2(clientSpy.count() == 1, "expected exactly 1 response from webserver"); QVERIFY2(clientSpy.count() == 1, "expected exactly 1 response from webserver");
@ -95,7 +95,7 @@ void TestRestRules::cleanupRules()
foreach (const QVariant &rule, rulesList) { foreach (const QVariant &rule, rulesList) {
clientSpy.clear(); clientSpy.clear();
QVariantMap ruleMap = rule.toMap(); QVariantMap ruleMap = rule.toMap();
QNetworkRequest request(QUrl(QString("http://localhost:3000/api/v1/rules/%1").arg(ruleMap.value("id").toString()))); QNetworkRequest request(QUrl(QString("http://localhost:3333/api/v1/rules/%1").arg(ruleMap.value("id").toString())));
request.setHeader(QNetworkRequest::ContentTypeHeader, "text/json"); request.setHeader(QNetworkRequest::ContentTypeHeader, "text/json");
reply = nam->deleteResource(request); reply = nam->deleteResource(request);
clientSpy.wait(); clientSpy.wait();
@ -331,7 +331,7 @@ void TestRestRules::addRemoveRules()
// Get rules and verify there is no rule added // Get rules and verify there is no rule added
QNetworkRequest request; QNetworkRequest request;
request.setUrl(QUrl("http://localhost:3000/api/v1/rules")); request.setUrl(QUrl("http://localhost:3333/api/v1/rules"));
QNetworkReply *reply = nam->get(request); QNetworkReply *reply = nam->get(request);
clientSpy.wait(); clientSpy.wait();
QVERIFY2(clientSpy.count() == 1, "expected exactly 1 response from webserver"); QVERIFY2(clientSpy.count() == 1, "expected exactly 1 response from webserver");
@ -348,7 +348,7 @@ void TestRestRules::addRemoveRules()
// ADD rule // ADD rule
clientSpy.clear(); clientSpy.clear();
request = QNetworkRequest(QUrl(QString("http://localhost:3000/api/v1/rules"))); request = QNetworkRequest(QUrl(QString("http://localhost:3333/api/v1/rules")));
request.setHeader(QNetworkRequest::ContentTypeHeader, "text/json"); request.setHeader(QNetworkRequest::ContentTypeHeader, "text/json");
reply = nam->post(request, QJsonDocument::fromVariant(params).toJson(QJsonDocument::Compact)); reply = nam->post(request, QJsonDocument::fromVariant(params).toJson(QJsonDocument::Compact));
clientSpy.wait(); clientSpy.wait();
@ -368,7 +368,7 @@ void TestRestRules::addRemoveRules()
// GET rule details // GET rule details
clientSpy.clear(); clientSpy.clear();
request = QNetworkRequest(QUrl(QString("http://localhost:3000/api/v1/rules/%1").arg(ruleId.toString()))); request = QNetworkRequest(QUrl(QString("http://localhost:3333/api/v1/rules/%1").arg(ruleId.toString())));
request.setHeader(QNetworkRequest::ContentTypeHeader, "text/json"); request.setHeader(QNetworkRequest::ContentTypeHeader, "text/json");
reply = nam->get(request); reply = nam->get(request);
clientSpy.wait(); clientSpy.wait();
@ -382,7 +382,7 @@ void TestRestRules::addRemoveRules()
// REMOVE rule // REMOVE rule
clientSpy.clear(); clientSpy.clear();
request = QNetworkRequest(QUrl(QString("http://localhost:3000/api/v1/rules/%1").arg(ruleId.toString()))); request = QNetworkRequest(QUrl(QString("http://localhost:3333/api/v1/rules/%1").arg(ruleId.toString())));
request.setHeader(QNetworkRequest::ContentTypeHeader, "text/json"); request.setHeader(QNetworkRequest::ContentTypeHeader, "text/json");
reply = nam->deleteResource(request); reply = nam->deleteResource(request);
clientSpy.wait(); clientSpy.wait();
@ -648,7 +648,7 @@ void TestRestRules::editRules()
// Get rules and verify there is no rule added // Get rules and verify there is no rule added
QNetworkRequest request; QNetworkRequest request;
request.setUrl(QUrl("http://localhost:3000/api/v1/rules")); request.setUrl(QUrl("http://localhost:3333/api/v1/rules"));
QNetworkReply *reply = nam->get(request); QNetworkReply *reply = nam->get(request);
clientSpy.wait(); clientSpy.wait();
QVERIFY2(clientSpy.count() == 1, "expected exactly 1 response from webserver"); QVERIFY2(clientSpy.count() == 1, "expected exactly 1 response from webserver");
@ -665,7 +665,7 @@ void TestRestRules::editRules()
// ADD rule // ADD rule
clientSpy.clear(); clientSpy.clear();
request = QNetworkRequest(QUrl(QString("http://localhost:3000/api/v1/rules"))); request = QNetworkRequest(QUrl(QString("http://localhost:3333/api/v1/rules")));
request.setHeader(QNetworkRequest::ContentTypeHeader, "text/json"); request.setHeader(QNetworkRequest::ContentTypeHeader, "text/json");
reply = nam->post(request, QJsonDocument::fromVariant(params).toJson(QJsonDocument::Compact)); reply = nam->post(request, QJsonDocument::fromVariant(params).toJson(QJsonDocument::Compact));
clientSpy.wait(); clientSpy.wait();
@ -707,7 +707,7 @@ void TestRestRules::editRules()
// EDIT rule // EDIT rule
clientSpy.clear(); clientSpy.clear();
request = QNetworkRequest(QUrl(QString("http://localhost:3000/api/v1/rules/%1").arg(ruleId.toString()))); request = QNetworkRequest(QUrl(QString("http://localhost:3333/api/v1/rules/%1").arg(ruleId.toString())));
request.setHeader(QNetworkRequest::ContentTypeHeader, "text/json"); request.setHeader(QNetworkRequest::ContentTypeHeader, "text/json");
reply = nam->put(request, QJsonDocument::fromVariant(params).toJson(QJsonDocument::Compact)); reply = nam->put(request, QJsonDocument::fromVariant(params).toJson(QJsonDocument::Compact));
clientSpy.wait(); clientSpy.wait();
@ -718,7 +718,7 @@ void TestRestRules::editRules()
if (expectedStatusCode == 200) { if (expectedStatusCode == 200) {
// get edit rule and verify params // get edit rule and verify params
clientSpy.clear(); clientSpy.clear();
request = QNetworkRequest(QUrl(QString("http://localhost:3000/api/v1/rules"))); request = QNetworkRequest(QUrl(QString("http://localhost:3333/api/v1/rules")));
request.setHeader(QNetworkRequest::ContentTypeHeader, "text/json"); request.setHeader(QNetworkRequest::ContentTypeHeader, "text/json");
reply = nam->get(request); reply = nam->get(request);
clientSpy.wait(); clientSpy.wait();
@ -732,7 +732,7 @@ void TestRestRules::editRules()
// REMOVE rule // REMOVE rule
clientSpy.clear(); clientSpy.clear();
request = QNetworkRequest(QUrl(QString("http://localhost:3000/api/v1/rules/%1").arg(ruleId.toString()))); request = QNetworkRequest(QUrl(QString("http://localhost:3333/api/v1/rules/%1").arg(ruleId.toString())));
request.setHeader(QNetworkRequest::ContentTypeHeader, "text/json"); request.setHeader(QNetworkRequest::ContentTypeHeader, "text/json");
reply = nam->deleteResource(request); reply = nam->deleteResource(request);
clientSpy.wait(); clientSpy.wait();
@ -744,7 +744,7 @@ void TestRestRules::editRules()
// check if removed // check if removed
clientSpy.clear(); clientSpy.clear();
request = QNetworkRequest(QUrl(QString("http://localhost:3000/api/v1/rules/%1").arg(ruleId.toString()))); request = QNetworkRequest(QUrl(QString("http://localhost:3333/api/v1/rules/%1").arg(ruleId.toString())));
request.setHeader(QNetworkRequest::ContentTypeHeader, "text/json"); request.setHeader(QNetworkRequest::ContentTypeHeader, "text/json");
reply = nam->get(request); reply = nam->get(request);
clientSpy.wait(); clientSpy.wait();
@ -778,7 +778,7 @@ void TestRestRules::enableDisableRule()
QSignalSpy clientSpy(nam, SIGNAL(finished(QNetworkReply*))); QSignalSpy clientSpy(nam, SIGNAL(finished(QNetworkReply*)));
// ADD rule // ADD rule
QNetworkRequest request = QNetworkRequest(QUrl(QString("http://localhost:3000/api/v1/rules"))); QNetworkRequest request = QNetworkRequest(QUrl(QString("http://localhost:3333/api/v1/rules")));
request.setHeader(QNetworkRequest::ContentTypeHeader, "text/json"); request.setHeader(QNetworkRequest::ContentTypeHeader, "text/json");
QNetworkReply *reply = nam->post(request, QJsonDocument::fromVariant(addRuleParams).toJson(QJsonDocument::Compact)); QNetworkReply *reply = nam->post(request, QJsonDocument::fromVariant(addRuleParams).toJson(QJsonDocument::Compact));
clientSpy.wait(); clientSpy.wait();
@ -797,7 +797,7 @@ void TestRestRules::enableDisableRule()
// ENABLE rule // ENABLE rule
clientSpy.clear(); clientSpy.clear();
request = QNetworkRequest(QUrl(QString("http://localhost:3000/api/v1/rules/%1/enable").arg(ruleId.toString()))); request = QNetworkRequest(QUrl(QString("http://localhost:3333/api/v1/rules/%1/enable").arg(ruleId.toString())));
reply = nam->post(request, QByteArray()); reply = nam->post(request, QByteArray());
clientSpy.wait(); clientSpy.wait();
QVERIFY2(clientSpy.count() == 1, "expected exactly 1 response from webserver"); QVERIFY2(clientSpy.count() == 1, "expected exactly 1 response from webserver");
@ -821,7 +821,7 @@ void TestRestRules::enableDisableRule()
// DISABLE the rule // DISABLE the rule
clientSpy.clear(); clientSpy.clear();
request = QNetworkRequest(QUrl(QString("http://localhost:3000/api/v1/rules/%1/disable").arg(ruleId.toString()))); request = QNetworkRequest(QUrl(QString("http://localhost:3333/api/v1/rules/%1/disable").arg(ruleId.toString())));
reply = nam->post(request, QByteArray()); reply = nam->post(request, QByteArray());
clientSpy.wait(); clientSpy.wait();
QVERIFY2(clientSpy.count() == 1, "expected exactly 1 response from webserver"); QVERIFY2(clientSpy.count() == 1, "expected exactly 1 response from webserver");
@ -844,7 +844,7 @@ void TestRestRules::enableDisableRule()
// ENABLE again // ENABLE again
clientSpy.clear(); clientSpy.clear();
request = QNetworkRequest(QUrl(QString("http://localhost:3000/api/v1/rules/%1/enable").arg(ruleId.toString()))); request = QNetworkRequest(QUrl(QString("http://localhost:3333/api/v1/rules/%1/enable").arg(ruleId.toString())));
reply = nam->post(request, QByteArray()); reply = nam->post(request, QByteArray());
clientSpy.wait(); clientSpy.wait();
QVERIFY2(clientSpy.count() == 1, "expected exactly 1 response from webserver"); QVERIFY2(clientSpy.count() == 1, "expected exactly 1 response from webserver");
@ -872,7 +872,7 @@ void TestRestRules::getRules()
// Get all rules // Get all rules
QNetworkRequest request; QNetworkRequest request;
request.setUrl(QUrl("http://localhost:3000/api/v1/rules")); request.setUrl(QUrl("http://localhost:3333/api/v1/rules"));
QNetworkReply *reply = nam->get(request); QNetworkReply *reply = nam->get(request);
clientSpy.wait(); clientSpy.wait();
QVERIFY2(clientSpy.count() == 1, "expected exactly 1 response from webserver"); QVERIFY2(clientSpy.count() == 1, "expected exactly 1 response from webserver");
@ -890,7 +890,7 @@ void TestRestRules::getRules()
// Get each of thouse rules individualy // Get each of thouse rules individualy
foreach (const QVariant &rule, rulesList) { foreach (const QVariant &rule, rulesList) {
QVariantMap ruleMap = rule.toMap(); QVariantMap ruleMap = rule.toMap();
QNetworkRequest request(QUrl(QString("http://localhost:3000/api/v1/rules/%1").arg(ruleMap.value("id").toString()))); QNetworkRequest request(QUrl(QString("http://localhost:3333/api/v1/rules/%1").arg(ruleMap.value("id").toString())));
request.setHeader(QNetworkRequest::ContentTypeHeader, "text/json"); request.setHeader(QNetworkRequest::ContentTypeHeader, "text/json");
clientSpy.clear(); clientSpy.clear();
QNetworkReply *reply = nam->get(request); QNetworkReply *reply = nam->get(request);

View File

@ -52,7 +52,7 @@ void TestRestVendors::getVendors()
// Get all vendors // Get all vendors
QNetworkRequest request; QNetworkRequest request;
request.setUrl(QUrl("http://localhost:3000/api/v1/vendors")); request.setUrl(QUrl("http://localhost:3333/api/v1/vendors"));
QNetworkReply *reply = nam->get(request); QNetworkReply *reply = nam->get(request);
clientSpy.wait(); clientSpy.wait();
QVERIFY2(clientSpy.count() == 1, "expected exactly 1 response from webserver"); QVERIFY2(clientSpy.count() == 1, "expected exactly 1 response from webserver");
@ -71,7 +71,7 @@ void TestRestVendors::getVendors()
// Get each of thouse vendors individualy // Get each of thouse vendors individualy
foreach (const QVariant &vendor, vendorList) { foreach (const QVariant &vendor, vendorList) {
QVariantMap vendorMap = vendor.toMap(); QVariantMap vendorMap = vendor.toMap();
QNetworkRequest request(QUrl(QString("http://localhost:3000/api/v1/vendors/%1").arg(vendorMap.value("id").toString()))); QNetworkRequest request(QUrl(QString("http://localhost:3333/api/v1/vendors/%1").arg(vendorMap.value("id").toString())));
request.setHeader(QNetworkRequest::ContentTypeHeader, "text/json"); request.setHeader(QNetworkRequest::ContentTypeHeader, "text/json");
clientSpy.clear(); clientSpy.clear();
QNetworkReply *reply = nam->get(request); QNetworkReply *reply = nam->get(request);

View File

@ -63,7 +63,7 @@ private:
void TestWebserver::httpVersion() void TestWebserver::httpVersion()
{ {
QTcpSocket *socket = new QTcpSocket(this); QTcpSocket *socket = new QTcpSocket(this);
socket->connectToHost(QHostAddress("127.0.0.1"), 3000); socket->connectToHost(QHostAddress("127.0.0.1"), 3333);
bool connected = socket->waitForConnected(1000); bool connected = socket->waitForConnected(1000);
QVERIFY2(connected, "could not connect to webserver."); QVERIFY2(connected, "could not connect to webserver.");
@ -100,7 +100,7 @@ void TestWebserver::multiPackageMessage()
{ {
QTcpSocket *socket = new QTcpSocket(this); QTcpSocket *socket = new QTcpSocket(this);
socket->connectToHost(QHostAddress("127.0.0.1"), 3000); socket->connectToHost(QHostAddress("127.0.0.1"), 3333);
bool connected = socket->waitForConnected(1000); bool connected = socket->waitForConnected(1000);
QVERIFY2(connected, "could not connect to webserver."); QVERIFY2(connected, "could not connect to webserver.");
@ -173,7 +173,7 @@ void TestWebserver::checkAllowedMethodCall()
QSignalSpy clientSpy(nam, SIGNAL(finished(QNetworkReply*))); QSignalSpy clientSpy(nam, SIGNAL(finished(QNetworkReply*)));
QNetworkRequest request; QNetworkRequest request;
request.setUrl(QUrl("http://localhost:3000")); request.setUrl(QUrl("http://localhost:3333"));
QNetworkReply *reply = 0; QNetworkReply *reply = 0;
if (method == "GET") { if (method == "GET") {
@ -242,7 +242,7 @@ void TestWebserver::badRequests()
QFETCH(int, expectedStatusCode); QFETCH(int, expectedStatusCode);
QTcpSocket *socket = new QTcpSocket(this); QTcpSocket *socket = new QTcpSocket(this);
socket->connectToHost(QHostAddress("127.0.0.1"), 3000); socket->connectToHost(QHostAddress("127.0.0.1"), 3333);
bool connected = socket->waitForConnected(1000); bool connected = socket->waitForConnected(1000);
QVERIFY2(connected, "could not connect to webserver."); QVERIFY2(connected, "could not connect to webserver.");
@ -291,7 +291,7 @@ void TestWebserver::getFiles()
QSignalSpy clientSpy(nam, SIGNAL(finished(QNetworkReply*))); QSignalSpy clientSpy(nam, SIGNAL(finished(QNetworkReply*)));
QNetworkRequest request; QNetworkRequest request;
request.setUrl(QUrl("http://localhost:3000" + query)); request.setUrl(QUrl("http://localhost:3333" + query));
QNetworkReply *reply = nam->get(request); QNetworkReply *reply = nam->get(request);
clientSpy.wait(); clientSpy.wait();

View File

@ -54,7 +54,7 @@ void TestWebSocketServer::testHandshake()
{ {
QWebSocket *socket = new QWebSocket("guh tests", QWebSocketProtocol::Version13); QWebSocket *socket = new QWebSocket("guh tests", QWebSocketProtocol::Version13);
QSignalSpy spy(socket, SIGNAL(textMessageReceived(QString))); QSignalSpy spy(socket, SIGNAL(textMessageReceived(QString)));
socket->open(QUrl(QStringLiteral("ws://localhost:3001"))); socket->open(QUrl(QStringLiteral("ws://localhost:4444")));
spy.wait(); spy.wait();
QVERIFY2(spy.count() > 0, "Did not get the handshake message upon connect."); QVERIFY2(spy.count() > 0, "Did not get the handshake message upon connect.");
QJsonDocument jsonDoc = QJsonDocument::fromJson(spy.first().first().toByteArray()); QJsonDocument jsonDoc = QJsonDocument::fromJson(spy.first().first().toByteArray());
@ -73,7 +73,7 @@ void TestWebSocketServer::pingTest()
{ {
QWebSocket *socket = new QWebSocket("guh tests", QWebSocketProtocol::Version13); QWebSocket *socket = new QWebSocket("guh tests", QWebSocketProtocol::Version13);
QSignalSpy spyConnection(socket, SIGNAL(connected())); QSignalSpy spyConnection(socket, SIGNAL(connected()));
socket->open(QUrl(QStringLiteral("ws://localhost:3001"))); socket->open(QUrl(QStringLiteral("ws://localhost:4444")));
spyConnection.wait(); spyConnection.wait();
QVERIFY2(spyConnection.count() > 0, "not connected"); QVERIFY2(spyConnection.count() > 0, "not connected");

View File

@ -1,9 +1,8 @@
include(../../../guh.pri) include(../../../guh.pri)
include(../autotests.pri) include(../autotests.pri)
TARGET = websocketserver QT += websockets
TARGET = websocketserver
SOURCES += testwebsocketserver.cpp
contains(DEFINES, WEBSOCKET){
QT += websockets
SOURCES += testwebsocketserver.cpp
}