diff options
Diffstat (limited to 'tests/auto/network')
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; |