summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMikhail Svetkin <mikhail.svetkin@gmail.com>2019-07-06 14:44:56 +0200
committerMikhail Svetkin <mikhail.svetkin@gmail.com>2019-07-11 21:56:24 +0200
commitb63b0862c9231e0fc8e2389cdb88d8996cdf32ef (patch)
tree755c95db534bd6a544b2800ca84da52c84294f92
parenta8777eb51e9e50161f9e6c240d3cf4a7a5aa7e8a (diff)
QHttpServerResponse: add ctor for QJsonArray
Task-number: QTBUG-76619 Change-Id: Ibce12e33754e950f467c8fb291d447cfc0694062 Reviewed-by: Tasuku Suzuki <tasuku.suzuki@qbc.io> Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
-rw-r--r--src/httpserver/qhttpserverresponse.cpp6
-rw-r--r--src/httpserver/qhttpserverresponse.h1
-rw-r--r--tests/auto/qhttpserver/tst_qhttpserver.cpp16
3 files changed, 23 insertions, 0 deletions
diff --git a/src/httpserver/qhttpserverresponse.cpp b/src/httpserver/qhttpserverresponse.cpp
index 9b04ce0..5941418 100644
--- a/src/httpserver/qhttpserverresponse.cpp
+++ b/src/httpserver/qhttpserverresponse.cpp
@@ -76,6 +76,12 @@ QHttpServerResponse::QHttpServerResponse(const QJsonObject &data)
{
}
+QHttpServerResponse::QHttpServerResponse(const QJsonArray &data)
+ : QHttpServerResponse(mimeApplicationJson,
+ QJsonDocument(data).toJson(QJsonDocument::Compact))
+{
+}
+
QHttpServerResponse::QHttpServerResponse(const QByteArray &mimeType,
const QByteArray &data,
const StatusCode status)
diff --git a/src/httpserver/qhttpserverresponse.h b/src/httpserver/qhttpserverresponse.h
index 89e5b9e..030b8c4 100644
--- a/src/httpserver/qhttpserverresponse.h
+++ b/src/httpserver/qhttpserverresponse.h
@@ -58,6 +58,7 @@ public:
QHttpServerResponse(const QString &data);
explicit QHttpServerResponse(const QByteArray &data);
QHttpServerResponse(const QJsonObject &data);
+ QHttpServerResponse(const QJsonArray &data);
QHttpServerResponse(const QByteArray &mimeType,
const QByteArray &data,
const StatusCode status = StatusCode::Ok);
diff --git a/tests/auto/qhttpserver/tst_qhttpserver.cpp b/tests/auto/qhttpserver/tst_qhttpserver.cpp
index 69b176c..a4e15af 100644
--- a/tests/auto/qhttpserver/tst_qhttpserver.cpp
+++ b/tests/auto/qhttpserver/tst_qhttpserver.cpp
@@ -44,6 +44,7 @@
#include <QtCore/qmetaobject.h>
#include <QtCore/qjsonobject.h>
#include <QtCore/qjsonvalue.h>
+#include <QtCore/qjsonarray.h>
#include <QtNetwork/qnetworkaccessmanager.h>
#include <QtNetwork/qnetworkreply.h>
@@ -205,6 +206,15 @@ void tst_QHttpServer::initTestCase()
};
});
+ httpserver.route("/json-array/", [] () {
+ return QJsonArray{
+ 1, "2",
+ QJsonObject{
+ {"name", "test"}
+ }
+ };
+ });
+
urlBase = QStringLiteral("http://localhost:%1%2").arg(httpserver.listen());
}
@@ -375,6 +385,12 @@ void tst_QHttpServer::routeGet_data()
<< 200
<< "application/json"
<< "{\"property\":\"test\",\"value\":1}";
+
+ QTest::addRow("json-array")
+ << "/json-array/"
+ << 200
+ << "application/json"
+ << "[1,\"2\",{\"name\":\"test\"}]";
}
void tst_QHttpServer::routeGet()