make tests work again
This commit is contained in:
parent
4b3518661f
commit
57ba2b25c2
@ -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)
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
|
||||
Reference in New Issue
Block a user