summaryrefslogtreecommitdiffstats
path: root/tests/auto/qhttpserver/tst_qhttpserver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/qhttpserver/tst_qhttpserver.cpp')
-rw-r--r--tests/auto/qhttpserver/tst_qhttpserver.cpp45
1 files changed, 43 insertions, 2 deletions
diff --git a/tests/auto/qhttpserver/tst_qhttpserver.cpp b/tests/auto/qhttpserver/tst_qhttpserver.cpp
index 6193fb5..2934dc0 100644
--- a/tests/auto/qhttpserver/tst_qhttpserver.cpp
+++ b/tests/auto/qhttpserver/tst_qhttpserver.cpp
@@ -166,6 +166,12 @@ void tst_QHttpServer::initTestCase()
httpserver.route("/check-custom-type/", [] (const CustomArg &customArg) {
return QString("data = %1").arg(customArg.data);
});
+
+ httpserver.route("/post-body", "POST", [] (const QHttpServerRequest &request) {
+ return request.body();
+ });
+
+ urlBase = QStringLiteral("http://localhost:%1%2").arg(httpserver.listen());
}
void tst_QHttpServer::routeGet_data()
@@ -334,6 +340,38 @@ void tst_QHttpServer::routePost_data()
<< "text/html"
<< ""
<< "Hello world post";
+
+ QTest::addRow("post-and-get, post")
+ << "/post-and-get"
+ << 200
+ << "text/html"
+ << ""
+ << "Hello world post";
+
+ QTest::addRow("any, post")
+ << "/any"
+ << 200
+ << "text/html"
+ << ""
+ << "Post";
+
+ QTest::addRow("post-body")
+ << "/post-body"
+ << 200
+ << "text/html"
+ << "some post data"
+ << "some post data";
+
+ QString body;
+ for (int i = 0; i < 10000; i++)
+ body.append(QString::number(i));
+
+ QTest::addRow("post-body - huge body, chunk test")
+ << "/post-body"
+ << 200
+ << "text/html"
+ << body
+ << body;
}
void tst_QHttpServer::routePost()
@@ -345,8 +383,11 @@ void tst_QHttpServer::routePost()
QFETCH(QString, body);
QNetworkAccessManager networkAccessManager;
- const QUrl requestUrl(urlBase.arg(url));
- auto reply = networkAccessManager.post(QNetworkRequest(requestUrl), data.toUtf8());
+ QNetworkRequest request(QUrl(urlBase.arg(url)));
+ if (data.size())
+ request.setHeader(QNetworkRequest::ContentTypeHeader, "text/html");
+
+ auto reply = networkAccessManager.post(request, data.toUtf8());
QTRY_VERIFY(reply->isFinished());