summaryrefslogtreecommitdiffstats
path: root/tests/auto/network
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/network')
-rw-r--r--tests/auto/network/access/http2/http2srv.h2
-rw-r--r--tests/auto/network/access/qhttpnetworkreply/tst_qhttpnetworkreply.cpp2
-rw-r--r--tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp48
-rw-r--r--tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp2
-rw-r--r--tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp2
-rw-r--r--tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp1
6 files changed, 52 insertions, 5 deletions
diff --git a/tests/auto/network/access/http2/http2srv.h b/tests/auto/network/access/http2/http2srv.h
index 10d0e86736..f89e04cc0d 100644
--- a/tests/auto/network/access/http2/http2srv.h
+++ b/tests/auto/network/access/http2/http2srv.h
@@ -129,7 +129,7 @@ private slots:
void readReady();
private:
- void incomingConnection(qintptr socketDescriptor) Q_DECL_OVERRIDE;
+ void incomingConnection(qintptr socketDescriptor) override;
quint32 clientSetting(Http2::Settings identifier, quint32 defaultValue);
bool readMethodLine();
diff --git a/tests/auto/network/access/qhttpnetworkreply/tst_qhttpnetworkreply.cpp b/tests/auto/network/access/qhttpnetworkreply/tst_qhttpnetworkreply.cpp
index ec965a61b2..edfef09a96 100644
--- a/tests/auto/network/access/qhttpnetworkreply/tst_qhttpnetworkreply.cpp
+++ b/tests/auto/network/access/qhttpnetworkreply/tst_qhttpnetworkreply.cpp
@@ -104,7 +104,7 @@ void tst_QHttpNetworkReply::parseHeader()
class TestHeaderSocket : public QAbstractSocket
{
public:
- explicit TestHeaderSocket(const QByteArray &input) : QAbstractSocket(QAbstractSocket::TcpSocket, Q_NULLPTR)
+ explicit TestHeaderSocket(const QByteArray &input) : QAbstractSocket(QAbstractSocket::TcpSocket, nullptr)
{
inputBuffer.setData(input);
inputBuffer.open(QIODevice::ReadOnly | QIODevice::Unbuffered);
diff --git a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp
index 542246ff2d..49abbede35 100644
--- a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp
+++ b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp
@@ -30,6 +30,7 @@
#include <QtTest/QtTest>
#include <QtCore/QCryptographicHash>
#include <QtCore/QDataStream>
+#include <QtCore/QTextStream>
#include <QtCore/QUrl>
#include <QtCore/QEventLoop>
#include <QtCore/QFile>
@@ -528,7 +529,9 @@ static void setupSslServer(QSslSocket* serverSocket)
}
#endif
-// Does not work for POST/PUT!
+// NOTE: MiniHttpServer has a very limited support of PUT/POST requests! Make
+// sure you understand the server's code before PUTting/POSTing data (and
+// probably you'll have to update the logic).
class MiniHttpServer: public QTcpServer
{
Q_OBJECT
@@ -542,6 +545,7 @@ public:
bool ipv6;
bool multiple;
int totalConnections;
+ bool parseHeaders = false;
MiniHttpServer(const QByteArray &data, bool ssl = false, QThread *thread = 0, bool useipv6 = false)
: dataToTransmit(data), doClose(true), doSsl(ssl), ipv6(useipv6),
@@ -567,6 +571,12 @@ public:
dataToTransmit = data;
}
+ void clearHeaderParserState()
+ {
+ expectPayload = false;
+ receivedData.clear();
+ }
+
protected:
void incomingConnection(qintptr socketDescriptor)
{
@@ -636,13 +646,29 @@ private slots:
}
public slots:
+
void readyReadSlot()
{
Q_ASSERT(!client.isNull());
+ if (expectPayload) {
+ // NOTE: this works only for the test using POST/PUT requests to this
+ // local HTTP server, fortunately we know that data is very small
+ // (7 bytes) and we can safely read/discard it here:
+ client->readAll();
+ return reply();
+ }
+
receivedData += client->readAll();
int doubleEndlPos = receivedData.indexOf("\r\n\r\n");
if (doubleEndlPos != -1) {
+ if (parseHeaders) {
+ parseRequest();
+ if (expectPayload && doubleEndlPos + 4 == receivedData.size()) {
+ // Wait for more incoming (POST/PUT) data.
+ return;
+ }
+ }
// multiple requests incoming. remove the bytes of the current one
if (multiple)
receivedData.remove(0, doubleEndlPos+4);
@@ -665,6 +691,18 @@ public slots:
{
ready.release();
}
+
+private:
+ void parseRequest()
+ {
+ Q_ASSERT(parseHeaders);
+ QTextStream parser(receivedData, QIODevice::ReadOnly);
+ const QString line(parser.readLine());
+ expectPayload = line.startsWith(QLatin1Literal("POST"))
+ || line.startsWith(QLatin1Literal("PUT"));
+ }
+
+ bool expectPayload = false;
};
class MyCookieJar: public QNetworkCookieJar
@@ -7229,6 +7267,7 @@ void tst_QNetworkReply::qtbug28035browserDoesNotLoadQtProjectOrgCorrectly() {
manager.setCache(diskCache);
MiniHttpServer server(getReply);
+ server.parseHeaders = true;
QNetworkRequest request(QUrl("http://localhost:" + QString::number(server.serverPort())));
QNetworkReplyPtr reply(manager.get(request));
@@ -7240,6 +7279,7 @@ void tst_QNetworkReply::qtbug28035browserDoesNotLoadQtProjectOrgCorrectly() {
QCOMPARE(reply->readAll(), QByteArray("GET"));
QCOMPARE(reply->attribute(QNetworkRequest::SourceIsFromCacheAttribute).toBool(), false);
+ server.clearHeaderParserState();
server.setDataToTransmit(getReply);
reply.reset(manager.get(request));
QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply));
@@ -7249,6 +7289,7 @@ void tst_QNetworkReply::qtbug28035browserDoesNotLoadQtProjectOrgCorrectly() {
QCOMPARE(reply->readAll(), QByteArray("GET"));
QCOMPARE(reply->attribute(QNetworkRequest::SourceIsFromCacheAttribute).toBool(), true);
+ server.clearHeaderParserState();
server.setDataToTransmit(postReply);
request.setRawHeader("Content-Type", "text/plain");
reply.reset(manager.post(request, postData));
@@ -7261,6 +7302,7 @@ void tst_QNetworkReply::qtbug28035browserDoesNotLoadQtProjectOrgCorrectly() {
QCOMPARE(reply->readAll(), QByteArray("POST"));
QCOMPARE(reply->attribute(QNetworkRequest::SourceIsFromCacheAttribute).toBool(), false);
+ server.clearHeaderParserState();
server.setDataToTransmit(getReply);
reply.reset(manager.get(request));
@@ -7271,6 +7313,7 @@ void tst_QNetworkReply::qtbug28035browserDoesNotLoadQtProjectOrgCorrectly() {
QCOMPARE(reply->readAll(), QByteArray("GET"));
QCOMPARE(reply->attribute(QNetworkRequest::SourceIsFromCacheAttribute).toBool(), false);
+ server.clearHeaderParserState();
server.setDataToTransmit(getReply);
reply.reset(manager.get(request));
@@ -7281,6 +7324,7 @@ void tst_QNetworkReply::qtbug28035browserDoesNotLoadQtProjectOrgCorrectly() {
QCOMPARE(reply->readAll(), QByteArray("GET"));
QCOMPARE(reply->attribute(QNetworkRequest::SourceIsFromCacheAttribute).toBool(), true);
+ server.clearHeaderParserState();
server.setDataToTransmit(putReply);
reply.reset(manager.put(request, postData));
@@ -7290,6 +7334,7 @@ void tst_QNetworkReply::qtbug28035browserDoesNotLoadQtProjectOrgCorrectly() {
QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->attribute(QNetworkRequest::SourceIsFromCacheAttribute).toBool(), false);
+ server.clearHeaderParserState();
server.setDataToTransmit(getReply);
reply.reset(manager.get(request));
@@ -7300,6 +7345,7 @@ void tst_QNetworkReply::qtbug28035browserDoesNotLoadQtProjectOrgCorrectly() {
QCOMPARE(reply->readAll(), QByteArray("GET"));
QCOMPARE(reply->attribute(QNetworkRequest::SourceIsFromCacheAttribute).toBool(), false);
+ server.clearHeaderParserState();
server.setDataToTransmit(getReply);
reply.reset(manager.get(request));
diff --git a/tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp b/tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp
index 7760138067..0d538865a3 100644
--- a/tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp
+++ b/tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp
@@ -476,7 +476,7 @@ void tst_QLocalSocket::connectWithOldOpen()
class OverriddenOpen : public LocalSocket
{
public:
- virtual bool open(OpenMode mode) Q_DECL_OVERRIDE
+ virtual bool open(OpenMode mode) override
{ return QIODevice::open(mode); }
};
diff --git a/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp b/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp
index 7340817ade..493263f2b8 100644
--- a/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp
+++ b/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp
@@ -3126,7 +3126,7 @@ void tst_QTcpSocket::readNotificationsAfterBind()
if (setProxy)
return;
- QAbstractSocket socket(QAbstractSocket::TcpSocket, Q_NULLPTR);
+ QAbstractSocket socket(QAbstractSocket::TcpSocket, nullptr);
QVERIFY2(socket.bind(), "Bind error!");
connect(&socket, SIGNAL(error(QAbstractSocket::SocketError)), &QTestEventLoop::instance(), SLOT(exitLoop()));
diff --git a/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp b/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp
index 12588c5e29..2d5c27a57b 100644
--- a/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp
+++ b/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp
@@ -2486,6 +2486,7 @@ void tst_QSslSocket::writeBigChunk()
QByteArray data;
data.resize(1024*1024*10); // 10 MB
// init with garbage. needed so ssl cannot compress it in an efficient way.
+ // ### Qt 6: update to a random engine
for (size_t i = 0; i < data.size() / sizeof(int); i++) {
int r = qrand();
data.data()[i*sizeof(int)] = r;