diff options
Diffstat (limited to 'tests/auto/network/access')
11 files changed, 501 insertions, 237 deletions
diff --git a/tests/auto/network/access/hpack/hpack.pro b/tests/auto/network/access/hpack/hpack.pro index 3c8b8e7944..2823ae4d0c 100644 --- a/tests/auto/network/access/hpack/hpack.pro +++ b/tests/auto/network/access/hpack/hpack.pro @@ -1,5 +1,5 @@ -QT += core core-private network network-private testlib -CONFIG += testcase parallel_test c++14 +QT = core core-private network network-private testlib +CONFIG += testcase parallel_test c++11 TEMPLATE = app TARGET = tst_hpack diff --git a/tests/auto/network/access/hsts/hsts.pro b/tests/auto/network/access/hsts/hsts.pro index 07bdea5f62..dad6638364 100644 --- a/tests/auto/network/access/hsts/hsts.pro +++ b/tests/auto/network/access/hsts/hsts.pro @@ -1,4 +1,4 @@ -QT += core core-private network network-private testlib +QT = core core-private network network-private testlib CONFIG += testcase parallel_test c++11 TEMPLATE = app TARGET = tst_qhsts diff --git a/tests/auto/network/access/http2/http2.pro b/tests/auto/network/access/http2/http2.pro index e130f30784..62b685e556 100644 --- a/tests/auto/network/access/http2/http2.pro +++ b/tests/auto/network/access/http2/http2.pro @@ -1,4 +1,4 @@ -QT += core core-private network network-private testlib +QT = core core-private network network-private testlib CONFIG += testcase parallel_test c++11 TARGET = tst_http2 diff --git a/tests/auto/network/access/http2/http2srv.cpp b/tests/auto/network/access/http2/http2srv.cpp index b0bae13bad..1f9ffb8985 100644 --- a/tests/auto/network/access/http2/http2srv.cpp +++ b/tests/auto/network/access/http2/http2srv.cpp @@ -212,13 +212,30 @@ void Http2Server::sendDATA(quint32 streamID, quint32 windowSize) const quint32 offset = it->second; Q_ASSERT(offset < quint32(responseBody.size())); - const quint32 bytes = std::min<quint32>(windowSize, responseBody.size() - offset); + quint32 bytesToSend = std::min<quint32>(windowSize, responseBody.size() - offset); + quint32 bytesSent = 0; const quint32 frameSizeLimit(clientSetting(Settings::MAX_FRAME_SIZE_ID, Http2::maxFrameSize)); const uchar *src = reinterpret_cast<const uchar *>(responseBody.constData() + offset); - const bool last = offset + bytes == quint32(responseBody.size()); + const bool last = offset + bytesToSend == quint32(responseBody.size()); + + // The payload can significantly exceed frameSizeLimit. Internally, writer + // will do needed fragmentation, but if some test failed, there is no need + // to wait for writer to send all DATA frames, we check 'interrupted' and + // stop early instead. + const quint32 framesInChunk = 10; + while (bytesToSend) { + if (interrupted.loadAcquire()) + return; + const quint32 chunkSize = std::min<quint32>(framesInChunk * frameSizeLimit, bytesToSend); + writer.start(FrameType::DATA, FrameFlag::EMPTY, streamID); + writer.writeDATA(*socket, frameSizeLimit, src, chunkSize); + src += chunkSize; + bytesToSend -= chunkSize; + bytesSent += chunkSize; + } - writer.start(FrameType::DATA, FrameFlag::EMPTY, streamID); - writer.writeDATA(*socket, frameSizeLimit, src, bytes); + if (interrupted.loadAcquire()) + return; if (last) { writer.start(FrameType::DATA, FrameFlag::END_STREAM, streamID); @@ -230,7 +247,7 @@ void Http2Server::sendDATA(quint32 streamID, quint32 windowSize) Q_ASSERT(closedStreams.find(streamID) == closedStreams.end()); closedStreams.insert(streamID); } else { - it->second += bytes; + it->second += bytesSent; } } @@ -819,6 +836,11 @@ void Http2Server::sendResponse(quint32 streamID, bool emptyBody) } } +void Http2Server::stopSendingDATAFrames() +{ + interrupted.storeRelease(1); +} + void Http2Server::processRequest() { Q_ASSERT(continuedRequest.size()); diff --git a/tests/auto/network/access/http2/http2srv.h b/tests/auto/network/access/http2/http2srv.h index 14b41cc67d..87a17ced8b 100644 --- a/tests/auto/network/access/http2/http2srv.h +++ b/tests/auto/network/access/http2/http2srv.h @@ -40,6 +40,7 @@ #include <QtCore/qscopedpointer.h> #include <QtNetwork/qtcpserver.h> #include <QtCore/qbytearray.h> +#include <QtCore/qatomic.h> #include <QtCore/qglobal.h> #include <vector> @@ -96,6 +97,8 @@ public: Q_INVOKABLE void sendResponse(quint32 streamID, bool emptyBody); + void stopSendingDATAFrames(); + private: void processRequest(); @@ -191,6 +194,7 @@ private: // may still be sending DATA frames. See tst_Http2::earlyResponse(). bool redirectWhileReading = false; quint16 targetPort = 0; + QAtomicInt interrupted; protected slots: void ignoreErrorSlot(); }; diff --git a/tests/auto/network/access/http2/tst_http2.cpp b/tests/auto/network/access/http2/tst_http2.cpp index ecf4c5814a..49daedf32c 100644 --- a/tests/auto/network/access/http2/tst_http2.cpp +++ b/tests/auto/network/access/http2/tst_http2.cpp @@ -110,8 +110,7 @@ private: QThread *workerThread = nullptr; QNetworkAccessManager manager; - QEventLoop eventLoop; - QTimer timer; + QTestEventLoop eventLoop; int nRequests = 0; int nSentRequests = 0; @@ -133,8 +132,10 @@ struct ServerDeleter { static void cleanup(Http2Server *srv) { - if (srv) + if (srv) { + srv->stopSendingDATAFrames(); QMetaObject::invokeMethod(srv, "deleteLater", Qt::QueuedConnection); + } } }; @@ -146,11 +147,6 @@ tst_Http2::tst_Http2() : workerThread(new QThread) { workerThread->start(); - - timer.setInterval(10000); - timer.setSingleShot(true); - - connect(&timer, SIGNAL(timeout()), &eventLoop, SLOT(quit())); } tst_Http2::~tst_Http2() @@ -497,15 +493,12 @@ void tst_Http2::clearHTTP2State() void tst_Http2::runEventLoop(int ms) { - timer.setInterval(ms); - timer.start(); - eventLoop.exec(); + eventLoop.enterLoopMSecs(ms); } void tst_Http2::stopEventLoop() { - timer.stop(); - eventLoop.quit(); + eventLoop.exitLoop(); } Http2Server *tst_Http2::newServer(const Http2::RawSettings &serverSettings, diff --git a/tests/auto/network/access/qnetworkreply/certs/qt-test-net-cacert.pem b/tests/auto/network/access/qnetworkreply/certs/qt-test-net-cacert.pem new file mode 100644 index 0000000000..43c8794ce2 --- /dev/null +++ b/tests/auto/network/access/qnetworkreply/certs/qt-test-net-cacert.pem @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIIClTCCAf4CCQC2xMhNhwvATDANBgkqhkiG9w0BAQQFADCBjjELMAkGA1UEChMC +UXQxGTAXBgNVBAsTEENvcmUgQW5kIE5ldHdvcmsxGzAZBgkqhkiG9w0BCQEWDG5v +Ym9keS5xdC5pbzENMAsGA1UEBxMET3NsbzENMAsGA1UECBMET3NsbzELMAkGA1UE +BhMCTk8xHDAaBgNVBAMUEyoudGVzdC1uZXQucXQubG9jYWwwHhcNMTgwNzAxMTgz +NjI3WhcNNDgwNjIzMTgzNjI3WjCBjjELMAkGA1UEChMCUXQxGTAXBgNVBAsTEENv +cmUgQW5kIE5ldHdvcmsxGzAZBgkqhkiG9w0BCQEWDG5vYm9keS5xdC5pbzENMAsG +A1UEBxMET3NsbzENMAsGA1UECBMET3NsbzELMAkGA1UEBhMCTk8xHDAaBgNVBAMU +EyoudGVzdC1uZXQucXQubG9jYWwwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB +AM2q22/WNMmn8cC+5EEYGeICySLmp9W6Ay6eKHr0Xxp3X3epETuPfvAuxp7rOtkS +18EMUegkUj8jw0IMEcbyHKFC/rTCaYOt93CxGBXMIChiMPAsFeYzGa/D6xzAkfcR +aJRQ+Ek3CDLXPnXfo7xpABXezYcPXAJrgsgBfWrwHdxzAgMBAAEwDQYJKoZIhvcN +AQEEBQADgYEAZu/lQPy8PXeyyYGamOVms/FZKJ48BH1y8KC3BeBU5FYnhvgG7pz8 +Wz9JKvt2t/r45wQeAkNL6HnGUBhPJsHMjPHl5KktqN+db3D+FQygBeS2V1+zmC0X +UZNRE4aWiHvt1Lq+pTx89SOMOpfqWfh4qTQKiE5jC2V4DeCNQ3u7uI8= +-----END CERTIFICATE----- diff --git a/tests/auto/network/access/qnetworkreply/test/test.pro b/tests/auto/network/access/qnetworkreply/test/test.pro index e8464e81af..9d36352abc 100644 --- a/tests/auto/network/access/qnetworkreply/test/test.pro +++ b/tests/auto/network/access/qnetworkreply/test/test.pro @@ -14,3 +14,6 @@ TESTDATA += ../empty ../rfc3252.txt ../resource ../bigfile ../*.jpg ../certs \ ../index.html ../smb-file.txt !android:!winrt: TEST_HELPER_INSTALLS = ../echo/echo + +QT_TEST_SERVER_LIST = vsftpd apache2 ftp-proxy danted squid +include($$dirname(_QMAKE_CONF_)/tests/auto/testserver.pri) diff --git a/tests/auto/network/access/qnetworkreply/testserver_index.html b/tests/auto/network/access/qnetworkreply/testserver_index.html new file mode 100644 index 0000000000..abc1df188d --- /dev/null +++ b/tests/auto/network/access/qnetworkreply/testserver_index.html @@ -0,0 +1,3 @@ +<h1>Welcome to qt-test-server</h1> +<img src="fluke.gif" alt="fluke"> +<p>This is a network test server. It serves as a caching ftp and http proxy, transparent http/socks5 proxy, imap, ftp and http server, and more.</p> diff --git a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp index 9c77e156d7..30b41da515 100644 --- a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp +++ b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp @@ -156,6 +156,7 @@ class tst_QNetworkReply: public QObject #ifndef QT_NO_SSL QSslConfiguration storedSslConfiguration; QList<QSslError> storedExpectedSslErrors; + static const QString certsFilePath; #endif #ifndef QT_NO_BEARERMANAGEMENT QNetworkConfigurationManager *netConfMan; @@ -547,8 +548,15 @@ static void setupSslServer(QSslSocket* serverSocket) serverSocket->setPrivateKey(testDataDir + "/certs/server.key"); serverSocket->startServerEncryption(); } + +#ifdef QT_TEST_SERVER +const QString tst_QNetworkReply::certsFilePath = "/certs/qt-test-net-cacert.pem"; +#else +const QString tst_QNetworkReply::certsFilePath = "/certs/qt-test-server-cacert.pem"; #endif +#endif // !QT_NO_SSL + // 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). @@ -1270,18 +1278,23 @@ tst_QNetworkReply::tst_QNetworkReply() manager.setCookieJar(cookieJar); #ifndef QT_NO_NETWORKPROXY - QHostInfo hostInfo = QHostInfo::fromName(QtNetworkSettings::serverName()); + QHostInfo hostInfo = QHostInfo::fromName(QtNetworkSettings::httpProxyServerName()); proxies << ProxyData(QNetworkProxy::NoProxy, "", false); if (hostInfo.error() == QHostInfo::NoError && !hostInfo.addresses().isEmpty()) { - QString proxyserver = hostInfo.addresses().first().toString(); - proxies << ProxyData(QNetworkProxy(QNetworkProxy::HttpProxy, proxyserver, 3128), "+proxy", false) - << ProxyData(QNetworkProxy(QNetworkProxy::HttpProxy, proxyserver, 3129), "+proxyauth", true) + QString httpProxy = QtNetworkSettings::httpProxyServerName(); + QString socksProxy = QtNetworkSettings::socksProxyServerName(); + proxies << ProxyData(QNetworkProxy(QNetworkProxy::HttpProxy, httpProxy, 3128), + "+proxy", false) + << ProxyData(QNetworkProxy(QNetworkProxy::HttpProxy, httpProxy, 3129), + "+proxyauth", true) // currently unsupported // << ProxyData(QNetworkProxy(QNetworkProxy::HttpProxy, proxyserver, 3130), "+proxyauth-ntlm", true); - << ProxyData(QNetworkProxy(QNetworkProxy::Socks5Proxy, proxyserver, 1080), "+socks", false) - << ProxyData(QNetworkProxy(QNetworkProxy::Socks5Proxy, proxyserver, 1081), "+socksauth", true); + << ProxyData(QNetworkProxy(QNetworkProxy::Socks5Proxy, socksProxy, 1080), + "+socks", false) + << ProxyData(QNetworkProxy(QNetworkProxy::Socks5Proxy, socksProxy, 1081), + "+socksauth", true); } else { #endif // !QT_NO_NETWORKPROXY printf("==================================================================\n"); @@ -1508,8 +1521,20 @@ void tst_QNetworkReply::initTestCase() if (testDataDir.isEmpty()) testDataDir = QCoreApplication::applicationDirPath(); +#if defined(QT_TEST_SERVER) + QVERIFY(QtNetworkSettings::verifyConnection(QtNetworkSettings::ftpServerName(), 21)); + QVERIFY(QtNetworkSettings::verifyConnection(QtNetworkSettings::ftpProxyServerName(), 2121)); + QVERIFY(QtNetworkSettings::verifyConnection(QtNetworkSettings::httpServerName(), 80)); + QVERIFY(QtNetworkSettings::verifyConnection(QtNetworkSettings::httpServerName(), 443)); + QVERIFY(QtNetworkSettings::verifyConnection(QtNetworkSettings::httpProxyServerName(), 3128)); + QVERIFY(QtNetworkSettings::verifyConnection(QtNetworkSettings::httpProxyServerName(), 3129)); + QVERIFY(QtNetworkSettings::verifyConnection(QtNetworkSettings::httpProxyServerName(), 3130)); + QVERIFY(QtNetworkSettings::verifyConnection(QtNetworkSettings::socksProxyServerName(), 1080)); + QVERIFY(QtNetworkSettings::verifyConnection(QtNetworkSettings::socksProxyServerName(), 1081)); +#else if (!QtNetworkSettings::verifyTestNetworkSettings()) QSKIP("No network test server available"); +#endif #if !defined Q_OS_WIN wronlyFileName = testDataDir + "/write-only" + uniqueExtension; QFile wr(wronlyFileName); @@ -1808,8 +1833,13 @@ void tst_QNetworkReply::getFromFtp_data() QTest::addColumn<QString>("referenceName"); QTest::addColumn<QString>("url"); - QTest::newRow("rfc3252.txt") << (testDataDir + "/rfc3252.txt") << "ftp://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt"; - QTest::newRow("bigfile") << (testDataDir + "/bigfile") << "ftp://" + QtNetworkSettings::serverName() + "/qtest/bigfile"; + QTest::newRow("rfc3252.txt") + << testDataDir + "/rfc3252.txt" + << "ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/rfc3252.txt"; + + QTest::newRow("bigfile") + << testDataDir + "/bigfile" + << "ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/bigfile"; } void tst_QNetworkReply::getFromFtp() @@ -1833,7 +1863,7 @@ void tst_QNetworkReply::getFromFtp() void tst_QNetworkReply::getFromFtpAfterError() { - QNetworkRequest invalidRequest(QUrl("ftp://" + QtNetworkSettings::serverName() + "/qtest/invalid.txt")); + QNetworkRequest invalidRequest(QUrl("ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/invalid.txt")); QNetworkReplyPtr invalidReply; invalidReply.reset(manager.get(invalidRequest)); QSignalSpy spy(invalidReply.data(), SIGNAL(error(QNetworkReply::NetworkError))); @@ -1842,7 +1872,7 @@ void tst_QNetworkReply::getFromFtpAfterError() QFile reference(testDataDir + "/rfc3252.txt"); QVERIFY(reference.open(QIODevice::ReadOnly)); - QNetworkRequest validRequest(QUrl("ftp://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt")); + QNetworkRequest validRequest(QUrl("ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/rfc3252.txt")); QNetworkReplyPtr validReply; RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::GetOperation, validRequest, validReply)); QCOMPARE(validReply->url(), validRequest.url()); @@ -1856,9 +1886,17 @@ void tst_QNetworkReply::getFromHttp_data() QTest::addColumn<QString>("referenceName"); QTest::addColumn<QString>("url"); - QTest::newRow("success-internal") << (testDataDir + "/rfc3252.txt") << "http://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt"; - QTest::newRow("success-external") << (testDataDir + "/rfc3252.txt") << "http://www.ietf.org/rfc/rfc3252.txt"; - QTest::newRow("bigfile-internal") << (testDataDir + "/bigfile") << "http://" + QtNetworkSettings::serverName() + "/qtest/bigfile"; + QTest::newRow("success-internal") + << testDataDir + "/rfc3252.txt" + << "http://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt"; + + QTest::newRow("success-external") + << testDataDir + "/rfc3252.txt" + << "http://www.ietf.org/rfc/rfc3252.txt"; + + QTest::newRow("bigfile-internal") + << testDataDir + "/bigfile" + << "http://" + QtNetworkSettings::httpServerName() + "/qtest/bigfile"; } void tst_QNetworkReply::getFromHttp() @@ -1898,15 +1936,45 @@ void tst_QNetworkReply::headFromHttp_data() qint64 rfcsize = QFileInfo(testDataDir + "/rfc3252.txt").size(); qint64 bigfilesize = QFileInfo(testDataDir + "/bigfile").size(); + +#if defined(QT_TEST_SERVER) + qint64 indexsize = QFileInfo(testDataDir + "/testserver_index.html").size(); +#else qint64 indexsize = QFileInfo(testDataDir + "/index.html").size(); +#endif + QString httpServer = QtNetworkSettings::httpServerName(); //testing proxies, mainly for the 407 response from http proxy for (int i = 0; i < proxies.count(); ++i) { - QTest::newRow("rfc" + proxies.at(i).tag) << rfcsize << QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt") << "text/plain" << proxies.at(i).proxy; - QTest::newRow("bigfile" + proxies.at(i).tag) << bigfilesize << QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/bigfile") << "text/plain" << proxies.at(i).proxy; - QTest::newRow("index" + proxies.at(i).tag) << indexsize << QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/") << "text/html" << proxies.at(i).proxy; - QTest::newRow("with-authentication" + proxies.at(i).tag) << rfcsize << QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/rfcs-auth/rfc3252.txt") << "text/plain" << proxies.at(i).proxy; - QTest::newRow("cgi" + proxies.at(i).tag) << (qint64)-1 << QUrl("http://qt-test-server/qtest/cgi-bin/httpcachetest_expires500.cgi") << "text/html" << proxies.at(i).proxy; + QTest::newRow("rfc" + proxies.at(i).tag) + << rfcsize + << QUrl("http://" + httpServer + "/qtest/rfc3252.txt") + << "text/plain" + << proxies.at(i).proxy; + + QTest::newRow("bigfile" + proxies.at(i).tag) + << bigfilesize + << QUrl("http://" + httpServer + "/qtest/bigfile") + << "text/plain" + << proxies.at(i).proxy; + + QTest::newRow("index" + proxies.at(i).tag) + << indexsize + << QUrl("http://" + httpServer + "/qtest/") + << "text/html" + << proxies.at(i).proxy; + + QTest::newRow("with-authentication" + proxies.at(i).tag) + << rfcsize + << QUrl("http://" + httpServer + "/qtest/rfcs-auth/rfc3252.txt") + << "text/plain" + << proxies.at(i).proxy; + + QTest::newRow("cgi" + proxies.at(i).tag) + << (qint64)-1 + << QUrl("http://" + httpServer + "/qtest/cgi-bin/httpcachetest_expires500.cgi") + << "text/html" + << proxies.at(i).proxy; } } @@ -1988,23 +2056,23 @@ void tst_QNetworkReply::getErrors_data() // ftp: errors QTest::newRow("ftp-host") << "ftp://invalid.test.qt-project.org/foo.txt" << int(QNetworkReply::HostNotFoundError) << 0 << true; - QTest::newRow("ftp-no-path") << "ftp://" + QtNetworkSettings::serverName() + QTest::newRow("ftp-no-path") << "ftp://" + QtNetworkSettings::ftpServerName() << int(QNetworkReply::ContentOperationNotPermittedError) << 0 << true; - QTest::newRow("ftp-is-dir") << "ftp://" + QtNetworkSettings::serverName() + "/qtest" + QTest::newRow("ftp-is-dir") << "ftp://" + QtNetworkSettings::ftpServerName() + "/qtest" << int(QNetworkReply::ContentOperationNotPermittedError) << 0 << true; - QTest::newRow("ftp-dir-not-readable") << "ftp://" + QtNetworkSettings::serverName() + "/pub/dir-not-readable/foo.txt" + QTest::newRow("ftp-dir-not-readable") << "ftp://" + QtNetworkSettings::ftpServerName() + "/pub/dir-not-readable/foo.txt" << int(QNetworkReply::ContentAccessDenied) << 0 << true; - QTest::newRow("ftp-file-not-readable") << "ftp://" + QtNetworkSettings::serverName() + "/pub/file-not-readable.txt" + QTest::newRow("ftp-file-not-readable") << "ftp://" + QtNetworkSettings::ftpServerName() + "/pub/file-not-readable.txt" << int(QNetworkReply::ContentAccessDenied) << 0 << true; - QTest::newRow("ftp-exist") << "ftp://" + QtNetworkSettings::serverName() + "/pub/this-file-doesnt-exist.txt" + QTest::newRow("ftp-exist") << "ftp://" + QtNetworkSettings::ftpServerName() + "/pub/this-file-doesnt-exist.txt" << int(QNetworkReply::ContentNotFoundError) << 0 << true; // http: errors QTest::newRow("http-host") << "http://invalid.test.qt-project.org/" << int(QNetworkReply::HostNotFoundError) << 0 << true; - QTest::newRow("http-exist") << "http://" + QtNetworkSettings::serverName() + "/this-file-doesnt-exist.txt" + QTest::newRow("http-exist") << "http://" + QtNetworkSettings::httpServerName() + "/this-file-doesnt-exist.txt" << int(QNetworkReply::ContentNotFoundError) << 404 << false; - QTest::newRow("http-authentication") << "http://" + QtNetworkSettings::serverName() + "/qtest/rfcs-auth" + QTest::newRow("http-authentication") << "http://" + QtNetworkSettings::httpServerName() + "/qtest/rfcs-auth" << int(QNetworkReply::AuthenticationRequiredError) << 401 << false; } @@ -2130,7 +2198,7 @@ void tst_QNetworkReply::putToFtp_data() void tst_QNetworkReply::putToFtp() { - QUrl url("ftp://" + QtNetworkSettings::serverName()); + QUrl url("ftp://" + QtNetworkSettings::ftpServerName()); url.setPath(QString("/qtest/upload/qnetworkaccess-putToFtp-%1-%2") .arg(QTest::currentDataTag()) .arg(uniqueExtension)); @@ -2176,7 +2244,7 @@ void tst_QNetworkReply::putToFtp() void tst_QNetworkReply::putToFtpWithInvalidCredentials() { - QUrl url("ftp://" + QtNetworkSettings::serverName()); + QUrl url("ftp://" + QtNetworkSettings::ftpServerName()); url.setPath(QString("/qtest/upload/qnetworkaccess-putToFtp-%1-%2") .arg(QTest::currentDataTag()) .arg(uniqueExtension)); @@ -2203,7 +2271,7 @@ void tst_QNetworkReply::putToHttp_data() void tst_QNetworkReply::putToHttp() { - QUrl url("http://" + QtNetworkSettings::serverName()); + QUrl url("http://" + QtNetworkSettings::httpServerName()); url.setPath(QString("/dav/qnetworkaccess-putToHttp-%1-%2") .arg(QTest::currentDataTag()) .arg(uniqueExtension)); @@ -2223,7 +2291,7 @@ void tst_QNetworkReply::putToHttp() // download the file again from HTTP to make sure it was uploaded // correctly. HTTP/0.9 is enough QTcpSocket socket; - socket.connectToHost(QtNetworkSettings::serverName(), 80); + socket.connectToHost(QtNetworkSettings::httpServerName(), 80); socket.write("GET " + url.toEncoded(QUrl::RemoveScheme | QUrl::RemoveAuthority) + "\r\n"); if (!socket.waitForDisconnected(10000)) QFAIL("Network timeout"); @@ -2240,7 +2308,7 @@ void tst_QNetworkReply::putToHttpSynchronous_data() void tst_QNetworkReply::putToHttpSynchronous() { - QUrl url("http://" + QtNetworkSettings::serverName()); + QUrl url("http://" + QtNetworkSettings::httpServerName()); url.setPath(QString("/dav/qnetworkaccess-putToHttp-%1-%2") .arg(QTest::currentDataTag()) .arg(uniqueExtension)); @@ -2264,7 +2332,7 @@ void tst_QNetworkReply::putToHttpSynchronous() // download the file again from HTTP to make sure it was uploaded // correctly. HTTP/0.9 is enough QTcpSocket socket; - socket.connectToHost(QtNetworkSettings::serverName(), 80); + socket.connectToHost(QtNetworkSettings::httpServerName(), 80); socket.write("GET " + url.toEncoded(QUrl::RemoveScheme | QUrl::RemoveAuthority) + "\r\n"); if (!socket.waitForDisconnected(10000)) QFAIL("Network timeout"); @@ -2280,7 +2348,7 @@ void tst_QNetworkReply::postToHttp_data() void tst_QNetworkReply::postToHttp() { - QUrl url("http://" + QtNetworkSettings::serverName() + "/qtest/cgi-bin/md5sum.cgi"); + QUrl url("http://" + QtNetworkSettings::httpServerName() + "/qtest/cgi-bin/md5sum.cgi"); QNetworkRequest request(url); request.setRawHeader("Content-Type", "application/octet-stream"); @@ -2307,7 +2375,7 @@ void tst_QNetworkReply::postToHttpSynchronous_data() void tst_QNetworkReply::postToHttpSynchronous() { - QUrl url("http://" + QtNetworkSettings::serverName() + "/qtest/cgi-bin/md5sum.cgi"); + QUrl url("http://" + QtNetworkSettings::httpServerName() + "/qtest/cgi-bin/md5sum.cgi"); QNetworkRequest request(url); request.setRawHeader("Content-Type", "application/octet-stream"); @@ -2339,7 +2407,7 @@ void tst_QNetworkReply::postToHttpMultipart_data() QTest::addColumn<QByteArray>("expectedReplyData"); QTest::addColumn<QByteArray>("contentType"); - QUrl url("http://" + QtNetworkSettings::serverName() + "/qtest/cgi-bin/multipart.cgi"); + QUrl url("http://" + QtNetworkSettings::httpServerName() + "/qtest/cgi-bin/multipart.cgi"); QByteArray expectedData; @@ -2388,8 +2456,13 @@ void tst_QNetworkReply::postToHttpMultipart_data() multiPart2->setContentType(QHttpMultiPart::FormDataType); multiPart2->append(textPart); multiPart2->append(textPart2); +#ifdef QT_TEST_SERVER + expectedData = "key: text, value: 7 bytes\n" + "key: text2, value: some more bytes\n"; +#else expectedData = "key: text2, value: some more bytes\n" "key: text, value: 7 bytes\n"; +#endif QTest::newRow("text-text") << url << multiPart2 << expectedData << QByteArray("form-data"); @@ -2457,9 +2530,15 @@ void tst_QNetworkReply::postToHttpMultipart_data() imagePart22.setBodyDevice(file22); imageMultiPart2->append(imagePart22); file22->setParent(imageMultiPart2); +#ifdef QT_TEST_SERVER + expectedData = "key: text, value: 7 bytes\n" + "key: testImage1, value: 87ef3bb319b004ba9e5e9c9fa713776e\n" + "key: testImage2, value: 483761b893f7fb1bd2414344cd1f3dfb\n"; +#else expectedData = "key: testImage1, value: 87ef3bb319b004ba9e5e9c9fa713776e\n" "key: text, value: 7 bytes\n" "key: testImage2, value: 483761b893f7fb1bd2414344cd1f3dfb\n"; +#endif QTest::newRow("text-image-image") << url << imageMultiPart2 << expectedData << QByteArray("form-data"); @@ -2591,7 +2670,7 @@ void tst_QNetworkReply::postToHttpMultipart() void tst_QNetworkReply::multipartSkipIndices() // QTBUG-32534 { QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart::MixedType); - QUrl url("http://" + QtNetworkSettings::serverName() + "/qtest/cgi-bin/multipart.cgi"); + QUrl url("http://" + QtNetworkSettings::httpServerName() + "/qtest/cgi-bin/multipart.cgi"); QNetworkRequest request(url); QList<QByteArray> parts; parts << QByteArray(56083, 'X') << QByteArray(468, 'X') << QByteArray(24952, 'X'); @@ -2685,13 +2764,13 @@ void tst_QNetworkReply::putToHttps_data() void tst_QNetworkReply::putToHttps() { - QUrl url("https://" + QtNetworkSettings::serverName()); + QUrl url("https://" + QtNetworkSettings::httpServerName()); url.setPath(QString("/dav/qnetworkaccess-putToHttp-%1-%2") .arg(QTest::currentDataTag()) .arg(uniqueExtension)); QNetworkRequest request(url); - QList<QSslCertificate> certs = QSslCertificate::fromPath(testDataDir + "/certs/qt-test-server-cacert.pem"); + QList<QSslCertificate> certs = QSslCertificate::fromPath(testDataDir + certsFilePath); QSslConfiguration conf; conf.setCaCertificates(certs); request.setSslConfiguration(conf); @@ -2709,7 +2788,7 @@ void tst_QNetworkReply::putToHttps() // download the file again from HTTP to make sure it was uploaded // correctly. HTTP/0.9 is enough QTcpSocket socket; - socket.connectToHost(QtNetworkSettings::serverName(), 80); + socket.connectToHost(QtNetworkSettings::httpServerName(), 80); socket.write("GET " + url.toEncoded(QUrl::RemoveScheme | QUrl::RemoveAuthority) + "\r\n"); if (!socket.waitForDisconnected(10000)) QFAIL("Network timeout"); @@ -2726,13 +2805,13 @@ void tst_QNetworkReply::putToHttpsSynchronous_data() void tst_QNetworkReply::putToHttpsSynchronous() { - QUrl url("https://" + QtNetworkSettings::serverName()); + QUrl url("https://" + QtNetworkSettings::httpServerName()); url.setPath(QString("/dav/qnetworkaccess-putToHttp-%1-%2") .arg(QTest::currentDataTag()) .arg(uniqueExtension)); QNetworkRequest request(url); - QList<QSslCertificate> certs = QSslCertificate::fromPath(testDataDir + "/certs/qt-test-server-cacert.pem"); + QList<QSslCertificate> certs = QSslCertificate::fromPath(testDataDir + certsFilePath); QSslConfiguration conf; conf.setCaCertificates(certs); request.setSslConfiguration(conf); @@ -2754,7 +2833,7 @@ void tst_QNetworkReply::putToHttpsSynchronous() // download the file again from HTTP to make sure it was uploaded // correctly. HTTP/0.9 is enough QTcpSocket socket; - socket.connectToHost(QtNetworkSettings::serverName(), 80); + socket.connectToHost(QtNetworkSettings::httpServerName(), 80); socket.write("GET " + url.toEncoded(QUrl::RemoveScheme | QUrl::RemoveAuthority) + "\r\n"); if (!socket.waitForDisconnected(10000)) QFAIL("Network timeout"); @@ -2770,10 +2849,10 @@ void tst_QNetworkReply::postToHttps_data() void tst_QNetworkReply::postToHttps() { - QUrl url("https://" + QtNetworkSettings::serverName() + "/qtest/cgi-bin/md5sum.cgi"); + QUrl url("https://" + QtNetworkSettings::httpServerName() + "/qtest/cgi-bin/md5sum.cgi"); QNetworkRequest request(url); - QList<QSslCertificate> certs = QSslCertificate::fromPath(testDataDir + "/certs/qt-test-server-cacert.pem"); + QList<QSslCertificate> certs = QSslCertificate::fromPath(testDataDir + certsFilePath); QSslConfiguration conf; conf.setCaCertificates(certs); request.setSslConfiguration(conf); @@ -2801,10 +2880,10 @@ void tst_QNetworkReply::postToHttpsSynchronous_data() void tst_QNetworkReply::postToHttpsSynchronous() { - QUrl url("https://" + QtNetworkSettings::serverName() + "/qtest/cgi-bin/md5sum.cgi"); + QUrl url("https://" + QtNetworkSettings::httpServerName() + "/qtest/cgi-bin/md5sum.cgi"); QNetworkRequest request(url); - QList<QSslCertificate> certs = QSslCertificate::fromPath(testDataDir + "/certs/qt-test-server-cacert.pem"); + QList<QSslCertificate> certs = QSslCertificate::fromPath(testDataDir + certsFilePath); QSslConfiguration conf; conf.setCaCertificates(certs); request.setSslConfiguration(conf); @@ -2843,7 +2922,7 @@ void tst_QNetworkReply::postToHttpsMultipart() static QSet<QByteArray> boundaries; QNetworkRequest request(url); - QList<QSslCertificate> certs = QSslCertificate::fromPath(testDataDir + "/certs/qt-test-server-cacert.pem"); + QList<QSslCertificate> certs = QSslCertificate::fromPath(testDataDir + certsFilePath); QSslConfiguration conf; conf.setCaCertificates(certs); request.setSslConfiguration(conf); @@ -2888,11 +2967,26 @@ void tst_QNetworkReply::deleteFromHttp_data() // for status codes to expect, see http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html - QTest::newRow("405-method-not-allowed") << QUrl("http://" + QtNetworkSettings::serverName() + "/index.html") << 405 << QNetworkReply::ContentOperationNotPermittedError; - QTest::newRow("200-ok") << QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/cgi-bin/http-delete.cgi?200-ok") << 200 << QNetworkReply::NoError; - QTest::newRow("202-accepted") << QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/cgi-bin/http-delete.cgi?202-accepted") << 202 << QNetworkReply::NoError; - QTest::newRow("204-no-content") << QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/cgi-bin/http-delete.cgi?204-no-content") << 204 << QNetworkReply::NoError; - QTest::newRow("404-not-found") << QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/cgi-bin/http-delete.cgi?404-not-found") << 404 << QNetworkReply::ContentNotFoundError; + QString httpServer = QtNetworkSettings::httpServerName(); + QTest::newRow("405-method-not-allowed") + << QUrl("http://" + httpServer + "/index.html") + << 405 << QNetworkReply::ContentOperationNotPermittedError; + + QTest::newRow("200-ok") + << QUrl("http://" + httpServer + "/qtest/cgi-bin/http-delete.cgi?200-ok") + << 200 << QNetworkReply::NoError; + + QTest::newRow("202-accepted") + << QUrl("http://" + httpServer + "/qtest/cgi-bin/http-delete.cgi?202-accepted") + << 202 << QNetworkReply::NoError; + + QTest::newRow("204-no-content") + << QUrl("http://" + httpServer + "/qtest/cgi-bin/http-delete.cgi?204-no-content") + << 204 << QNetworkReply::NoError; + + QTest::newRow("404-not-found") + << QUrl("http://" + httpServer + "/qtest/cgi-bin/http-delete.cgi?404-not-found") + << 404 << QNetworkReply::ContentNotFoundError; } void tst_QNetworkReply::deleteFromHttp() @@ -2920,7 +3014,7 @@ void tst_QNetworkReply::putGetDeleteGetFromHttp_data() QTest::addColumn<int>("get2ResultCode"); QTest::addColumn<QNetworkReply::NetworkError>("get2Error"); - QUrl url("http://" + QtNetworkSettings::serverName()); + QUrl url("http://" + QtNetworkSettings::httpServerName()); url.setPath(QString("/dav/qnetworkaccess-putToHttp-%1-%2") .arg(QTest::currentDataTag()) .arg(uniqueExtension)); @@ -2928,7 +3022,7 @@ void tst_QNetworkReply::putGetDeleteGetFromHttp_data() // first use case: put, get (to check it is there), delete, get (to check it is not there anymore) QTest::newRow("success") << url << 201 << QNetworkReply::NoError << url << 204 << QNetworkReply::NoError << url << 404 << QNetworkReply::ContentNotFoundError; - QUrl wrongUrl("http://" + QtNetworkSettings::serverName()); + QUrl wrongUrl("http://" + QtNetworkSettings::httpServerName()); wrongUrl.setPath(QString("/dav/qnetworkaccess-thisURLisNotAvailable")); // second use case: put, get (to check it is there), delete wrong URL, get (to check it is still there) @@ -3023,27 +3117,27 @@ void tst_QNetworkReply::sendCustomRequestToHttp_data() QTest::addColumn<QNetworkReply::NetworkError>("error"); QTest::addColumn<QByteArray>("expectedContent"); - QTest::newRow("options") << QUrl("http://" + QtNetworkSettings::serverName()) << + QTest::newRow("options") << QUrl("http://" + QtNetworkSettings::httpServerName()) << QByteArray("OPTIONS") << (QBuffer *) 0 << 200 << QNetworkReply::NoError << QByteArray(); - QTest::newRow("trace") << QUrl("http://" + QtNetworkSettings::serverName()) << + QTest::newRow("trace") << QUrl("http://" + QtNetworkSettings::httpServerName()) << QByteArray("TRACE") << (QBuffer *) 0 << 200 << QNetworkReply::NoError << QByteArray(); - QTest::newRow("connect") << QUrl("http://" + QtNetworkSettings::serverName()) << + QTest::newRow("connect") << QUrl("http://" + QtNetworkSettings::httpServerName()) << QByteArray("CONNECT") << (QBuffer *) 0 << 400 << QNetworkReply::ProtocolInvalidOperationError << QByteArray(); // 400 = Bad Request - QTest::newRow("nonsense") << QUrl("http://" + QtNetworkSettings::serverName()) << + QTest::newRow("nonsense") << QUrl("http://" + QtNetworkSettings::httpServerName()) << QByteArray("NONSENSE") << (QBuffer *) 0 << 501 << QNetworkReply::OperationNotImplementedError << QByteArray(); // 501 = Method Not Implemented QByteArray ba("test"); QBuffer *buffer = new QBuffer; buffer->setData(ba); buffer->open(QIODevice::ReadOnly); - QTest::newRow("post") << QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/cgi-bin/md5sum.cgi") << QByteArray("POST") + QTest::newRow("post") << QUrl("http://" + QtNetworkSettings::httpServerName() + "/qtest/cgi-bin/md5sum.cgi") << QByteArray("POST") << buffer << 200 << QNetworkReply::NoError << QByteArray("098f6bcd4621d373cade4e832627b4f6\n"); QByteArray ba2("test"); QBuffer *buffer2 = new QBuffer; buffer2->setData(ba2); buffer2->open(QIODevice::ReadOnly); - QTest::newRow("put") << QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/cgi-bin/md5sum.cgi") << QByteArray("PUT") + QTest::newRow("put") << QUrl("http://" + QtNetworkSettings::httpServerName() + "/qtest/cgi-bin/md5sum.cgi") << QByteArray("PUT") << buffer2 << 200 << QNetworkReply::NoError << QByteArray("098f6bcd4621d373cade4e832627b4f6\n"); } @@ -3181,7 +3275,7 @@ void tst_QNetworkReply::ioGetFromFtp() QFile reference(fileName); reference.open(QIODevice::ReadOnly); // will fail for bigfile - QNetworkRequest request("ftp://" + QtNetworkSettings::serverName() + "/qtest/" + fileName); + QNetworkRequest request("ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/" + fileName); QNetworkReplyPtr reply(manager.get(request)); DataReader reader(reply); @@ -3204,7 +3298,7 @@ void tst_QNetworkReply::ioGetFromFtpWithReuse() QFile reference(fileName); reference.open(QIODevice::ReadOnly); - QNetworkRequest request(QUrl("ftp://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt")); + QNetworkRequest request(QUrl("ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/rfc3252.txt")); // two concurrent (actually, consecutive) gets: QNetworkReplyPtr reply1(manager.get(request)); @@ -3236,7 +3330,7 @@ void tst_QNetworkReply::ioGetFromHttp() QFile reference(testDataDir + "/rfc3252.txt"); QVERIFY(reference.open(QIODevice::ReadOnly)); - QNetworkRequest request(QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt")); + QNetworkRequest request(QUrl("http://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt")); QNetworkReplyPtr reply(manager.get(request)); DataReader reader(reply); @@ -3257,7 +3351,7 @@ void tst_QNetworkReply::ioGetFromHttpWithReuseParallel() QFile reference(testDataDir + "/rfc3252.txt"); QVERIFY(reference.open(QIODevice::ReadOnly)); - QNetworkRequest request(QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt")); + QNetworkRequest request(QUrl("http://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt")); QNetworkReplyPtr reply1(manager.get(request)); QNetworkReplyPtr reply2(manager.get(request)); DataReader reader1(reply1); @@ -3289,7 +3383,7 @@ void tst_QNetworkReply::ioGetFromHttpWithReuseSequential() QFile reference(testDataDir + "/rfc3252.txt"); QVERIFY(reference.open(QIODevice::ReadOnly)); - QNetworkRequest request(QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt")); + QNetworkRequest request(QUrl("http://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt")); { QNetworkReplyPtr reply(manager.get(request)); DataReader reader(reply); @@ -3334,16 +3428,40 @@ void tst_QNetworkReply::ioGetFromHttpWithAuth_data() QFile reference(testDataDir + "/rfc3252.txt"); reference.open(QIODevice::ReadOnly); QByteArray referenceData = reference.readAll(); - QTest::newRow("basic") << QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/rfcs-auth/rfc3252.txt") << referenceData << 1; - QTest::newRow("digest") << QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/auth-digest/") << QByteArray("digest authentication successful\n") << 1; + QString httpServer = QtNetworkSettings::httpServerName(); + QTest::newRow("basic") + << QUrl("http://" + httpServer + "/qtest/rfcs-auth/rfc3252.txt") + << referenceData << 1; + + QTest::newRow("digest") + << QUrl("http://" + httpServer + "/qtest/auth-digest/") + << QByteArray("digest authentication successful\n") << 1; + //if url contains username & password, then it should be used - QTest::newRow("basic-in-url") << QUrl("http://httptest:httptest@" + QtNetworkSettings::serverName() + "/qtest/rfcs-auth/rfc3252.txt") << referenceData << 0; - QTest::newRow("digest-in-url") << QUrl("http://httptest:httptest@" + QtNetworkSettings::serverName() + "/qtest/auth-digest/") << QByteArray("digest authentication successful\n") << 0; + QTest::newRow("basic-in-url") + << QUrl("http://httptest:httptest@" + httpServer + "/qtest/rfcs-auth/rfc3252.txt") + << referenceData << 0; + + QTest::newRow("digest-in-url") + << QUrl("http://httptest:httptest@" + httpServer + "/qtest/auth-digest/") + << QByteArray("digest authentication successful\n") << 0; + // if url contains incorrect credentials, expect QNAM to ask for good ones (even if cached - matches behaviour of browsers) - QTest::newRow("basic-bad-user-in-url") << QUrl("http://baduser:httptest@" + QtNetworkSettings::serverName() + "/qtest/rfcs-auth/rfc3252.txt") << referenceData << 3; - QTest::newRow("basic-bad-password-in-url") << QUrl("http://httptest:wrong@" + QtNetworkSettings::serverName() + "/qtest/rfcs-auth/rfc3252.txt") << referenceData << 3; - QTest::newRow("digest-bad-user-in-url") << QUrl("http://baduser:httptest@" + QtNetworkSettings::serverName() + "/qtest/auth-digest/") << QByteArray("digest authentication successful\n") << 3; - QTest::newRow("digest-bad-password-in-url") << QUrl("http://httptest:wrong@" + QtNetworkSettings::serverName() + "/qtest/auth-digest/") << QByteArray("digest authentication successful\n") << 3; + QTest::newRow("basic-bad-user-in-url") + << QUrl("http://baduser:httptest@" + httpServer + "/qtest/rfcs-auth/rfc3252.txt") + << referenceData << 3; + + QTest::newRow("basic-bad-password-in-url") + << QUrl("http://httptest:wrong@" + httpServer + "/qtest/rfcs-auth/rfc3252.txt") + << referenceData << 3; + + QTest::newRow("digest-bad-user-in-url") + << QUrl("http://baduser:httptest@" + httpServer + "/qtest/auth-digest/") + << QByteArray("digest authentication successful\n") << 3; + + QTest::newRow("digest-bad-password-in-url") + << QUrl("http://httptest:wrong@" + httpServer + "/qtest/auth-digest/") + << QByteArray("digest authentication successful\n") << 3; } void tst_QNetworkReply::ioGetFromHttpWithAuth() @@ -3459,7 +3577,7 @@ void tst_QNetworkReply::ioGetFromHttpWithAuthSynchronous() // verify that we do not enter an endless loop with synchronous calls and wrong credentials // the case when we succeed with the login is tested in ioGetFromHttpWithAuth() - QNetworkRequest request(QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/rfcs-auth/rfc3252.txt")); + QNetworkRequest request(QUrl("http://" + QtNetworkSettings::httpServerName() + "/qtest/rfcs-auth/rfc3252.txt")); request.setAttribute( QNetworkRequest::SynchronousRequestAttribute, true); @@ -3481,8 +3599,8 @@ void tst_QNetworkReply::ioGetFromHttpWithProxyAuth() QFile reference(testDataDir + "/rfc3252.txt"); QVERIFY(reference.open(QIODevice::ReadOnly)); - QNetworkProxy proxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::serverName(), 3129); - QNetworkRequest request(QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt")); + QNetworkProxy proxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::httpProxyServerName(), 3129); + QNetworkRequest request(QUrl("http://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt")); { manager.setProxy(proxy); QNetworkReplyPtr reply1(manager.get(request)); @@ -3561,8 +3679,8 @@ void tst_QNetworkReply::ioGetFromHttpWithProxyAuthSynchronous() // verify that we do not enter an endless loop with synchronous calls and wrong credentials // the case when we succeed with the login is tested in ioGetFromHttpWithAuth() - QNetworkProxy proxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::serverName(), 3129); - QNetworkRequest request(QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt")); + QNetworkProxy proxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::httpProxyServerName(), 3129); + QNetworkRequest request(QUrl("http://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt")); manager.setProxy(proxy); request.setAttribute( QNetworkRequest::SynchronousRequestAttribute, @@ -3585,8 +3703,8 @@ void tst_QNetworkReply::ioGetFromHttpWithSocksProxy() QFile reference(testDataDir + "/rfc3252.txt"); QVERIFY(reference.open(QIODevice::ReadOnly)); - QNetworkProxy proxy(QNetworkProxy::Socks5Proxy, QtNetworkSettings::serverName(), 1080); - QNetworkRequest request(QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt")); + QNetworkProxy proxy(QNetworkProxy::Socks5Proxy, QtNetworkSettings::socksProxyServerName(), 1080); + QNetworkRequest request(QUrl("http://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt")); { manager.setProxy(proxy); QNetworkReplyPtr reply(manager.get(request)); @@ -3609,7 +3727,7 @@ void tst_QNetworkReply::ioGetFromHttpWithSocksProxy() } // set an invalid proxy just to make sure that we can't load - proxy = QNetworkProxy(QNetworkProxy::Socks5Proxy, QtNetworkSettings::serverName(), 1079); + proxy = QNetworkProxy(QNetworkProxy::Socks5Proxy, QtNetworkSettings::socksProxyServerName(), 1079); { manager.setProxy(proxy); QNetworkReplyPtr reply(manager.get(request)); @@ -3643,7 +3761,7 @@ void tst_QNetworkReply::ioGetFromHttpsWithSslErrors() QFile reference(testDataDir + "/rfc3252.txt"); QVERIFY(reference.open(QIODevice::ReadOnly)); - QNetworkRequest request(QUrl("https://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt")); + QNetworkRequest request(QUrl("https://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt")); QNetworkReplyPtr reply(manager.get(request)); DataReader reader(reply); @@ -3674,7 +3792,7 @@ void tst_QNetworkReply::ioGetFromHttpsWithIgnoreSslErrors() QFile reference(testDataDir + "/rfc3252.txt"); QVERIFY(reference.open(QIODevice::ReadOnly)); - QNetworkRequest request(QUrl("https://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt")); + QNetworkRequest request(QUrl("https://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt")); QNetworkReplyPtr reply(manager.get(request)); reply->ignoreSslErrors(); @@ -3699,7 +3817,7 @@ void tst_QNetworkReply::ioGetFromHttpsWithSslHandshakeError() QFile reference(testDataDir + "/rfc3252.txt"); QVERIFY(reference.open(QIODevice::ReadOnly)); - QNetworkRequest request(QUrl("https://" + QtNetworkSettings::serverName() + ":80")); + QNetworkRequest request(QUrl("https://" + QtNetworkSettings::httpServerName() + ":80")); QNetworkReplyPtr reply(manager.get(request)); reply->ignoreSslErrors(); @@ -4013,34 +4131,34 @@ void tst_QNetworkReply::ioGetWithManyProxies_data() // Simple tests that work: // HTTP request with HTTP caching proxy - proxyList << QNetworkProxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::serverName(), 3129); + proxyList << QNetworkProxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::httpProxyServerName(), 3129); QTest::newRow("http-on-http") << proxyList << proxyList.at(0) - << "http://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt" + << "http://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt" << QNetworkReply::NoError; // HTTP request with HTTP transparent proxy proxyList.clear(); - proxyList << QNetworkProxy(QNetworkProxy::HttpProxy, QtNetworkSettings::serverName(), 3129); + proxyList << QNetworkProxy(QNetworkProxy::HttpProxy, QtNetworkSettings::httpProxyServerName(), 3129); QTest::newRow("http-on-http2") << proxyList << proxyList.at(0) - << "http://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt" + << "http://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt" << QNetworkReply::NoError; // HTTP request with SOCKS transparent proxy proxyList.clear(); - proxyList << QNetworkProxy(QNetworkProxy::Socks5Proxy, QtNetworkSettings::serverName(), 1081); + proxyList << QNetworkProxy(QNetworkProxy::Socks5Proxy, QtNetworkSettings::socksProxyServerName(), 1081); QTest::newRow("http-on-socks") << proxyList << proxyList.at(0) - << "http://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt" + << "http://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt" << QNetworkReply::NoError; // FTP request with FTP caching proxy proxyList.clear(); - proxyList << QNetworkProxy(QNetworkProxy::FtpCachingProxy, QtNetworkSettings::serverName(), 2121); + proxyList << QNetworkProxy(QNetworkProxy::FtpCachingProxy, QtNetworkSettings::ftpProxyServerName(), 2121); QTest::newRow("ftp-on-ftp") << proxyList << proxyList.at(0) - << "ftp://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt" + << "ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/rfc3252.txt" << QNetworkReply::NoError; // The following test doesn't work because QFtp is too limited @@ -4048,27 +4166,27 @@ void tst_QNetworkReply::ioGetWithManyProxies_data() // FTP request with SOCKSv5 transparent proxy proxyList.clear(); - proxyList << QNetworkProxy(QNetworkProxy::Socks5Proxy, QtNetworkSettings::serverName(), 1081); + proxyList << QNetworkProxy(QNetworkProxy::Socks5Proxy, QtNetworkSettings::socksProxyServerName(), 1081); QTest::newRow("ftp-on-socks") << proxyList << proxyList.at(0) - << "ftp://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt" + << "ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/rfc3252.txt" << QNetworkReply::NoError; #ifndef QT_NO_SSL // HTTPS with HTTP transparent proxy proxyList.clear(); - proxyList << QNetworkProxy(QNetworkProxy::HttpProxy, QtNetworkSettings::serverName(), 3129); + proxyList << QNetworkProxy(QNetworkProxy::HttpProxy, QtNetworkSettings::httpProxyServerName(), 3129); QTest::newRow("https-on-http") << proxyList << proxyList.at(0) - << "https://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt" + << "https://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt" << QNetworkReply::NoError; // HTTPS request with SOCKS transparent proxy proxyList.clear(); - proxyList << QNetworkProxy(QNetworkProxy::Socks5Proxy, QtNetworkSettings::serverName(), 1081); + proxyList << QNetworkProxy(QNetworkProxy::Socks5Proxy, QtNetworkSettings::socksProxyServerName(), 1081); QTest::newRow("https-on-socks") << proxyList << proxyList.at(0) - << "https://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt" + << "https://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt" << QNetworkReply::NoError; #endif @@ -4076,44 +4194,44 @@ void tst_QNetworkReply::ioGetWithManyProxies_data() // HTTP request with FTP caching proxy proxyList.clear(); - proxyList << QNetworkProxy(QNetworkProxy::FtpCachingProxy, QtNetworkSettings::serverName(), 2121); + proxyList << QNetworkProxy(QNetworkProxy::FtpCachingProxy, QtNetworkSettings::ftpProxyServerName(), 2121); QTest::newRow("http-on-ftp") << proxyList << QNetworkProxy() - << "http://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt" + << "http://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt" << QNetworkReply::ProxyNotFoundError; // FTP request with HTTP caching proxy proxyList.clear(); - proxyList << QNetworkProxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::serverName(), 3129); + proxyList << QNetworkProxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::httpProxyServerName(), 3129); QTest::newRow("ftp-on-http") << proxyList << QNetworkProxy() - << "ftp://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt" + << "ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/rfc3252.txt" << QNetworkReply::ProxyNotFoundError; // FTP request with HTTP caching proxies proxyList.clear(); - proxyList << QNetworkProxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::serverName(), 3129) - << QNetworkProxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::serverName(), 3130); + proxyList << QNetworkProxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::httpProxyServerName(), 3129) + << QNetworkProxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::httpProxyServerName(), 3130); QTest::newRow("ftp-on-multiple-http") << proxyList << QNetworkProxy() - << "ftp://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt" + << "ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/rfc3252.txt" << QNetworkReply::ProxyNotFoundError; #ifndef QT_NO_SSL // HTTPS with HTTP caching proxy proxyList.clear(); - proxyList << QNetworkProxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::serverName(), 3129); + proxyList << QNetworkProxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::httpProxyServerName(), 3129); QTest::newRow("https-on-httptransparent") << proxyList << QNetworkProxy() - << "https://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt" + << "https://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt" << QNetworkReply::ProxyNotFoundError; // HTTPS with FTP caching proxy proxyList.clear(); - proxyList << QNetworkProxy(QNetworkProxy::FtpCachingProxy, QtNetworkSettings::serverName(), 2121); + proxyList << QNetworkProxy(QNetworkProxy::FtpCachingProxy, QtNetworkSettings::ftpProxyServerName(), 2121); QTest::newRow("https-on-ftp") << proxyList << QNetworkProxy() - << "https://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt" + << "https://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt" << QNetworkReply::ProxyNotFoundError; #endif @@ -4121,77 +4239,77 @@ void tst_QNetworkReply::ioGetWithManyProxies_data() // HTTP request with more than one HTTP proxy proxyList.clear(); - proxyList << QNetworkProxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::serverName(), 3129) - << QNetworkProxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::serverName(), 3130); + proxyList << QNetworkProxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::httpProxyServerName(), 3129) + << QNetworkProxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::httpProxyServerName(), 3130); QTest::newRow("http-on-multiple-http") << proxyList << proxyList.at(0) - << "http://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt" + << "http://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt" << QNetworkReply::NoError; // HTTP request with HTTP + SOCKS proxyList.clear(); - proxyList << QNetworkProxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::serverName(), 3129) - << QNetworkProxy(QNetworkProxy::Socks5Proxy, QtNetworkSettings::serverName(), 1081); + proxyList << QNetworkProxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::httpProxyServerName(), 3129) + << QNetworkProxy(QNetworkProxy::Socks5Proxy, QtNetworkSettings::socksProxyServerName(), 1081); QTest::newRow("http-on-http+socks") << proxyList << proxyList.at(0) - << "http://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt" + << "http://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt" << QNetworkReply::NoError; // HTTP request with FTP + HTTP + SOCKS proxyList.clear(); - proxyList << QNetworkProxy(QNetworkProxy::FtpCachingProxy, QtNetworkSettings::serverName(), 2121) - << QNetworkProxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::serverName(), 3129) - << QNetworkProxy(QNetworkProxy::Socks5Proxy, QtNetworkSettings::serverName(), 1081); + proxyList << QNetworkProxy(QNetworkProxy::FtpCachingProxy, QtNetworkSettings::ftpProxyServerName(), 2121) + << QNetworkProxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::httpProxyServerName(), 3129) + << QNetworkProxy(QNetworkProxy::Socks5Proxy, QtNetworkSettings::socksProxyServerName(), 1081); QTest::newRow("http-on-ftp+http+socks") << proxyList << proxyList.at(1) // second proxy should be used - << "http://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt" + << "http://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt" << QNetworkReply::NoError; // HTTP request with NoProxy + HTTP proxyList.clear(); proxyList << QNetworkProxy(QNetworkProxy::NoProxy) - << QNetworkProxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::serverName(), 3129); + << QNetworkProxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::httpProxyServerName(), 3129); QTest::newRow("http-on-noproxy+http") << proxyList << proxyList.at(0) - << "http://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt" + << "http://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt" << QNetworkReply::NoError; // HTTP request with FTP + NoProxy proxyList.clear(); - proxyList << QNetworkProxy(QNetworkProxy::FtpCachingProxy, QtNetworkSettings::serverName(), 2121) + proxyList << QNetworkProxy(QNetworkProxy::FtpCachingProxy, QtNetworkSettings::ftpProxyServerName(), 2121) << QNetworkProxy(QNetworkProxy::NoProxy); QTest::newRow("http-on-ftp+noproxy") << proxyList << proxyList.at(1) // second proxy should be used - << "http://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt" + << "http://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt" << QNetworkReply::NoError; // FTP request with HTTP Caching + FTP proxyList.clear(); - proxyList << QNetworkProxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::serverName(), 3129) - << QNetworkProxy(QNetworkProxy::FtpCachingProxy, QtNetworkSettings::serverName(), 2121); + proxyList << QNetworkProxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::httpProxyServerName(), 3129) + << QNetworkProxy(QNetworkProxy::FtpCachingProxy, QtNetworkSettings::ftpProxyServerName(), 2121); QTest::newRow("ftp-on-http+ftp") << proxyList << proxyList.at(1) // second proxy should be used - << "ftp://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt" + << "ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/rfc3252.txt" << QNetworkReply::NoError; #ifndef QT_NO_SSL // HTTPS request with HTTP Caching + HTTP transparent proxyList.clear(); - proxyList << QNetworkProxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::serverName(), 3129) - << QNetworkProxy(QNetworkProxy::HttpProxy, QtNetworkSettings::serverName(), 3129); + proxyList << QNetworkProxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::httpProxyServerName(), 3129) + << QNetworkProxy(QNetworkProxy::HttpProxy, QtNetworkSettings::httpProxyServerName(), 3129); QTest::newRow("https-on-httpcaching+http") << proxyList << proxyList.at(1) // second proxy should be used - << "https://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt" + << "https://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt" << QNetworkReply::NoError; // HTTPS request with FTP + HTTP C + HTTP T proxyList.clear(); - proxyList << QNetworkProxy(QNetworkProxy::FtpCachingProxy, QtNetworkSettings::serverName(), 2121) - << QNetworkProxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::serverName(), 3129) - << QNetworkProxy(QNetworkProxy::HttpProxy, QtNetworkSettings::serverName(), 3129); + proxyList << QNetworkProxy(QNetworkProxy::FtpCachingProxy, QtNetworkSettings::ftpProxyServerName(), 2121) + << QNetworkProxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::httpProxyServerName(), 3129) + << QNetworkProxy(QNetworkProxy::HttpProxy, QtNetworkSettings::httpProxyServerName(), 3129); QTest::newRow("https-on-ftp+httpcaching+http") << proxyList << proxyList.at(2) // skip the first two - << "https://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt" + << "https://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt" << QNetworkReply::NoError; #endif } @@ -4442,7 +4560,7 @@ void tst_QNetworkReply::ioPutToFtpFromFile() QFile sourceFile(fileName); QVERIFY(sourceFile.open(QIODevice::ReadOnly)); - QUrl url("ftp://" + QtNetworkSettings::serverName()); + QUrl url("ftp://" + QtNetworkSettings::ftpServerName()); url.setPath(QString("/qtest/upload/qnetworkaccess-ioPutToFtpFromFile-%1-%2") .arg(QTest::currentDataTag()) .arg(uniqueExtension)); @@ -4491,7 +4609,7 @@ void tst_QNetworkReply::ioPutToHttpFromFile() QFile sourceFile(fileName); QVERIFY(sourceFile.open(QIODevice::ReadOnly)); - QUrl url("http://" + QtNetworkSettings::serverName()); + QUrl url("http://" + QtNetworkSettings::httpServerName()); url.setPath(QString("/dav/qnetworkaccess-ioPutToHttpFromFile-%1-%2") .arg(QTest::currentDataTag()) .arg(uniqueExtension)); @@ -4534,7 +4652,7 @@ void tst_QNetworkReply::ioPostToHttpFromFile() QFile sourceFile(fileName); QVERIFY(sourceFile.open(QIODevice::ReadOnly)); - QUrl url("http://" + QtNetworkSettings::serverName() + "/qtest/cgi-bin/md5sum.cgi"); + QUrl url("http://" + QtNetworkSettings::httpServerName() + "/qtest/cgi-bin/md5sum.cgi"); QNetworkRequest request(url); request.setRawHeader("Content-Type", "application/octet-stream"); @@ -4568,9 +4686,9 @@ void tst_QNetworkReply::ioPostToHttpFromSocket_data() for (int auth = 0; auth < 2; ++auth) { QUrl url; if (auth) - url = "http://" + QtNetworkSettings::serverName() + "/qtest/protected/cgi-bin/md5sum.cgi"; + url = "http://" + QtNetworkSettings::httpServerName() + "/qtest/protected/cgi-bin/md5sum.cgi"; else - url = "http://" + QtNetworkSettings::serverName() + "/qtest/cgi-bin/md5sum.cgi"; + url = "http://" + QtNetworkSettings::httpServerName() + "/qtest/cgi-bin/md5sum.cgi"; QNetworkProxy proxy = proxies.at(i).proxy; QByteArray testsuffix = QByteArray(auth ? "+auth" : "") + proxies.at(i).tag; @@ -4685,7 +4803,7 @@ void tst_QNetworkReply::ioPostToHttpFromSocketSynchronous() // ### for 4.8: make the socket pair unbuffered, to not read everything in one go in QNetworkReplyImplPrivate::setup() QTestEventLoop::instance().enterLoop(3); - QUrl url("http://" + QtNetworkSettings::serverName() + "/qtest/cgi-bin/md5sum.cgi"); + QUrl url("http://" + QtNetworkSettings::httpServerName() + "/qtest/cgi-bin/md5sum.cgi"); QNetworkRequest request(url); request.setRawHeader("Content-Type", "application/octet-stream"); request.setAttribute( @@ -4716,7 +4834,7 @@ void tst_QNetworkReply::ioPostToHttpFromMiddleOfFileToEnd() // seeking to the middle sourceFile.seek(sourceFile.size() / 2); - QUrl url = "http://" + QtNetworkSettings::serverName() + "/qtest/protected/cgi-bin/md5sum.cgi"; + QUrl url = "http://" + QtNetworkSettings::httpServerName() + "/qtest/protected/cgi-bin/md5sum.cgi"; QNetworkRequest request(url); request.setRawHeader("Content-Type", "application/octet-stream"); QNetworkReplyPtr reply(manager.post(request, &sourceFile)); @@ -4742,7 +4860,7 @@ void tst_QNetworkReply::ioPostToHttpFromMiddleOfFileFiveBytes() // seeking to the middle sourceFile.seek(sourceFile.size() / 2); - QUrl url = "http://" + QtNetworkSettings::serverName() + "/qtest/protected/cgi-bin/md5sum.cgi"; + QUrl url = "http://" + QtNetworkSettings::httpServerName() + "/qtest/protected/cgi-bin/md5sum.cgi"; QNetworkRequest request(url); request.setRawHeader("Content-Type", "application/octet-stream"); // only send 5 bytes @@ -4773,7 +4891,7 @@ void tst_QNetworkReply::ioPostToHttpFromMiddleOfQBufferFiveBytes() uploadBuffer.write("1234567890"); uploadBuffer.seek(5); - QUrl url = "http://" + QtNetworkSettings::serverName() + "/qtest/protected/cgi-bin/md5sum.cgi"; + QUrl url = "http://" + QtNetworkSettings::httpServerName() + "/qtest/protected/cgi-bin/md5sum.cgi"; QNetworkRequest request(url); request.setRawHeader("Content-Type", "application/octet-stream"); QNetworkReplyPtr reply(manager.post(request, &uploadBuffer)); @@ -4801,7 +4919,7 @@ void tst_QNetworkReply::ioPostToHttpNoBufferFlag() QTRY_VERIFY(socketpair.create()); //QTRY_VERIFY as a workaround for QTBUG-24451 socketpair.endPoints[0]->write(data); - QUrl url = "http://" + QtNetworkSettings::serverName() + "/qtest/protected/cgi-bin/md5sum.cgi"; + QUrl url = "http://" + QtNetworkSettings::httpServerName() + "/qtest/protected/cgi-bin/md5sum.cgi"; QNetworkRequest request(url); request.setRawHeader("Content-Type", "application/octet-stream"); // disallow buffering @@ -5216,7 +5334,7 @@ void tst_QNetworkReply::lastModifiedHeaderForFile() void tst_QNetworkReply::lastModifiedHeaderForHttp() { // Tue, 22 May 2007 12:04:57 GMT according to webserver - QUrl url = "http://" + QtNetworkSettings::serverName() + "/qtest/fluke.gif"; + QUrl url = "http://" + QtNetworkSettings::httpServerName() + "/qtest/fluke.gif"; QNetworkRequest request(url); QNetworkReplyPtr reply(manager.head(request)); @@ -5232,7 +5350,7 @@ void tst_QNetworkReply::lastModifiedHeaderForHttp() void tst_QNetworkReply::httpCanReadLine() { - QNetworkRequest request(QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt")); + QNetworkRequest request(QUrl("http://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt")); QNetworkReplyPtr reply(manager.get(request)); QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply)); @@ -5312,11 +5430,11 @@ void tst_QNetworkReply::downloadProgress_data() QTest::addColumn<int>("expectedSize"); QTest::newRow("empty") << QUrl::fromLocalFile(QFINDTESTDATA("empty")) << 0; - QTest::newRow("http:small") << QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt") << 25962; - QTest::newRow("http:big") << QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/bigfile") << 519240; - QTest::newRow("http:no-length") << QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/deflate/rfc2616.html") << -1; - QTest::newRow("ftp:small") << QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt") << 25962; - QTest::newRow("ftp:big") << QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/bigfile") << 519240; + QTest::newRow("http:small") << QUrl("http://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt") << 25962; + QTest::newRow("http:big") << QUrl("http://" + QtNetworkSettings::httpServerName() + "/qtest/bigfile") << 519240; + QTest::newRow("http:no-length") << QUrl("http://" + QtNetworkSettings::httpServerName() + "/qtest/deflate/rfc2616.html") << -1; + QTest::newRow("ftp:small") << QUrl("http://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt") << 25962; + QTest::newRow("ftp:big") << QUrl("http://" + QtNetworkSettings::httpServerName() + "/qtest/bigfile") << 519240; } class SlowReader : public QObject @@ -5473,7 +5591,7 @@ void tst_QNetworkReply::receiveCookiesFromHttp_data() QList<QNetworkCookie> header, jar; QNetworkCookie cookie("a", "b"); header << cookie; - cookie.setDomain(QtNetworkSettings::serverName()); + cookie.setDomain(QtNetworkSettings::httpServerName()); cookie.setPath("/qtest/cgi-bin/"); jar << cookie; QTest::newRow("simple-cookie") << "a=b" << header << jar; @@ -5497,7 +5615,7 @@ void tst_QNetworkReply::receiveCookiesFromHttp_data() cookie = QNetworkCookie("a", "b"); cookie.setPath("/not/part-of-path"); header << cookie; - cookie.setDomain(QtNetworkSettings::serverName()); + cookie.setDomain(QtNetworkSettings::httpServerName()); jar << cookie; QTest::newRow("invalid-cookie-path") << "a=b; path=/not/part-of-path" << header << jar; @@ -5514,7 +5632,7 @@ void tst_QNetworkReply::receiveCookiesFromHttp() QFETCH(QString, cookieString); QByteArray data = cookieString.toLatin1() + '\n'; - QUrl url("http://" + QtNetworkSettings::serverName() + "/qtest/cgi-bin/set-cookie.cgi"); + QUrl url("http://" + QtNetworkSettings::httpServerName() + "/qtest/cgi-bin/set-cookie.cgi"); QNetworkRequest request(url); request.setRawHeader("Content-Type", "application/octet-stream"); QNetworkReplyPtr reply; @@ -5541,7 +5659,7 @@ void tst_QNetworkReply::receiveCookiesFromHttpSynchronous() QFETCH(QString, cookieString); QByteArray data = cookieString.toLatin1() + '\n'; - QUrl url("http://" + QtNetworkSettings::serverName() + "/qtest/cgi-bin/set-cookie.cgi"); + QUrl url("http://" + QtNetworkSettings::httpServerName() + "/qtest/cgi-bin/set-cookie.cgi"); QNetworkRequest request(url); request.setRawHeader("Content-Type", "application/octet-stream"); @@ -5577,7 +5695,7 @@ void tst_QNetworkReply::sendCookies_data() list << cookie; QTest::newRow("no-match-domain") << list << ""; - cookie.setDomain(QtNetworkSettings::serverName()); + cookie.setDomain(QtNetworkSettings::httpServerName()); cookie.setPath("/something/else"); list << cookie; QTest::newRow("no-match-path") << list << ""; @@ -5610,7 +5728,7 @@ void tst_QNetworkReply::sendCookies() QFETCH(QList<QNetworkCookie>, cookiesToSet); cookieJar->setAllCookies(cookiesToSet); - QUrl url("http://" + QtNetworkSettings::serverName() + "/qtest/cgi-bin/get-cookie.cgi"); + QUrl url("http://" + QtNetworkSettings::httpServerName() + "/qtest/cgi-bin/get-cookie.cgi"); QNetworkRequest request(url); QNetworkReplyPtr reply; RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::GetOperation, request, reply)); @@ -5634,7 +5752,7 @@ void tst_QNetworkReply::sendCookiesSynchronous() QFETCH(QList<QNetworkCookie>, cookiesToSet); cookieJar->setAllCookies(cookiesToSet); - QUrl url("http://" + QtNetworkSettings::serverName() + "/qtest/cgi-bin/get-cookie.cgi"); + QUrl url("http://" + QtNetworkSettings::httpServerName() + "/qtest/cgi-bin/get-cookie.cgi"); QNetworkRequest request(url); request.setAttribute( @@ -5682,7 +5800,7 @@ void tst_QNetworkReply::nestedEventLoops() qDebug("Takes 16 seconds to run, please wait"); - QUrl url("http://" + QtNetworkSettings::serverName()); + QUrl url("http://" + QtNetworkSettings::httpServerName()); QNetworkRequest request(url); QNetworkReplyPtr reply(manager.get(request)); @@ -5840,7 +5958,7 @@ void tst_QNetworkReply::proxyChange() "HTTP/1.0 200 OK\r\nProxy-Connection: keep-alive\r\n" "Content-Length: 1\r\n\r\n1"); QNetworkProxy dummyProxy(QNetworkProxy::HttpProxy, "127.0.0.1", proxyServer.serverPort()); - QNetworkRequest req(QUrl("http://" + QtNetworkSettings::serverName())); + QNetworkRequest req(QUrl("http://" + QtNetworkSettings::httpServerName())); proxyServer.doClose = false; { @@ -5899,13 +6017,17 @@ void tst_QNetworkReply::authorizationError_data() QTest::addColumn<int>("httpStatusCode"); QTest::addColumn<QString>("httpBody"); - QTest::newRow("unknown-authorization-method") << "http://" + QtNetworkSettings::serverName() + - "/qtest/cgi-bin/http-unknown-authentication-method.cgi?401-authorization-required" << 1 << 1 - << int(QNetworkReply::AuthenticationRequiredError) << 401 << "authorization required"; - QTest::newRow("unknown-proxy-authorization-method") << "http://" + QtNetworkSettings::serverName() + - "/qtest/cgi-bin/http-unknown-authentication-method.cgi?407-proxy-authorization-required" << 1 << 1 - << int(QNetworkReply::ProxyAuthenticationRequiredError) << 407 - << "authorization required"; + QTest::newRow("unknown-authorization-method") + << "http://" + QtNetworkSettings::httpServerName() + + "/qtest/cgi-bin/http-unknown-authentication-method.cgi?401-authorization-required" + << 1 << 1 << int(QNetworkReply::AuthenticationRequiredError) + << 401 << "authorization required"; + + QTest::newRow("unknown-proxy-authorization-method") + << "http://" + QtNetworkSettings::httpServerName() + + "/qtest/cgi-bin/http-unknown-authentication-method.cgi?407-proxy-authorization-required" + << 1 << 1 << int(QNetworkReply::ProxyAuthenticationRequiredError) + << 407 << "authorization required"; } void tst_QNetworkReply::authorizationError() @@ -6124,7 +6246,7 @@ public slots: } void startOne() { - QUrl url = "http://" + QtNetworkSettings::serverName() + "/qtest/fluke.gif"; + QUrl url = "http://" + QtNetworkSettings::httpServerName() + "/qtest/fluke.gif"; QNetworkRequest request(url); QNetworkReply *reply = manager.get(request); reply->setParent(this); @@ -6146,29 +6268,28 @@ void tst_QNetworkReply::httpRecursiveCreation() #ifndef QT_NO_SSL void tst_QNetworkReply::ignoreSslErrorsList_data() { - QTest::addColumn<QString>("url"); QTest::addColumn<QList<QSslError> >("expectedSslErrors"); QTest::addColumn<QNetworkReply::NetworkError>("expectedNetworkError"); QList<QSslError> expectedSslErrors; - QList<QSslCertificate> certs = QSslCertificate::fromPath(testDataDir + "/certs/qt-test-server-cacert.pem"); + QList<QSslCertificate> certs = QSslCertificate::fromPath(testDataDir + certsFilePath); QSslError rightError(FLUKE_CERTIFICATE_ERROR, certs.at(0)); QSslError wrongError(FLUKE_CERTIFICATE_ERROR); - QTest::newRow("SSL-failure-empty-list") << "https://" + QtNetworkSettings::serverName() + "/index.html" << expectedSslErrors << QNetworkReply::SslHandshakeFailedError; + QTest::newRow("SSL-failure-empty-list") << expectedSslErrors << QNetworkReply::SslHandshakeFailedError; expectedSslErrors.append(wrongError); - QTest::newRow("SSL-failure-wrong-error") << "https://" + QtNetworkSettings::serverName() + "/index.html" << expectedSslErrors << QNetworkReply::SslHandshakeFailedError; + QTest::newRow("SSL-failure-wrong-error") << expectedSslErrors << QNetworkReply::SslHandshakeFailedError; expectedSslErrors.append(rightError); - QTest::newRow("allErrorsInExpectedList1") << "https://" + QtNetworkSettings::serverName() + "/index.html" << expectedSslErrors << QNetworkReply::NoError; + QTest::newRow("allErrorsInExpectedList1") << expectedSslErrors << QNetworkReply::NoError; expectedSslErrors.removeAll(wrongError); - QTest::newRow("allErrorsInExpectedList2") << "https://" + QtNetworkSettings::serverName() + "/index.html" << expectedSslErrors << QNetworkReply::NoError; + QTest::newRow("allErrorsInExpectedList2") << expectedSslErrors << QNetworkReply::NoError; expectedSslErrors.removeAll(rightError); - QTest::newRow("SSL-failure-empty-list-again") << "https://" + QtNetworkSettings::serverName() + "/index.html" << expectedSslErrors << QNetworkReply::SslHandshakeFailedError; + QTest::newRow("SSL-failure-empty-list-again") << expectedSslErrors << QNetworkReply::SslHandshakeFailedError; } void tst_QNetworkReply::ignoreSslErrorsList() { - QFETCH(QString, url); + QString url(QLatin1String("https://") + QtNetworkSettings::httpServerName() + QLatin1String("/index.html")); QNetworkRequest request(url); QNetworkReplyPtr reply(manager.get(request)); @@ -6195,7 +6316,7 @@ void tst_QNetworkReply::ignoreSslErrorListSlot(QNetworkReply *reply, const QList // do the same as in ignoreSslErrorsList, but ignore the errors in the slot void tst_QNetworkReply::ignoreSslErrorsListWithSlot() { - QFETCH(QString, url); + QString url(QLatin1String("https://") + QtNetworkSettings::httpServerName() + QLatin1String("/index.html")); QNetworkRequest request(url); QNetworkReplyPtr reply(manager.get(request)); @@ -6220,7 +6341,7 @@ void tst_QNetworkReply::sslConfiguration_data() QTest::newRow("empty") << QSslConfiguration() << false; QSslConfiguration conf = QSslConfiguration::defaultConfiguration(); QTest::newRow("default") << conf << false; // does not contain test server cert - QList<QSslCertificate> testServerCert = QSslCertificate::fromPath(testDataDir + "/certs/qt-test-server-cacert.pem"); + QList<QSslCertificate> testServerCert = QSslCertificate::fromPath(testDataDir + certsFilePath); conf.setCaCertificates(testServerCert); QTest::newRow("set-root-cert") << conf << true; conf.setProtocol(QSsl::SecureProtocols); @@ -6229,8 +6350,8 @@ void tst_QNetworkReply::sslConfiguration_data() void tst_QNetworkReply::encrypted() { - qDebug() << QtNetworkSettings::serverName(); - QUrl url("https://" + QtNetworkSettings::serverName()); + qDebug() << QtNetworkSettings::httpServerName(); + QUrl url("https://" + QtNetworkSettings::httpServerName()); QNetworkRequest request(url); QNetworkReply *reply = manager.get(request); reply->ignoreSslErrors(); @@ -6278,7 +6399,7 @@ void tst_QNetworkReply::abortOnEncrypted() void tst_QNetworkReply::sslConfiguration() { - QNetworkRequest request(QUrl("https://" + QtNetworkSettings::serverName() + "/index.html")); + QNetworkRequest request(QUrl("https://" + QtNetworkSettings::httpServerName() + "/index.html")); QFETCH(QSslConfiguration, configuration); request.setSslConfiguration(configuration); QNetworkReplyPtr reply(manager.get(request)); @@ -6305,7 +6426,7 @@ void tst_QNetworkReply::sslSessionSharing() QSKIP("Not implemented with SecureTransport"); #endif - QString urlString("https://" + QtNetworkSettings::serverName()); + QString urlString("https://" + QtNetworkSettings::httpServerName()); QList<QNetworkReplyPtr> replies; // warm up SSL session cache @@ -6373,7 +6494,7 @@ void tst_QNetworkReply::sslSessionSharingFromPersistentSession() QSKIP("Not implemented with SecureTransport"); #endif - QString urlString("https://" + QtNetworkSettings::serverName()); + QString urlString("https://" + QtNetworkSettings::httpServerName()); // warm up SSL session cache to get a working session QNetworkRequest warmupRequest(urlString); @@ -6439,7 +6560,7 @@ void tst_QNetworkReply::getAndThenDeleteObject() QSKIP("unstable test - reply may be finished too early"); // yes, this will leak if the testcase fails. I don't care. It must not fail then :P QNetworkAccessManager *manager = new QNetworkAccessManager(); - QNetworkRequest request("http://" + QtNetworkSettings::serverName() + "/qtest/bigfile"); + QNetworkRequest request("http://" + QtNetworkSettings::httpServerName() + "/qtest/bigfile"); QNetworkReply *reply = manager->get(request); reply->setReadBufferSize(1); reply->setParent((QObject*)0); // must be 0 because else it is the manager @@ -6479,7 +6600,7 @@ void tst_QNetworkReply::getFromHttpIntoBuffer_data() { QTest::addColumn<QUrl>("url"); - QTest::newRow("rfc-internal") << QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt"); + QTest::newRow("rfc-internal") << QUrl("http://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt"); } // Please note that the whole "zero copy" download buffer API is private right now. Do not use it. @@ -6892,9 +7013,15 @@ void tst_QNetworkReply::authenticationCacheAfterCancel_data() QTest::addColumn<bool>("proxyAuth"); QTest::addColumn<QUrl>("url"); for (int i = 0; i < proxies.count(); ++i) { - QTest::newRow("http" + proxies.at(i).tag) << proxies.at(i).proxy << proxies.at(i).requiresAuthentication << QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/rfcs-auth/rfc3252.txt"); + QTest::newRow("http" + proxies.at(i).tag) + << proxies.at(i).proxy + << proxies.at(i).requiresAuthentication + << QUrl("http://" + QtNetworkSettings::httpServerName() + "/qtest/rfcs-auth/rfc3252.txt"); #ifndef QT_NO_SSL - QTest::newRow("https" + proxies.at(i).tag) << proxies.at(i).proxy << proxies.at(i).requiresAuthentication << QUrl("https://" + QtNetworkSettings::serverName() + "/qtest/rfcs-auth/rfc3252.txt"); + QTest::newRow("https" + proxies.at(i).tag) + << proxies.at(i).proxy + << proxies.at(i).requiresAuthentication + << QUrl("https://" + QtNetworkSettings::httpServerName() + "/qtest/rfcs-auth/rfc3252.txt"); #endif } } @@ -7083,7 +7210,7 @@ void tst_QNetworkReply::authenticationWithDifferentRealm() helper.httpUserName = "httptest"; helper.httpPassword = "httptest"; - QNetworkRequest request(QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/rfcs-auth/rfc3252.txt")); + QNetworkRequest request(QUrl("http://" + QtNetworkSettings::httpServerName() + "/qtest/rfcs-auth/rfc3252.txt")); QNetworkReply* reply = manager.get(request); connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()), Qt::QueuedConnection); QTestEventLoop::instance().enterLoop(10); @@ -7093,7 +7220,7 @@ void tst_QNetworkReply::authenticationWithDifferentRealm() helper.httpUserName = "httptest"; helper.httpPassword = "httptest"; - request.setUrl(QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/auth-digest/")); + request.setUrl(QUrl("http://" + QtNetworkSettings::httpServerName() + "/qtest/auth-digest/")); reply = manager.get(request); connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()), Qt::QueuedConnection); QTestEventLoop::instance().enterLoop(10); @@ -7135,7 +7262,7 @@ void tst_QNetworkReply::qtbug13431replyThrottling() connect(&nam, SIGNAL(finished(QNetworkReply*)), &helper, SLOT(replyFinished(QNetworkReply*))); // Download a bigger file - QNetworkRequest netRequest(QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/bigfile")); + QNetworkRequest netRequest(QUrl("http://" + QtNetworkSettings::httpServerName() + "/qtest/bigfile")); helper.m_reply = nam.get(netRequest); // Set the throttle helper.m_reply->setReadBufferSize(36000); @@ -7161,7 +7288,7 @@ void tst_QNetworkReply::httpWithNoCredentialUsage() // Get with credentials, to preload authentication cache { - QNetworkRequest request(QUrl("http://httptest:httptest@" + QtNetworkSettings::serverName() + "/qtest/protected/cgi-bin/md5sum.cgi")); + QNetworkRequest request(QUrl("http://httptest:httptest@" + QtNetworkSettings::httpServerName() + "/qtest/protected/cgi-bin/md5sum.cgi")); QNetworkReplyPtr reply(manager.get(request)); QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply)); // credentials in URL, so don't expect authentication signal @@ -7172,7 +7299,7 @@ void tst_QNetworkReply::httpWithNoCredentialUsage() // Get with cached credentials (normal usage) { - QNetworkRequest request(QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/protected/cgi-bin/md5sum.cgi")); + QNetworkRequest request(QUrl("http://" + QtNetworkSettings::httpServerName() + "/qtest/protected/cgi-bin/md5sum.cgi")); QNetworkReplyPtr reply(manager.get(request)); QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply)); // credentials in cache, so don't expect authentication signal @@ -7183,7 +7310,7 @@ void tst_QNetworkReply::httpWithNoCredentialUsage() // Do not use cached credentials (webkit cross origin usage) { - QNetworkRequest request(QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/protected/cgi-bin/md5sum.cgi")); + QNetworkRequest request(QUrl("http://" + QtNetworkSettings::httpServerName() + "/qtest/protected/cgi-bin/md5sum.cgi")); request.setAttribute(QNetworkRequest::AuthenticationReuseAttribute, QNetworkRequest::Manual); QNetworkReplyPtr reply(manager.get(request)); @@ -7502,13 +7629,13 @@ void tst_QNetworkReply::synchronousRequest_data() // ### cache, auth, proxies QTest::newRow("http") - << QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt") + << QUrl("http://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt") << QString("file:" + testDataDir + "/rfc3252.txt") << true << QString("text/plain"); QTest::newRow("http-gzip") - << QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/deflate/rfc3252.txt") + << QUrl("http://" + QtNetworkSettings::httpServerName() + "/qtest/deflate/rfc3252.txt") << QString("file:" + testDataDir + "/rfc3252.txt") << false // don't check content length, because it's gzip encoded // ### we would need to enflate (un-deflate) the file content and compare the sizes @@ -7516,7 +7643,7 @@ void tst_QNetworkReply::synchronousRequest_data() #ifndef QT_NO_SSL QTest::newRow("https") - << QUrl("https://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt") + << QUrl("https://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt") << QString("file:" + testDataDir + "/rfc3252.txt") << true << QString("text/plain"); @@ -7552,7 +7679,7 @@ void tst_QNetworkReply::synchronousRequest() // QNetworkRequest, see QTBUG-14774 if (url.scheme() == "https") { QSslConfiguration sslConf; - QList<QSslCertificate> certs = QSslCertificate::fromPath(testDataDir + "/certs/qt-test-server-cacert.pem"); + QList<QSslCertificate> certs = QSslCertificate::fromPath(testDataDir + certsFilePath); sslConf.setCaCertificates(certs); request.setSslConfiguration(sslConf); } @@ -7597,7 +7724,7 @@ void tst_QNetworkReply::synchronousRequestSslFailure() // and that we do not emit the sslError signal (in the manager that is, // in the reply we don't care) - QUrl url("https://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt"); + QUrl url("https://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt"); QNetworkRequest request(url); request.setAttribute( QNetworkRequest::SynchronousRequestAttribute, @@ -7643,7 +7770,7 @@ void tst_QNetworkReply::httpAbort() // It must not crash either. // Abort after the first readyRead() - QNetworkRequest request("http://" + QtNetworkSettings::serverName() + "/qtest/bigfile"); + QNetworkRequest request("http://" + QtNetworkSettings::httpServerName() + "/qtest/bigfile"); QNetworkReplyPtr reply(manager.get(request)); HttpAbortHelper replyHolder(reply.data()); QTestEventLoop::instance().enterLoop(10); @@ -7659,7 +7786,7 @@ void tst_QNetworkReply::httpAbort() QVERIFY(reply2->isFinished()); // Abort after the finished() - QNetworkRequest request3("http://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt"); + QNetworkRequest request3("http://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt"); QNetworkReplyPtr reply3(manager.get(request3)); QCOMPARE(waitForFinish(reply3), int(Success)); @@ -7795,7 +7922,7 @@ void tst_QNetworkReply::synchronousAuthenticationCache() void tst_QNetworkReply::pipelining() { - QString urlString("http://" + QtNetworkSettings::serverName() + "/qtest/cgi-bin/echo.cgi?"); + QString urlString("http://" + QtNetworkSettings::httpServerName() + "/qtest/cgi-bin/echo.cgi?"); QList<QNetworkReplyPtr> replies; for (int a = 0; a < 20; a++) { QNetworkRequest request(urlString + QString::number(a)); @@ -7839,8 +7966,8 @@ void tst_QNetworkReply::emitErrorForAllRepliesSlot() { void tst_QNetworkReply::closeDuringDownload_data() { QTest::addColumn<QUrl>("url"); - QTest::newRow("http") << QUrl("http://" + QtNetworkSettings::serverName() + "/bigfile"); - QTest::newRow("ftp") << QUrl("ftp://" + QtNetworkSettings::serverName() + "/qtest/bigfile"); + QTest::newRow("http") << QUrl("http://" + QtNetworkSettings::httpServerName() + "/bigfile"); + QTest::newRow("ftp") << QUrl("ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/bigfile"); } void tst_QNetworkReply::closeDuringDownload() @@ -7864,8 +7991,8 @@ void tst_QNetworkReply::ftpAuthentication_data() QTest::addColumn<QString>("url"); QTest::addColumn<int>("error"); - QTest::newRow("invalidPassword") << (testDataDir + "/rfc3252.txt") << "ftp://ftptest:invalid@" + QtNetworkSettings::serverName() + "/home/qt-test-server/ftp/qtest/rfc3252.txt" << int(QNetworkReply::AuthenticationRequiredError); - QTest::newRow("validPassword") << (testDataDir + "/rfc3252.txt") << "ftp://ftptest:password@" + QtNetworkSettings::serverName() + "/home/qt-test-server/ftp/qtest/rfc3252.txt" << int(QNetworkReply::NoError); + QTest::newRow("invalidPassword") << (testDataDir + "/rfc3252.txt") << "ftp://ftptest:invalid@" + QtNetworkSettings::ftpServerName() + "/home/qt-test-server/ftp/qtest/rfc3252.txt" << int(QNetworkReply::AuthenticationRequiredError); + QTest::newRow("validPassword") << (testDataDir + "/rfc3252.txt") << "ftp://ftptest:password@" + QtNetworkSettings::ftpServerName() + "/home/qt-test-server/ftp/qtest/rfc3252.txt" << int(QNetworkReply::NoError); } void tst_QNetworkReply::ftpAuthentication() @@ -7925,9 +8052,9 @@ void tst_QNetworkReply::backgroundRequest_data() QTest::addColumn<int>("policy"); QTest::addColumn<QNetworkReply::NetworkError>("error"); - QUrl httpurl("http://" + QtNetworkSettings::serverName()); - QUrl httpsurl("https://" + QtNetworkSettings::serverName()); - QUrl ftpurl("ftp://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt"); + QUrl httpurl("http://" + QtNetworkSettings::httpServerName()); + QUrl httpsurl("https://" + QtNetworkSettings::httpServerName()); + QUrl ftpurl("ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/rfc3252.txt"); QTest::newRow("http, fg, normal") << httpurl << false << (int)QNetworkSession::NoPolicy << QNetworkReply::NoError; QTest::newRow("http, bg, normal") << httpurl << true << (int)QNetworkSession::NoPolicy << QNetworkReply::NoError; @@ -7996,9 +8123,9 @@ void tst_QNetworkReply::backgroundRequestInterruption_data() QTest::addColumn<bool>("background"); QTest::addColumn<QNetworkReply::NetworkError>("error"); - QUrl httpurl("http://" + QtNetworkSettings::serverName() + "/qtest/mediumfile"); - QUrl httpsurl("https://" + QtNetworkSettings::serverName() + "/qtest/mediumfile"); - QUrl ftpurl("ftp://" + QtNetworkSettings::serverName() + "/qtest/bigfile"); + QUrl httpurl("http://" + QtNetworkSettings::httpServerName() + "/qtest/mediumfile"); + QUrl httpsurl("https://" + QtNetworkSettings::httpServerName() + "/qtest/mediumfile"); + QUrl ftpurl("ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/bigfile"); QTest::newRow("http, fg, nobg") << httpurl << false << QNetworkReply::NoError; QTest::newRow("http, bg, nobg") << httpurl << true << QNetworkReply::BackgroundRequestNotAllowedError; @@ -8069,8 +8196,8 @@ void tst_QNetworkReply::backgroundRequestConnectInBackground_data() QTest::addColumn<QUrl>("url"); QTest::addColumn<bool>("background"); - QUrl httpurl("http://" + QtNetworkSettings::serverName()); - QUrl ftpurl("ftp://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt"); + QUrl httpurl("http://" + QtNetworkSettings::httpServerName()); + QUrl ftpurl("ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/rfc3252.txt"); QTest::newRow("http, fg") << httpurl << false; QTest::newRow("http, bg") << httpurl << true; @@ -8196,7 +8323,7 @@ void tst_QNetworkReply::putWithRateLimiting() QByteArray data = reference.readAll(); QVERIFY(data.length() > 0); - QUrl url = QUrl::fromUserInput("http://" + QtNetworkSettings::serverName()+ "/qtest/cgi-bin/echo.cgi?"); + QUrl url = QUrl::fromUserInput("http://" + QtNetworkSettings::httpServerName()+ "/qtest/cgi-bin/echo.cgi?"); QNetworkRequest request(url); QNetworkReplyPtr reply; @@ -8641,7 +8768,7 @@ void tst_QNetworkReply::ioHttpRedirect() void tst_QNetworkReply::ioHttpRedirectFromLocalToRemote() { - QUrl targetUrl("http://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt"); + QUrl targetUrl("http://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt"); QString redirectReply = tempRedirectReplyStr().arg(targetUrl.toString()); MiniHttpServer redirectServer(redirectReply.toLatin1(), false); @@ -8710,7 +8837,7 @@ void tst_QNetworkReply::ioHttpRedirectPostPut() QFETCH(QByteArray, data); QFETCH(QString, contentType); - QUrl targetUrl("http://" + QtNetworkSettings::serverName() + "/qtest/cgi-bin/md5sum.cgi"); + QUrl targetUrl("http://" + QtNetworkSettings::httpServerName() + "/qtest/cgi-bin/md5sum.cgi"); QString redirectReply = QStringLiteral("HTTP/1.1 %1\r\n" "Content-Type: text/plain\r\n" @@ -8999,7 +9126,7 @@ void tst_QNetworkReply::putWithServerClosingConnectionImmediately() // NOTE: This test must be last testcase in tst_qnetworkreply! void tst_QNetworkReply::parentingRepliesToTheApp() { - QNetworkRequest request (QUrl("http://" + QtNetworkSettings::serverName())); + QNetworkRequest request(QUrl("http://" + QtNetworkSettings::httpServerName())); manager.get(request)->setParent(this); // parent to this object manager.get(request)->setParent(qApp); // parent to the app } diff --git a/tests/auto/network/access/qnetworkrequest/tst_qnetworkrequest.cpp b/tests/auto/network/access/qnetworkrequest/tst_qnetworkrequest.cpp index 50c7ddb0b6..7a3def410a 100644 --- a/tests/auto/network/access/qnetworkrequest/tst_qnetworkrequest.cpp +++ b/tests/auto/network/access/qnetworkrequest/tst_qnetworkrequest.cpp @@ -236,6 +236,46 @@ void tst_QNetworkRequest::setHeader_data() << true << "Last-Modified" << "Thu, 01 Nov 2007 18:08:30 GMT"; + QTest::newRow("If-Modified-Since-Date") << QNetworkRequest::IfModifiedSinceHeader + << QVariant(QDate(2017, 7, 01)) + << true << "If-Modified-Since" + << "Sat, 01 Jul 2017 00:00:00 GMT"; + QTest::newRow("If-Modified-Since-DateTime") << QNetworkRequest::IfModifiedSinceHeader + << QVariant(QDateTime(QDate(2017, 7, 01), + QTime(3, 14, 15), + Qt::UTC)) + << true << "If-Modified-Since" + << "Sat, 01 Jul 2017 03:14:15 GMT"; + + QTest::newRow("Etag-strong") << QNetworkRequest::ETagHeader << QVariant(R"("xyzzy")") + << true << "ETag" << R"("xyzzy")"; + QTest::newRow("Etag-weak") << QNetworkRequest::ETagHeader << QVariant(R"(W/"xyzzy")") + << true << "ETag" << R"(W/"xyzzy")"; + QTest::newRow("Etag-empty") << QNetworkRequest::ETagHeader << QVariant(R"("")") + << true << "ETag" << R"("")"; + + QTest::newRow("If-Match-empty") << QNetworkRequest::IfMatchHeader << QVariant(R"("")") + << true << "If-Match" << R"("")"; + QTest::newRow("If-Match-any") << QNetworkRequest::IfMatchHeader << QVariant(R"("*")") + << true << "If-Match" << R"("*")"; + QTest::newRow("If-Match-single") << QNetworkRequest::IfMatchHeader << QVariant(R"("xyzzy")") + << true << "If-Match" << R"("xyzzy")"; + QTest::newRow("If-Match-multiple") << QNetworkRequest::IfMatchHeader + << QVariant(R"("xyzzy", "r2d2xxxx", "c3piozzzz")") + << true << "If-Match" + << R"("xyzzy", "r2d2xxxx", "c3piozzzz")"; + + QTest::newRow("If-None-Match-empty") << QNetworkRequest::IfNoneMatchHeader << QVariant(R"("")") + << true << "If-None-Match" << R"("")"; + QTest::newRow("If-None-Match-any") << QNetworkRequest::IfNoneMatchHeader << QVariant(R"("*")") + << true << "If-None-Match" << R"("*")"; + QTest::newRow("If-None-Match-single") << QNetworkRequest::IfNoneMatchHeader << QVariant(R"("xyzzy")") + << true << "If-None-Match" << R"("xyzzy")"; + QTest::newRow("If-None-Match-multiple") << QNetworkRequest::IfNoneMatchHeader + << QVariant(R"("xyzzy", W/"r2d2xxxx", "c3piozzzz")") + << true << "If-None-Match" + << R"("xyzzy", W/"r2d2xxxx", "c3piozzzz")"; + QNetworkCookie cookie; cookie.setName("a"); cookie.setValue("b"); @@ -327,6 +367,62 @@ void tst_QNetworkRequest::rawHeaderParsing_data() << true << "Last-Modified" << "Sun Nov 6 08:49:37 1994"; + QTest::newRow("If-Modified-Since-RFC1123") << QNetworkRequest::IfModifiedSinceHeader + << QVariant(QDateTime(QDate(1994, 8, 06), + QTime(8, 49, 37), + Qt::UTC)) + << true << "If-Modified-Since" + << "Sun, 06 Aug 1994 08:49:37 GMT"; + QTest::newRow("If-Modified-Since-RFC850") << QNetworkRequest::IfModifiedSinceHeader + << QVariant(QDateTime(QDate(1994, 8, 06), + QTime(8, 49, 37), + Qt::UTC)) + << true << "If-Modified-Since" + << "Sunday, 06-Aug-94 08:49:37 GMT"; + QTest::newRow("If-Modified-Since-asctime") << QNetworkRequest::IfModifiedSinceHeader + << QVariant(QDateTime(QDate(1994, 8, 06), + QTime(8, 49, 37), + Qt::UTC)) + << true << "If-Modified-Since" + << "Sun Aug 6 08:49:37 1994"; + + QTest::newRow("Etag-strong") << QNetworkRequest::ETagHeader << QVariant(R"("xyzzy")") + << true << "ETag" << R"("xyzzy")"; + QTest::newRow("Etag-weak") << QNetworkRequest::ETagHeader << QVariant(R"(W/"xyzzy")") + << true << "ETag" << R"(W/"xyzzy")"; + QTest::newRow("Etag-empty") << QNetworkRequest::ETagHeader << QVariant(R"("")") + << true << "ETag" << R"("")"; + + QTest::newRow("If-Match-empty") << QNetworkRequest::IfMatchHeader << QVariant(QStringList(R"("")")) + << true << "If-Match" << R"("")"; + QTest::newRow("If-Match-any") << QNetworkRequest::IfMatchHeader << QVariant(QStringList(R"("*")")) + << true << "If-Match" << R"("*")"; + QTest::newRow("If-Match-single") << QNetworkRequest::IfMatchHeader + << QVariant(QStringList(R"("xyzzy")")) + << true << "If-Match" << R"("xyzzy")"; + QTest::newRow("If-Match-multiple") << QNetworkRequest::IfMatchHeader + << QVariant(QStringList({R"("xyzzy")", + R"("r2d2xxxx")", + R"("c3piozzzz")"})) + << true << "If-Match" + << R"("xyzzy", "r2d2xxxx", "c3piozzzz")"; + + QTest::newRow("If-None-Match-empty") << QNetworkRequest::IfNoneMatchHeader + << QVariant(QStringList(R"("")")) + << true << "If-None-Match" << R"("")"; + QTest::newRow("If-None-Match-any") << QNetworkRequest::IfNoneMatchHeader + << QVariant(QStringList(R"("*")")) + << true << "If-None-Match" << R"("*")"; + QTest::newRow("If-None-Match-single") << QNetworkRequest::IfNoneMatchHeader + << QVariant(QStringList(R"("xyzzy")")) + << true << "If-None-Match" << R"("xyzzy")"; + QTest::newRow("If-None-Match-multiple") << QNetworkRequest::IfNoneMatchHeader + << QVariant(QStringList({R"("xyzzy")", + R"(W/"r2d2xxxx")", + R"("c3piozzzz")"})) + << true << "If-None-Match" + << R"("xyzzy", W/"r2d2xxxx", "c3piozzzz")"; + QTest::newRow("Content-Length-invalid1") << QNetworkRequest::ContentLengthHeader << QVariant() << false << "Content-Length" << "1a"; QTest::newRow("Content-Length-invalid2") << QNetworkRequest::ContentLengthHeader << QVariant() |