make tests work again

This commit is contained in:
Michael Zanetti 2017-09-24 21:59:43 +02:00
parent 4b3518661f
commit 57ba2b25c2
5 changed files with 38 additions and 18 deletions

View File

@ -218,11 +218,11 @@ void ServerManager::webServerConfigurationChanged(const QString &id)
server->stopServer();
server->reconfigureServer(config);
} else {
qDebug(dcConnection) << "Received a Web Server config change event but don't have a Web Server instance for it.";
qDebug(dcConnection) << "Received a Web Server config change event but don't have a Web Server instance for it. Creating new WebServer instance on" << config.address.toString() << config.port << "(SSL:" << config.sslEnabled << ")";
server = new WebServer(config, m_sslConfiguration, this);
m_restServer->registerWebserver(server);
m_webServers.insert(config.id, server);
}
server->startServer();
}
void ServerManager::webServerConfigurationRemoved(const QString &id)

View File

@ -47,12 +47,8 @@ public:
JsonRPCServer *jsonServer() const;
RestServer *restServer() const;
// Transports
WebServer* webServer() const;
WebSocketServer* webSocketServer() const;
BluetoothServer* bluetoothServer() const;
TcpServer *tcpServer() const;
MockTcpServer *mockTcpServer() const;
private slots:

View File

@ -217,7 +217,7 @@ void WebServer::incomingConnection(qintptr socketDescriptor)
QSslSocket *socket = new QSslSocket();
if (!socket->setSocketDescriptor(socketDescriptor)) {
qCWarning(dcConnection) << "Could not set socket descriptor. Rejecting connection.";
qCWarning(dcWebServer()) << "Could not set socket descriptor. Rejecting connection.";
socket->close();
delete socket;
return;
@ -228,7 +228,7 @@ void WebServer::incomingConnection(qintptr socketDescriptor)
foreach (WebServerClient *client, m_webServerClients) {
if (client->address() == socket->peerAddress()) {
if (client->connections().count() >= 50) {
qCWarning(dcConnection) << QString("Maximum connections for this client reached: rejecting connection from client %1:%2").arg(socket->peerAddress().toString()).arg(socket->peerPort());
qCWarning(dcWebServer()) << QString("Maximum connections for this client reached: rejecting connection from client %1:%2").arg(socket->peerAddress().toString()).arg(socket->peerPort());
socket->close();
delete socket;
return;
@ -249,7 +249,7 @@ void WebServer::incomingConnection(qintptr socketDescriptor)
QUuid clientId = QUuid::createUuid();
m_clientList.insert(clientId, socket);
qCDebug(dcConnection) << QString("Webserver client %1:%2 connected").arg(socket->peerAddress().toString()).arg(socket->peerPort());
qCDebug(dcWebServer()) << QString("Webserver client %1:%2 connected").arg(socket->peerAddress().toString()).arg(socket->peerPort());
if (m_configuration.sslEnabled) {
// configure client connection
@ -448,7 +448,7 @@ void WebServer::onDisconnected()
}
}
qCDebug(dcConnection) << QString("Webserver client disonnected %1:%2").arg(socket->peerAddress().toString()).arg(socket->peerPort());
qCDebug(dcWebServer) << QString("Webserver client disonnected %1:%2").arg(socket->peerAddress().toString()).arg(socket->peerPort());
// clean up
QUuid clientId = m_clientList.key(socket);
@ -462,7 +462,7 @@ void WebServer::onDisconnected()
void WebServer::onEncrypted()
{
QSslSocket* socket = static_cast<QSslSocket *>(sender());
qCDebug(dcConnection) << QString("Encrypted connection %1:%2 successfully established.").arg(socket->peerAddress().toString()).arg(socket->peerPort());
qCDebug(dcWebServer()) << QString("Encrypted connection %1:%2 successfully established.").arg(socket->peerAddress().toString()).arg(socket->peerPort());
connect(socket, SIGNAL(readyRead()), this, SLOT(readClient()));
connect(socket, SIGNAL(disconnected()), this, SLOT(onDisconnected()));
connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(onError(QAbstractSocket::SocketError)));
@ -474,7 +474,7 @@ void WebServer::onError(QAbstractSocket::SocketError error)
{
Q_UNUSED(error)
QSslSocket* socket = static_cast<QSslSocket *>(sender());
qCWarning(dcConnection) << QString("Client socket error %1:%2 ->").arg(socket->peerAddress().toString()).arg(socket->peerPort()) << socket->errorString();
qCWarning(dcWebServer()) << QString("Client socket error %1:%2 ->").arg(socket->peerAddress().toString()).arg(socket->peerPort()) << socket->errorString();
}
void WebServer::onAvahiServiceStateChanged(const QtAvahiService::QtAvahiServiceState &state)
@ -504,15 +504,15 @@ void WebServer::reconfigureServer(const WebServerConfiguration &config)
bool WebServer::startServer()
{
if (!listen(m_configuration.address, m_configuration.port)) {
qCWarning(dcConnection) << "Webserver could not listen on" << m_configuration.address.toString() << m_configuration.port;
qCWarning(dcWebServer()) << "Webserver could not listen on" << m_configuration.address.toString() << m_configuration.port << errorString();
m_enabled = false;
return false;
}
if (m_configuration.sslEnabled) {
qCDebug(dcConnection) << "Started webserver on" << QString("https://%1:%2").arg(m_configuration.address.toString()).arg(m_configuration.port);
qCDebug(dcWebServer()) << "Started webserver on" << QString("https://%1:%2").arg(m_configuration.address.toString()).arg(m_configuration.port);
} else {
qCDebug(dcConnection) << "Started webserver on" << QString("http://%1:%2").arg(m_configuration.address.toString()).arg(m_configuration.port);
qCDebug(dcWebServer()) << "Started webserver on" << QString("http://%1:%2").arg(m_configuration.address.toString()).arg(m_configuration.port);
}
// Note: reversed order
@ -539,7 +539,7 @@ bool WebServer::stopServer()
close();
m_enabled = false;
qCDebug(dcConnection) << "Webserver closed.";
qCDebug(dcWebServer()) << "Webserver closed.";
return true;
}

View File

@ -128,6 +128,7 @@ GuhTestBase::GuhTestBase(QObject *parent) :
void GuhTestBase::initTestCase()
{
qDebug() << "GuhTestBase starting.";
// If testcase asserts cleanup won't do. Lets clear any previous test run settings leftovers
GuhSettings rulesSettings(GuhSettings::SettingsRoleRules);
rulesSettings.clear();
@ -143,7 +144,7 @@ void GuhTestBase::initTestCase()
s_loggingFilters.insert("DeviceManager", true);
s_loggingFilters.insert("RuleEngine", true);
s_loggingFilters.insert("Hardware", false);
s_loggingFilters.insert("Connection", false);
s_loggingFilters.insert("Connection", true);
s_loggingFilters.insert("LogEngine", false);
s_loggingFilters.insert("TcpServer", false);
s_loggingFilters.insert("WebServer", false);

View File

@ -43,6 +43,8 @@ class TestWebserver: public GuhTestBase
Q_OBJECT
private slots:
void initTestCase();
void coverageCalls();
void httpVersion();
@ -74,6 +76,26 @@ public slots:
}
};
void TestWebserver::initTestCase()
{
GuhTestBase::initTestCase();
qDebug() << "TestWebserver starting";
foreach (const WebServerConfiguration &config, GuhCore::instance()->configuration()->webServerConfigurations()) {
if (config.port == 3333 && (config.address == QHostAddress("127.0.0.1") || config.address == QHostAddress("0.0.0.0"))) {
qDebug() << "Already have a webserver listening on 127.0.0.1:3333";
return;
}
}
qDebug() << "Creating new webserver instance on 127.0.0.1:3333";
WebServerConfiguration config;
config.address = QHostAddress("0.0.0.0");
config.port = 3333;
config.sslEnabled = true;
GuhCore::instance()->configuration()->setWebServerConfiguration(config);
}
void TestWebserver::coverageCalls()
{
HttpReply *reply = new HttpReply(this);
@ -91,7 +113,7 @@ void TestWebserver::httpVersion()
socket->connectToHostEncrypted("127.0.0.1", 3333);
QSignalSpy encryptedSpy(socket, SIGNAL(encrypted()));
bool encrypted = encryptedSpy.wait();
QVERIFY2(encrypted, "could not created encrypte webserver connection.");
QVERIFY2(encrypted, "could not created encrypted webserver connection.");
QSignalSpy clientSpy(socket, SIGNAL(readyRead()));
@ -335,6 +357,7 @@ void TestWebserver::getOptions()
QNetworkReply *reply = nam.sendCustomRequest(request, "OPTIONS");
clientSpy.wait();
qDebug() << "reply:" << reply->isFinished();
QCOMPARE(clientSpy.count(), 1);
bool ok = false;