Improve code coverage and debug server handler
This commit is contained in:
parent
568cb749b1
commit
eafa59b32f
@ -223,6 +223,7 @@ QByteArray DebugServerHandler::createDebugXmlDocument()
|
|||||||
|
|
||||||
writer.writeStartElement("tr");
|
writer.writeStartElement("tr");
|
||||||
writer.writeTextElement("th", QCoreApplication::translate("main", "Log database"));
|
writer.writeTextElement("th", QCoreApplication::translate("main", "Log database"));
|
||||||
|
writer.writeTextElement("td", GuhSettings::logPath());
|
||||||
writer.writeStartElement("td");
|
writer.writeStartElement("td");
|
||||||
writer.writeStartElement("form");
|
writer.writeStartElement("form");
|
||||||
writer.writeAttribute("method", "get");
|
writer.writeAttribute("method", "get");
|
||||||
@ -236,7 +237,8 @@ QByteArray DebugServerHandler::createDebugXmlDocument()
|
|||||||
writer.writeEndElement(); // tr
|
writer.writeEndElement(); // tr
|
||||||
|
|
||||||
writer.writeStartElement("tr");
|
writer.writeStartElement("tr");
|
||||||
writer.writeTextElement("th", QCoreApplication::translate("main", "Syslog"));
|
writer.writeTextElement("th", QCoreApplication::translate("main", "System logs"));
|
||||||
|
writer.writeTextElement("td", "/var/log/syslog");
|
||||||
writer.writeStartElement("td");
|
writer.writeStartElement("td");
|
||||||
writer.writeStartElement("form");
|
writer.writeStartElement("form");
|
||||||
writer.writeAttribute("method", "get");
|
writer.writeAttribute("method", "get");
|
||||||
@ -262,6 +264,7 @@ QByteArray DebugServerHandler::createDebugXmlDocument()
|
|||||||
|
|
||||||
writer.writeStartElement("tr");
|
writer.writeStartElement("tr");
|
||||||
writer.writeTextElement("th", QCoreApplication::translate("main", "Guhd settings"));
|
writer.writeTextElement("th", QCoreApplication::translate("main", "Guhd settings"));
|
||||||
|
writer.writeTextElement("td", GuhSettings(GuhSettings::SettingsRoleGlobal).fileName());
|
||||||
writer.writeStartElement("td");
|
writer.writeStartElement("td");
|
||||||
writer.writeStartElement("form");
|
writer.writeStartElement("form");
|
||||||
writer.writeAttribute("method", "get");
|
writer.writeAttribute("method", "get");
|
||||||
@ -276,6 +279,7 @@ QByteArray DebugServerHandler::createDebugXmlDocument()
|
|||||||
|
|
||||||
writer.writeStartElement("tr");
|
writer.writeStartElement("tr");
|
||||||
writer.writeTextElement("th", QCoreApplication::translate("main", "Device settings"));
|
writer.writeTextElement("th", QCoreApplication::translate("main", "Device settings"));
|
||||||
|
writer.writeTextElement("td", GuhSettings(GuhSettings::SettingsRoleDevices).fileName());
|
||||||
writer.writeStartElement("td");
|
writer.writeStartElement("td");
|
||||||
writer.writeStartElement("form");
|
writer.writeStartElement("form");
|
||||||
writer.writeAttribute("method", "get");
|
writer.writeAttribute("method", "get");
|
||||||
@ -290,6 +294,7 @@ QByteArray DebugServerHandler::createDebugXmlDocument()
|
|||||||
|
|
||||||
writer.writeStartElement("tr");
|
writer.writeStartElement("tr");
|
||||||
writer.writeTextElement("th", QCoreApplication::translate("main", "Device state settings"));
|
writer.writeTextElement("th", QCoreApplication::translate("main", "Device state settings"));
|
||||||
|
writer.writeTextElement("td", GuhSettings(GuhSettings::SettingsRoleDeviceStates).fileName());
|
||||||
writer.writeStartElement("td");
|
writer.writeStartElement("td");
|
||||||
writer.writeStartElement("form");
|
writer.writeStartElement("form");
|
||||||
writer.writeAttribute("method", "get");
|
writer.writeAttribute("method", "get");
|
||||||
@ -305,6 +310,7 @@ QByteArray DebugServerHandler::createDebugXmlDocument()
|
|||||||
|
|
||||||
writer.writeStartElement("tr");
|
writer.writeStartElement("tr");
|
||||||
writer.writeTextElement("th", QCoreApplication::translate("main", "Rules settings"));
|
writer.writeTextElement("th", QCoreApplication::translate("main", "Rules settings"));
|
||||||
|
writer.writeTextElement("td", GuhSettings(GuhSettings::SettingsRoleRules).fileName());
|
||||||
writer.writeStartElement("td");
|
writer.writeStartElement("td");
|
||||||
writer.writeStartElement("form");
|
writer.writeStartElement("form");
|
||||||
writer.writeAttribute("method", "get");
|
writer.writeAttribute("method", "get");
|
||||||
@ -317,6 +323,21 @@ QByteArray DebugServerHandler::createDebugXmlDocument()
|
|||||||
writer.writeEndElement(); // td
|
writer.writeEndElement(); // td
|
||||||
writer.writeEndElement(); // tr
|
writer.writeEndElement(); // tr
|
||||||
|
|
||||||
|
writer.writeStartElement("tr");
|
||||||
|
writer.writeTextElement("th", QCoreApplication::translate("main", "Plugins settings"));
|
||||||
|
writer.writeTextElement("td", GuhSettings(GuhSettings::SettingsRolePlugins).fileName());
|
||||||
|
writer.writeStartElement("td");
|
||||||
|
writer.writeStartElement("form");
|
||||||
|
writer.writeAttribute("method", "get");
|
||||||
|
writer.writeAttribute("action", "/debug/settings/plugins");
|
||||||
|
writer.writeStartElement("button");
|
||||||
|
writer.writeAttribute("type", "submit");
|
||||||
|
writer.writeCharacters(QCoreApplication::translate("main", "Download"));
|
||||||
|
writer.writeEndElement(); // button
|
||||||
|
writer.writeEndElement(); // form
|
||||||
|
writer.writeEndElement(); // td
|
||||||
|
writer.writeEndElement(); // tr
|
||||||
|
|
||||||
writer.writeEndElement(); // table
|
writer.writeEndElement(); // table
|
||||||
|
|
||||||
writer.writeEmptyElement("hr");
|
writer.writeEmptyElement("hr");
|
||||||
@ -385,17 +406,52 @@ QByteArray DebugServerHandler::loadResourceFile(const QString &resourceFileName)
|
|||||||
return inputStream.readAll().toUtf8();
|
return inputStream.readAll().toUtf8();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DebugServerHandler::resourceFileExits(const QString &resourceFileName)
|
QString DebugServerHandler::getResourceFileName(const QString &requestPath)
|
||||||
{
|
{
|
||||||
QFile resourceFile(QString(":%1").arg(resourceFileName));
|
return QString(requestPath).remove("/debug");
|
||||||
|
}
|
||||||
|
|
||||||
|
bool DebugServerHandler::resourceFileExits(const QString &requestPath)
|
||||||
|
{
|
||||||
|
QFile resourceFile(QString(":%1").arg(getResourceFileName(requestPath)));
|
||||||
return resourceFile.exists();
|
return resourceFile.exists();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HttpReply *DebugServerHandler::processDebugFileRequest(const QString &requestPath)
|
||||||
|
{
|
||||||
|
// Here we already know that the resource file exists
|
||||||
|
QString resourceFileName = getResourceFileName(requestPath);
|
||||||
|
QByteArray data = loadResourceFile(resourceFileName);
|
||||||
|
|
||||||
|
// Create reply for resource file
|
||||||
|
HttpReply *reply = RestResource::createSuccessReply();
|
||||||
|
reply->setPayload(data);
|
||||||
|
|
||||||
|
// Check content type
|
||||||
|
if (resourceFileName.endsWith(".css")) {
|
||||||
|
reply->setHeader(HttpReply::ContentTypeHeader, "text/css; charset=\"utf-8\";");
|
||||||
|
} else if (resourceFileName.endsWith(".svg")) {
|
||||||
|
reply->setHeader(HttpReply::ContentTypeHeader, "image/svg+xml; charset=\"utf-8\";");
|
||||||
|
}
|
||||||
|
|
||||||
|
return reply;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
HttpReply *DebugServerHandler::processDebugRequest(const QString &requestPath)
|
HttpReply *DebugServerHandler::processDebugRequest(const QString &requestPath)
|
||||||
{
|
{
|
||||||
qCDebug(dcWebServer()) << "Debug request for" << requestPath;
|
qCDebug(dcWebServer()) << "Debug request for" << requestPath;
|
||||||
|
|
||||||
|
// Check if debug page request
|
||||||
|
if (requestPath == "/debug" || requestPath == "/debug/") {
|
||||||
|
qCDebug(dcWebServer()) << "Create debug interface page";
|
||||||
|
// Fallback default debug page
|
||||||
|
HttpReply *reply = RestResource::createSuccessReply();
|
||||||
|
reply->setHeader(HttpReply::ContentTypeHeader, "text/html");
|
||||||
|
reply->setPayload(createDebugXmlDocument());
|
||||||
|
return reply;
|
||||||
|
}
|
||||||
|
|
||||||
// Check if this is a logdb requested
|
// Check if this is a logdb requested
|
||||||
if (requestPath.startsWith("/debug/logdb.sql")) {
|
if (requestPath.startsWith("/debug/logdb.sql")) {
|
||||||
qCDebug(dcWebServer()) << "Loading" << GuhSettings::logPath();
|
qCDebug(dcWebServer()) << "Loading" << GuhSettings::logPath();
|
||||||
@ -573,66 +629,46 @@ HttpReply *DebugServerHandler::processDebugRequest(const QString &requestPath)
|
|||||||
reply->setPayload(settingsFileData);
|
reply->setPayload(settingsFileData);
|
||||||
return reply;
|
return reply;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Check if a resource file was requested
|
if (requestPath.startsWith("/debug/settings/plugins")) {
|
||||||
|
QString settingsFileName = GuhSettings(GuhSettings::SettingsRolePlugins).fileName();
|
||||||
|
qCDebug(dcWebServer()) << "Loading" << settingsFileName;
|
||||||
|
QFile settingsFile(settingsFileName);
|
||||||
|
if (!settingsFile.exists()) {
|
||||||
|
qCWarning(dcWebServer()) << "Could not read file for debug download" << settingsFileName << "file does not exist.";
|
||||||
|
HttpReply *reply = RestResource::createErrorReply(HttpReply::NotFound);
|
||||||
|
reply->setHeader(HttpReply::ContentTypeHeader, "text/html");
|
||||||
|
reply->setPayload(createErrorXmlDocument(HttpReply::NotFound, QCoreApplication::translate("main", "Could not find file") + " " + settingsFileName));
|
||||||
|
return reply;
|
||||||
|
}
|
||||||
|
|
||||||
if (requestPath.startsWith("/debug/styles.css")) {
|
if (!settingsFile.open(QFile::ReadOnly)) {
|
||||||
QString resourceFileName = "/styles.css";
|
qCWarning(dcWebServer()) << "Could not read file for debug download" << settingsFileName;
|
||||||
// Check if exists
|
HttpReply *reply = RestResource::createErrorReply(HttpReply::Forbidden);
|
||||||
if (!resourceFileExits(resourceFileName)) {
|
reply->setHeader(HttpReply::ContentTypeHeader, "text/html");
|
||||||
qCWarning(dcWebServer()) << "The requested resource file" << resourceFileName << "does not exist";
|
reply->setPayload(createErrorXmlDocument(HttpReply::NotFound, QCoreApplication::translate("main", "Could not open file") + " " + settingsFileName));
|
||||||
HttpReply *reply = RestResource::createErrorReply(HttpReply::NotFound);
|
return reply;
|
||||||
|
}
|
||||||
|
|
||||||
|
QByteArray settingsFileData = settingsFile.readAll();
|
||||||
|
settingsFile.close();
|
||||||
|
|
||||||
|
HttpReply *reply = RestResource::createSuccessReply();
|
||||||
reply->setHeader(HttpReply::ContentTypeHeader, "text/plain");
|
reply->setHeader(HttpReply::ContentTypeHeader, "text/plain");
|
||||||
reply->setPayload(createErrorXmlDocument(HttpReply::NotFound, QCoreApplication::translate("main", "Could not find find") + " " + resourceFileName));
|
reply->setPayload(settingsFileData);
|
||||||
return reply;
|
return reply;
|
||||||
}
|
}
|
||||||
|
|
||||||
QByteArray data = loadResourceFile(resourceFileName);
|
|
||||||
|
|
||||||
// Check if content loaded
|
|
||||||
if (data.isEmpty()) {
|
|
||||||
qCWarning(dcWebServer()) << "Empty resource file" << resourceFileName;
|
|
||||||
HttpReply *reply = RestResource::createErrorReply(HttpReply::NoContent);
|
|
||||||
reply->setHeader(HttpReply::ContentTypeHeader, "text/plain");
|
|
||||||
reply->setPayload(createErrorXmlDocument(HttpReply::NotFound, QCoreApplication::translate("main", "Could not find find") + " " + resourceFileName));
|
|
||||||
return reply;
|
|
||||||
}
|
|
||||||
|
|
||||||
HttpReply *reply = RestResource::createSuccessReply();
|
|
||||||
reply->setHeader(HttpReply::ContentTypeHeader, "text/css; charset=\"utf-8\";");
|
|
||||||
reply->setPayload(data);
|
|
||||||
return reply;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Check if this is a resource file request
|
||||||
|
if (resourceFileExits(requestPath)) {
|
||||||
|
return processDebugFileRequest(requestPath);
|
||||||
|
}
|
||||||
|
|
||||||
|
// If nothing matches, redirect to /debug page
|
||||||
// if (!fileName.endsWith(".png"))
|
qCWarning(dcWebServer()) << "Resource for debug interface not found. Redirecting to /debug";
|
||||||
// return RestResource::createErrorReply(HttpReply::NotFound);
|
HttpReply *reply = RestResource::createErrorReply(HttpReply::PermanentRedirect);
|
||||||
|
reply->setHeader(HttpReply::LocationHeader, "/debug");
|
||||||
// QByteArray imageData;
|
|
||||||
|
|
||||||
// QImage image(":" + fileName);
|
|
||||||
// QBuffer buffer(&imageData);
|
|
||||||
// buffer.open(QIODevice::WriteOnly);
|
|
||||||
// image.save(&buffer, "png");
|
|
||||||
|
|
||||||
// if (!imageData.isEmpty()) {
|
|
||||||
// HttpReply *reply = RestResource::createSuccessReply();
|
|
||||||
// reply->setHeader(HttpReply::ContentTypeHeader, "image/png");
|
|
||||||
// reply->setPayload(imageData);
|
|
||||||
// return reply;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// return RestResource::createErrorReply(HttpReply::NotFound);
|
|
||||||
|
|
||||||
|
|
||||||
qCDebug(dcWebServer()) << "Create debug interface page";
|
|
||||||
|
|
||||||
// Fallback default debug page
|
|
||||||
HttpReply *reply = RestResource::createSuccessReply();
|
|
||||||
reply->setHeader(HttpReply::ContentTypeHeader, "text/html");
|
|
||||||
reply->setPayload(createDebugXmlDocument());
|
|
||||||
return reply;
|
return reply;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -39,7 +39,11 @@ private:
|
|||||||
QByteArray createDebugXmlDocument();
|
QByteArray createDebugXmlDocument();
|
||||||
QByteArray createErrorXmlDocument(HttpReply::HttpStatusCode statusCode, const QString &errorMessage);
|
QByteArray createErrorXmlDocument(HttpReply::HttpStatusCode statusCode, const QString &errorMessage);
|
||||||
QByteArray loadResourceFile(const QString &resourceFileName);
|
QByteArray loadResourceFile(const QString &resourceFileName);
|
||||||
bool resourceFileExits(const QString &resourceFileName);
|
QString getResourceFileName(const QString &requestPath);
|
||||||
|
bool resourceFileExits(const QString &requestPath);
|
||||||
|
|
||||||
|
HttpReply *processDebugFileRequest(const QString &requestPath);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -47,6 +47,8 @@
|
|||||||
The request has no content but it was expected.
|
The request has no content but it was expected.
|
||||||
\value Found
|
\value Found
|
||||||
The resource was found.
|
The resource was found.
|
||||||
|
\value PermanentRedirect
|
||||||
|
The resource redirects permanent to given url.
|
||||||
\value BadRequest
|
\value BadRequest
|
||||||
The request was bad formatted. Also if a \l{Param} was not understood or the header is not correct.
|
The request was bad formatted. Also if a \l{Param} was not understood or the header is not correct.
|
||||||
\value Forbidden
|
\value Forbidden
|
||||||
@ -352,6 +354,8 @@ QByteArray HttpReply::getHttpReasonPhrase(const HttpReply::HttpStatusCode &statu
|
|||||||
return "No Content";
|
return "No Content";
|
||||||
case Found:
|
case Found:
|
||||||
return "Found";
|
return "Found";
|
||||||
|
case PermanentRedirect:
|
||||||
|
return "Permanent Redirect";
|
||||||
case BadRequest:
|
case BadRequest:
|
||||||
return "Bad Request";
|
return "Bad Request";
|
||||||
case Forbidden:
|
case Forbidden:
|
||||||
|
|||||||
@ -42,6 +42,7 @@ public:
|
|||||||
Accepted = 202,
|
Accepted = 202,
|
||||||
NoContent = 204,
|
NoContent = 204,
|
||||||
Found = 302,
|
Found = 302,
|
||||||
|
PermanentRedirect = 308,
|
||||||
BadRequest = 400,
|
BadRequest = 400,
|
||||||
Forbidden = 403,
|
Forbidden = 403,
|
||||||
NotFound = 404,
|
NotFound = 404,
|
||||||
|
|||||||
@ -482,6 +482,13 @@ void TestWebserver::getDebugServer_data()
|
|||||||
QTest::addColumn<bool>("serverEnabled");
|
QTest::addColumn<bool>("serverEnabled");
|
||||||
QTest::addColumn<int>("expectedStatusCode");
|
QTest::addColumn<int>("expectedStatusCode");
|
||||||
|
|
||||||
|
// Resource files
|
||||||
|
QTest::newRow("GET /debug/styles.css | server enabled | 200") << "get" << "/debug/styles.css" << true << 200;
|
||||||
|
QTest::newRow("GET /debug/logo.svg | server enabled | 200") << "get" << "/debug/logo.svg" << true << 200;
|
||||||
|
|
||||||
|
// Check redirection
|
||||||
|
QTest::newRow("GET /debug/thisresourcedoesnotexist | server enabled | 308-200") << "get" << "/debug/thisresourcedoesnotexist" << true << 308;
|
||||||
|
|
||||||
// debug enabled
|
// debug enabled
|
||||||
QTest::newRow("GET /debug | server enabled | 200") << "get" << "/debug" << true << 200;
|
QTest::newRow("GET /debug | server enabled | 200") << "get" << "/debug" << true << 200;
|
||||||
QTest::newRow("OPTIONS /debug | server enabled | 200") << "options" << "/debug" << true << 200;
|
QTest::newRow("OPTIONS /debug | server enabled | 200") << "options" << "/debug" << true << 200;
|
||||||
@ -496,19 +503,33 @@ void TestWebserver::getDebugServer_data()
|
|||||||
QTest::newRow("POST /debug | server disabled | 404") << "post" << "/debug" << false << 404;
|
QTest::newRow("POST /debug | server disabled | 404") << "post" << "/debug" << false << 404;
|
||||||
QTest::newRow("DELETE /debug | server disabled | 404") << "delete" << "/debug" << false << 404;
|
QTest::newRow("DELETE /debug | server disabled | 404") << "delete" << "/debug" << false << 404;
|
||||||
|
|
||||||
|
// styles.css enabled
|
||||||
|
QTest::newRow("GET /debug/styles.css | server enabled | 200") << "get" << "/debug/styles.css" << true << 200;
|
||||||
|
QTest::newRow("OPTIONS /debug/styles.css | server enabled | 200") << "options" << "/debug/styles.css" << true << 200;
|
||||||
|
QTest::newRow("PUT /debug/styles.css | server enabled | 405") << "put" << "/debug/styles.css" << true << 405;
|
||||||
|
QTest::newRow("POST /debug/styles.css | server enabled | 405") << "post" << "/debug/styles.css" << true << 405;
|
||||||
|
QTest::newRow("DELETE /debug/styles.css | server enabled | 405") << "delete" << "/debug/styles.css" << true << 405;
|
||||||
|
|
||||||
|
// styles.css disabled
|
||||||
|
QTest::newRow("GET /debug/styles.css | server disabled | 404") << "get" << "/debug/styles.css" << false << 404;
|
||||||
|
QTest::newRow("OPTIONS /debug/styles.css | server disabled | 404") << "options" << "/debug/styles.css" << false << 404;
|
||||||
|
QTest::newRow("PUT /debug/styles.css | server disabled | 404") << "put" << "/debug/styles.css" << false << 404;
|
||||||
|
QTest::newRow("POST /debug/styles.css | server disabled | 404") << "post" << "/debug/styles.css" << false << 404;
|
||||||
|
QTest::newRow("DELETE /debug/styles.css | server disabled | 404") << "delete" << "/debug/styles.css" << false << 404;
|
||||||
|
|
||||||
// logdb enabled
|
// logdb enabled
|
||||||
QTest::newRow("GET /debug/logdb | server enabled | 200") << "get" << "/debug/logdb" << true << 200;
|
QTest::newRow("GET /debug/logdb.sql | server enabled | 200") << "get" << "/debug/logdb.sql" << true << 200;
|
||||||
QTest::newRow("OPTIONS /debug/logdb | server enabled | 200") << "options" << "/debug/logdb" << true << 200;
|
QTest::newRow("OPTIONS /debug/logdb.sql | server enabled | 200") << "options" << "/debug/logdb.sql" << true << 200;
|
||||||
QTest::newRow("PUT /debug/logdb | server enabled | 405") << "put" << "/debug/logdb" << true << 405;
|
QTest::newRow("PUT /debug/logdb.sql | server enabled | 405") << "put" << "/debug/logdb.sql" << true << 405;
|
||||||
QTest::newRow("POST /debug/logdb | server enabled | 405") << "post" << "/debug/logdb" << true << 405;
|
QTest::newRow("POST /debug/logdb.sql | server enabled | 405") << "post" << "/debug/logdb.sql" << true << 405;
|
||||||
QTest::newRow("DELETE /debug/logdb | server enabled | 405") << "delete" << "/debug/logdb" << true << 405;
|
QTest::newRow("DELETE /debug/logdb.sql | server enabled | 405") << "delete" << "/debug/logdb.sql" << true << 405;
|
||||||
|
|
||||||
// logdb disabled
|
// logdb disabled
|
||||||
QTest::newRow("GET /debug/logdb | server enabled | 404") << "get" << "/debug/logdb" << false << 404;
|
QTest::newRow("GET /debug/logdb.sql | server disabled | 404") << "get" << "/debug/logdb.sql" << false << 404;
|
||||||
QTest::newRow("OPTIONS /debug/logdb | server enabled | 404") << "options" << "/debug/logdb" << false << 404;
|
QTest::newRow("OPTIONS /debug/logdb.sql | server disabled | 404") << "options" << "/debug/logdb.sql" << false << 404;
|
||||||
QTest::newRow("PUT /debug/logdb | server enabled | 404") << "put" << "/debug/logdb" << false << 404;
|
QTest::newRow("PUT /debug/logdb.sql | server disabled | 404") << "put" << "/debug/logdb.sql" << false << 404;
|
||||||
QTest::newRow("POST /debug/logdb | server enabled | 404") << "post" << "/debug/logdb" << false << 404;
|
QTest::newRow("POST /debug/logdb.sql | server disabled | 404") << "post" << "/debug/logdb.sql" << false << 404;
|
||||||
QTest::newRow("DELETE /debug/logdb | server enabled | 404") << "delete" << "/debug/logdb" << false << 404;
|
QTest::newRow("DELETE /debug/logdb.sql | server disabled | 404") << "delete" << "/debug/logdb.sql" << false << 404;
|
||||||
|
|
||||||
// Check if syslog is accessable
|
// Check if syslog is accessable
|
||||||
QFileInfo syslogFileInfo("/var/log/syslog");
|
QFileInfo syslogFileInfo("/var/log/syslog");
|
||||||
@ -516,17 +537,17 @@ void TestWebserver::getDebugServer_data()
|
|||||||
if (syslogFileInfo.exists() && syslogFileInfo.isReadable()) {
|
if (syslogFileInfo.exists() && syslogFileInfo.isReadable()) {
|
||||||
// syslog enabled
|
// syslog enabled
|
||||||
QTest::newRow("GET /debug/syslog | server enabled | 200") << "get" << "/debug/syslog" << true << 200;
|
QTest::newRow("GET /debug/syslog | server enabled | 200") << "get" << "/debug/syslog" << true << 200;
|
||||||
QTest::newRow("OPTIONS /debug/syslog | server enabled | 200") << "options" << "/debug/logdb" << true << 200;
|
QTest::newRow("OPTIONS /debug/syslog | server enabled | 200") << "options" << "/debug/syslog" << true << 200;
|
||||||
QTest::newRow("PUT /debug/syslog | server enabled | 405") << "put" << "/debug/logdb" << true << 405;
|
QTest::newRow("PUT /debug/syslog | server enabled | 405") << "put" << "/debug/syslog" << true << 405;
|
||||||
QTest::newRow("POST /debug/syslog | server enabled | 405") << "post" << "/debug/logdb" << true << 405;
|
QTest::newRow("POST /debug/syslog | server enabled | 405") << "post" << "/debug/syslog" << true << 405;
|
||||||
QTest::newRow("DELETE /debug/syslog | server enabled | 405") << "delete" << "/debug/logdb" << true << 405;
|
QTest::newRow("DELETE /debug/syslog | server enabled | 405") << "delete" << "/debug/syslog" << true << 405;
|
||||||
} else {
|
} else {
|
||||||
// syslog enabled, but not readable
|
// syslog enabled, but not readable
|
||||||
QTest::newRow("GET /debug/syslog | server enabled | 200") << "get" << "/debug/syslog" << true << 403;
|
QTest::newRow("GET /debug/syslog | server enabled | 200") << "get" << "/debug/syslog" << true << 403;
|
||||||
QTest::newRow("OPTIONS /debug/syslog | server enabled | 200") << "options" << "/debug/logdb" << true << 200;
|
QTest::newRow("OPTIONS /debug/syslog | server enabled | 200") << "options" << "/debug/syslog" << true << 200;
|
||||||
QTest::newRow("PUT /debug/syslog | server enabled | 405") << "put" << "/debug/logdb" << true << 405;
|
QTest::newRow("PUT /debug/syslog | server enabled | 405") << "put" << "/debug/syslog" << true << 405;
|
||||||
QTest::newRow("POST /debug/syslog | server enabled | 405") << "post" << "/debug/logdb" << true << 405;
|
QTest::newRow("POST /debug/syslog | server enabled | 405") << "post" << "/debug/syslog" << true << 405;
|
||||||
QTest::newRow("DELETE /debug/syslog | server enabled | 405") << "delete" << "/debug/logdb" << true << 405;
|
QTest::newRow("DELETE /debug/syslog | server enabled | 405") << "delete" << "/debug/syslog" << true << 405;
|
||||||
}
|
}
|
||||||
|
|
||||||
// syslog disabled
|
// syslog disabled
|
||||||
@ -544,11 +565,11 @@ void TestWebserver::getDebugServer_data()
|
|||||||
QTest::newRow("DELETE /debug/settings/guhd | server enabled | 405") << "delete" << "/debug/settings/guhd" << true << 405;
|
QTest::newRow("DELETE /debug/settings/guhd | server enabled | 405") << "delete" << "/debug/settings/guhd" << true << 405;
|
||||||
|
|
||||||
// settings/guhd disabled
|
// settings/guhd disabled
|
||||||
QTest::newRow("GET /debug/settings/guhd | server enabled | 404") << "get" << "/debug/settings/guhd" << false << 404;
|
QTest::newRow("GET /debug/settings/guhd | server disabled | 404") << "get" << "/debug/settings/guhd" << false << 404;
|
||||||
QTest::newRow("OPTIONS /debug/settings/guhd | server enabled | 404") << "options" << "/debug/settings/guhd" << false << 404;
|
QTest::newRow("OPTIONS /debug/settings/guhd | server disabled | 404") << "options" << "/debug/settings/guhd" << false << 404;
|
||||||
QTest::newRow("PUT /debug/settings/guhd | server enabled | 404") << "put" << "/debug/settings/guhd" << false << 404;
|
QTest::newRow("PUT /debug/settings/guhd | server disabled | 404") << "put" << "/debug/settings/guhd" << false << 404;
|
||||||
QTest::newRow("POST /debug/settings/guhd | server enabled | 404") << "post" << "/debug/settings/guhd" << false << 404;
|
QTest::newRow("POST /debug/settings/guhd | server disabled | 404") << "post" << "/debug/settings/guhd" << false << 404;
|
||||||
QTest::newRow("DELETE /debug/settings/guhd | server enabled | 404") << "delete" << "/debug/settings/guhd" << false << 404;
|
QTest::newRow("DELETE /debug/settings/guhd | server disabled | 404") << "delete" << "/debug/settings/guhd" << false << 404;
|
||||||
|
|
||||||
// settings/devices enabled
|
// settings/devices enabled
|
||||||
QTest::newRow("GET /debug/settings/devices | server enabled | 200") << "get" << "/debug/settings/devices" << true << 200;
|
QTest::newRow("GET /debug/settings/devices | server enabled | 200") << "get" << "/debug/settings/devices" << true << 200;
|
||||||
@ -558,11 +579,11 @@ void TestWebserver::getDebugServer_data()
|
|||||||
QTest::newRow("DELETE /debug/settings/devices | server enabled | 405") << "delete" << "/debug/settings/devices" << true << 405;
|
QTest::newRow("DELETE /debug/settings/devices | server enabled | 405") << "delete" << "/debug/settings/devices" << true << 405;
|
||||||
|
|
||||||
// settings/devices disabled
|
// settings/devices disabled
|
||||||
QTest::newRow("GET /debug/settings/devices | server enabled | 404") << "get" << "/debug/settings/devices" << false << 404;
|
QTest::newRow("GET /debug/settings/devices | server disabled | 404") << "get" << "/debug/settings/devices" << false << 404;
|
||||||
QTest::newRow("OPTIONS /debug/settings/devices | server enabled | 404") << "options" << "/debug/settings/devices" << false << 404;
|
QTest::newRow("OPTIONS /debug/settings/devices | server disabled | 404") << "options" << "/debug/settings/devices" << false << 404;
|
||||||
QTest::newRow("PUT /debug/settings/devices | server enabled | 404") << "put" << "/debug/settings/devices" << false << 404;
|
QTest::newRow("PUT /debug/settings/devices | server disabled | 404") << "put" << "/debug/settings/devices" << false << 404;
|
||||||
QTest::newRow("POST /debug/settings/devices | server enabled | 404") << "post" << "/debug/settings/devices" << false << 404;
|
QTest::newRow("POST /debug/settings/devices | server disabled | 404") << "post" << "/debug/settings/devices" << false << 404;
|
||||||
QTest::newRow("DELETE /debug/settings/devices | server enabled | 404") << "delete" << "/debug/settings/devices" << false << 404;
|
QTest::newRow("DELETE /debug/settings/devices | server disabled | 404") << "delete" << "/debug/settings/devices" << false << 404;
|
||||||
|
|
||||||
// settings/rules enabled
|
// settings/rules enabled
|
||||||
QTest::newRow("GET /debug/settings/rules | server enabled | 200") << "get" << "/debug/settings/rules" << true << 200;
|
QTest::newRow("GET /debug/settings/rules | server enabled | 200") << "get" << "/debug/settings/rules" << true << 200;
|
||||||
@ -572,11 +593,11 @@ void TestWebserver::getDebugServer_data()
|
|||||||
QTest::newRow("DELETE /debug/settings/rules | server enabled | 405") << "delete" << "/debug/settings/rules" << true << 405;
|
QTest::newRow("DELETE /debug/settings/rules | server enabled | 405") << "delete" << "/debug/settings/rules" << true << 405;
|
||||||
|
|
||||||
// settings/rules disabled
|
// settings/rules disabled
|
||||||
QTest::newRow("GET /debug/settings/rules | server enabled | 404") << "get" << "/debug/settings/rules" << false << 404;
|
QTest::newRow("GET /debug/settings/rules | server disabled | 404") << "get" << "/debug/settings/rules" << false << 404;
|
||||||
QTest::newRow("OPTIONS /debug/settings/rules | server enabled | 404") << "options" << "/debug/settings/rules" << false << 404;
|
QTest::newRow("OPTIONS /debug/settings/rules | server disabled | 404") << "options" << "/debug/settings/rules" << false << 404;
|
||||||
QTest::newRow("PUT /debug/settings/rules | server enabled | 404") << "put" << "/debug/settings/rules" << false << 404;
|
QTest::newRow("PUT /debug/settings/rules | server disabled | 404") << "put" << "/debug/settings/rules" << false << 404;
|
||||||
QTest::newRow("POST /debug/settings/rules | server enabled | 404") << "post" << "/debug/settings/rules" << false << 404;
|
QTest::newRow("POST /debug/settings/rules | server disabled | 404") << "post" << "/debug/settings/rules" << false << 404;
|
||||||
QTest::newRow("DELETE /debug/settings/rules | server enabled | 404") << "delete" << "/debug/settings/rules" << false << 404;
|
QTest::newRow("DELETE /debug/settings/rules | server disabled | 404") << "delete" << "/debug/settings/rules" << false << 404;
|
||||||
|
|
||||||
// settings/devicestates enabled
|
// settings/devicestates enabled
|
||||||
QTest::newRow("GET /debug/settings/devicestates | server enabled | 200") << "get" << "/debug/settings/devicestates" << true << 200;
|
QTest::newRow("GET /debug/settings/devicestates | server enabled | 200") << "get" << "/debug/settings/devicestates" << true << 200;
|
||||||
@ -586,11 +607,12 @@ void TestWebserver::getDebugServer_data()
|
|||||||
QTest::newRow("DELETE /debug/settings/devicestates | server enabled | 405") << "delete" << "/debug/settings/devicestates" << true << 405;
|
QTest::newRow("DELETE /debug/settings/devicestates | server enabled | 405") << "delete" << "/debug/settings/devicestates" << true << 405;
|
||||||
|
|
||||||
// settings/devicestates disabled
|
// settings/devicestates disabled
|
||||||
QTest::newRow("GET /debug/settings/devicestates | server enabled | 404") << "get" << "/debug/settings/devicestates" << false << 404;
|
QTest::newRow("GET /debug/settings/devicestates | server disabled | 404") << "get" << "/debug/settings/devicestates" << false << 404;
|
||||||
QTest::newRow("OPTIONS /debug/settings/devicestates | server enabled | 404") << "options" << "/debug/settings/devicestates" << false << 404;
|
QTest::newRow("OPTIONS /debug/settings/devicestates | server disabled | 404") << "options" << "/debug/settings/devicestates" << false << 404;
|
||||||
QTest::newRow("PUT /debug/settings/devicestates | server enabled | 404") << "put" << "/debug/settings/devicestates" << false << 404;
|
QTest::newRow("PUT /debug/settings/devicestates | server disabled | 404") << "put" << "/debug/settings/devicestates" << false << 404;
|
||||||
QTest::newRow("POST /debug/settings/devicestates | server enabled | 404") << "post" << "/debug/settings/devicestates" << false << 404;
|
QTest::newRow("POST /debug/settings/devicestates | server disabled | 404") << "post" << "/debug/settings/devicestates" << false << 404;
|
||||||
QTest::newRow("DELETE /debug/settings/devicestates | server enabled | 404") << "delete" << "/debug/settings/devicestates" << false << 404;
|
QTest::newRow("DELETE /debug/settings/devicestates | server disabled | 404") << "delete" << "/debug/settings/devicestates" << false << 404;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void TestWebserver::getDebugServer()
|
void TestWebserver::getDebugServer()
|
||||||
|
|||||||
Reference in New Issue
Block a user