diff options
author | Mårten Nordheim <marten.nordheim@qt.io> | 2020-08-20 12:03:54 +0200 |
---|---|---|
committer | Mårten Nordheim <marten.nordheim@qt.io> | 2020-08-27 18:58:21 +0200 |
commit | f7f79483e73fed5664763a125b3d27861586b7d2 (patch) | |
tree | 13910131de10d3d8d6d240b4cfd05309de8343c8 /tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp | |
parent | 3964ece5a566d1ed517406f0ff713f6f184628ae (diff) |
Remove QFtp sources etc. in favor of alternate distribution
While we initially wanted to just disable the functionality the way it
is currently built forces people to do a full build of Qt just to enable
it. Instead of doing this half-measure let's just remove the code
completely from QtBase and rather prepare QtNetwork to handle being a
plugin that can be compiled at any time.
Task-number: QTBUG-80340
Change-Id: I19155c8c167cf932088f01b2a9706d0e7ab792d1
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Diffstat (limited to 'tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp')
-rw-r--r-- | tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp | 197 |
1 files changed, 102 insertions, 95 deletions
diff --git a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp index c8be0902ba..e470dd02b4 100644 --- a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp +++ b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp @@ -208,11 +208,9 @@ private Q_SLOTS: void getFromFile(); void getFromFileSpecial_data(); void getFromFileSpecial(); -#if QT_CONFIG(ftp) void getFromFtp_data(); void getFromFtp(); void getFromFtpAfterError(); // QTBUG-40797 -#endif void getFromHttp_data(); void getFromHttp(); void getErrors_data(); @@ -223,11 +221,9 @@ private Q_SLOTS: #endif // !QT_NO_NETWORKPROXY void putToFile_data(); void putToFile(); -#if QT_CONFIG(ftp) void putToFtp_data(); void putToFtp(); void putToFtpWithInvalidCredentials(); // QTBUG-40622 -#endif void putToHttp_data(); void putToHttp(); void putToHttpSynchronous_data(); @@ -268,11 +264,9 @@ private Q_SLOTS: void ioGetFromFileSpecial(); void ioGetFromFile_data(); void ioGetFromFile(); -#if QT_CONFIG(ftp) void ioGetFromFtp_data(); void ioGetFromFtp(); void ioGetFromFtpWithReuse(); -#endif void ioGetFromHttp(); void ioGetFromBuiltinHttp_data(); @@ -314,10 +308,8 @@ private Q_SLOTS: void ioPutToFileFromLocalSocket(); void ioPutToFileFromProcess_data(); void ioPutToFileFromProcess(); -#if QT_CONFIG(ftp) void ioPutToFtpFromFile_data(); void ioPutToFtpFromFile(); -#endif void ioPutToHttpFromFile_data(); void ioPutToHttpFromFile(); void ioPostToHttpFromFile_data(); @@ -464,10 +456,8 @@ private Q_SLOTS: void closeDuringDownload_data(); void closeDuringDownload(); -#if QT_CONFIG(ftp) void ftpAuthentication_data(); void ftpAuthentication(); -#endif void emitErrorForAllReplies(); // QTBUG-36890 @@ -517,6 +507,8 @@ private: QString testDataDir; bool notEnoughDataForFastSender; + + bool ftpSupported = false; }; const QByteArray tst_QNetworkReply::httpEmpty200Response = @@ -1320,6 +1312,8 @@ tst_QNetworkReply::tst_QNetworkReply() #ifndef QT_NO_NETWORKPROXY } #endif // !QT_NO_NETWORKPROXY + + ftpSupported = manager.supportedSchemes().contains("ftp"); } tst_QNetworkReply::~tst_QNetworkReply() @@ -1836,9 +1830,10 @@ void tst_QNetworkReply::getFromFileSpecial() QCOMPARE(reply->readAll(), resource.readAll()); } -#if QT_CONFIG(ftp) void tst_QNetworkReply::getFromFtp_data() { + if (!ftpSupported) + QSKIP("FTP is not supported"); QTest::addColumn<QString>("referenceName"); QTest::addColumn<QString>("url"); @@ -1872,6 +1867,9 @@ void tst_QNetworkReply::getFromFtp() void tst_QNetworkReply::getFromFtpAfterError() { + if (!ftpSupported) + QSKIP("FTP is not supported"); + QNetworkRequest invalidRequest(QUrl("ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/invalid.txt")); QNetworkReplyPtr invalidReply; invalidReply.reset(manager.get(invalidRequest)); @@ -1889,7 +1887,6 @@ void tst_QNetworkReply::getFromFtpAfterError() QCOMPARE(validReply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), reference.size()); QCOMPARE(validReply->readAll(), reference.readAll()); } -#endif void tst_QNetworkReply::getFromHttp_data() { @@ -2059,21 +2056,26 @@ void tst_QNetworkReply::getErrors_data() QTest::newRow("file-permissions") << "file:" + filePermissionFileName << int(QNetworkReply::ContentAccessDenied) << 0 << true; -#if QT_CONFIG(ftp) - // 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::ftpServerName() - << int(QNetworkReply::ContentOperationNotPermittedError) << 0 << true; - QTest::newRow("ftp-is-dir") << "ftp://" + QtNetworkSettings::ftpServerName() + "/qtest" - << int(QNetworkReply::ContentOperationNotPermittedError) << 0 << true; - 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::ftpServerName() + "/pub/file-not-readable.txt" - << int(QNetworkReply::ContentAccessDenied) << 0 << true; - QTest::newRow("ftp-exist") << "ftp://" + QtNetworkSettings::ftpServerName() + "/pub/this-file-doesnt-exist.txt" - << int(QNetworkReply::ContentNotFoundError) << 0 << true; -#endif + if (ftpSupported) { + // 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::ftpServerName() + << int(QNetworkReply::ContentOperationNotPermittedError) << 0 << true; + QTest::newRow("ftp-is-dir") + << "ftp://" + QtNetworkSettings::ftpServerName() + "/qtest" + << int(QNetworkReply::ContentOperationNotPermittedError) << 0 << true; + 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::ftpServerName() + "/pub/file-not-readable.txt" + << int(QNetworkReply::ContentAccessDenied) << 0 << true; + 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/" @@ -2127,11 +2129,9 @@ void tst_QNetworkReply::getErrors() QVERIFY2(waitResult != Timeout, msgGetErrors(waitResult, reply)); QFETCH(int, error); -#if QT_CONFIG(ftp) QEXPECT_FAIL("ftp-is-dir", "QFtp cannot provide enough detail", Abort); // the line below is not necessary QEXPECT_FAIL("ftp-dir-not-readable", "QFtp cannot provide enough detail", Abort); -#endif QCOMPARE(reply->error(), QNetworkReply::NetworkError(error)); QTEST(reply->readAll().isEmpty(), "dataIsEmpty"); @@ -2201,9 +2201,10 @@ void tst_QNetworkReply::putToFile() QCOMPARE(contents, data); } -#if QT_CONFIG(ftp) void tst_QNetworkReply::putToFtp_data() { + if (!ftpSupported) + QSKIP("FTP is not supported"); putToFile_data(); } @@ -2255,6 +2256,8 @@ void tst_QNetworkReply::putToFtp() void tst_QNetworkReply::putToFtpWithInvalidCredentials() { + if (!ftpSupported) + QSKIP("FTP is not supported"); QUrl url("ftp://" + QtNetworkSettings::ftpServerName()); url.setPath(QString("/qtest/upload/qnetworkaccess-putToFtp-%1-%2") .arg(QTest::currentDataTag()) @@ -2274,7 +2277,6 @@ void tst_QNetworkReply::putToFtpWithInvalidCredentials() r->close(); } } -#endif void tst_QNetworkReply::putToHttp_data() { @@ -3275,9 +3277,10 @@ void tst_QNetworkReply::ioGetFromFile() QCOMPARE(reader.data, data); } -#if QT_CONFIG(ftp) void tst_QNetworkReply::ioGetFromFtp_data() { + if (!ftpSupported) + QSKIP("FTP is not supported"); QTest::addColumn<QString>("fileName"); QTest::addColumn<qint64>("expectedSize"); @@ -3312,6 +3315,8 @@ void tst_QNetworkReply::ioGetFromFtp() void tst_QNetworkReply::ioGetFromFtpWithReuse() { + if (!ftpSupported) + QSKIP("FTP is not supported"); QString fileName = testDataDir + "/rfc3252.txt"; QFile reference(fileName); reference.open(QIODevice::ReadOnly); @@ -3342,7 +3347,6 @@ void tst_QNetworkReply::ioGetFromFtpWithReuse() QCOMPARE(reader1.data, referenceData); QCOMPARE(reader2.data, referenceData); } -#endif void tst_QNetworkReply::ioGetFromHttp() { @@ -4199,26 +4203,28 @@ void tst_QNetworkReply::ioGetWithManyProxies_data() << "http://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt" << QNetworkReply::NoError; -#if QT_CONFIG(ftp) - // FTP request with FTP caching proxy - proxyList.clear(); - proxyList << QNetworkProxy(QNetworkProxy::FtpCachingProxy, QtNetworkSettings::ftpProxyServerName(), 2121); - QTest::newRow("ftp-on-ftp") - << proxyList << proxyList.at(0) - << "ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/rfc3252.txt" - << QNetworkReply::NoError; - - // The following test doesn't work because QFtp is too limited - // It can only talk to its own kind of proxies - - // FTP request with SOCKSv5 transparent proxy - proxyList.clear(); - proxyList << QNetworkProxy(QNetworkProxy::Socks5Proxy, QtNetworkSettings::socksProxyServerName(), 1081); - QTest::newRow("ftp-on-socks") - << proxyList << proxyList.at(0) - << "ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/rfc3252.txt" - << QNetworkReply::NoError; -#endif + if (ftpSupported) { + // FTP request with FTP caching proxy + proxyList.clear(); + proxyList << QNetworkProxy(QNetworkProxy::FtpCachingProxy, + QtNetworkSettings::ftpProxyServerName(), 2121); + QTest::newRow("ftp-on-ftp") + << proxyList << proxyList.at(0) + << "ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/rfc3252.txt" + << QNetworkReply::NoError; + + // The following test doesn't work because QFtp is too limited + // It can only talk to its own kind of proxies + + // FTP request with SOCKSv5 transparent proxy + proxyList.clear(); + proxyList << QNetworkProxy(QNetworkProxy::Socks5Proxy, + QtNetworkSettings::socksProxyServerName(), 1081); + QTest::newRow("ftp-on-socks") + << proxyList << proxyList.at(0) + << "ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/rfc3252.txt" + << QNetworkReply::NoError; + } #ifndef QT_NO_SSL // HTTPS with HTTP transparent proxy @@ -4248,24 +4254,27 @@ void tst_QNetworkReply::ioGetWithManyProxies_data() << "http://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt" << QNetworkReply::ProxyNotFoundError; -#if QT_CONFIG(ftp) - // FTP request with HTTP caching proxy - proxyList.clear(); - proxyList << QNetworkProxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::httpProxyServerName(), 3129); - QTest::newRow("ftp-on-http") - << proxyList << QNetworkProxy() - << "ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/rfc3252.txt" - << QNetworkReply::ProxyNotFoundError; - - // FTP request with HTTP caching proxies - proxyList.clear(); - proxyList << QNetworkProxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::httpProxyServerName(), 3129) - << QNetworkProxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::httpProxyServerName(), 3130); - QTest::newRow("ftp-on-multiple-http") - << proxyList << QNetworkProxy() - << "ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/rfc3252.txt" - << QNetworkReply::ProxyNotFoundError; -#endif + if (ftpSupported) { + // FTP request with HTTP caching proxy + proxyList.clear(); + proxyList << QNetworkProxy(QNetworkProxy::HttpCachingProxy, + QtNetworkSettings::httpProxyServerName(), 3129); + QTest::newRow("ftp-on-http") + << proxyList << QNetworkProxy() + << "ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/rfc3252.txt" + << QNetworkReply::ProxyNotFoundError; + + // FTP request with HTTP caching proxies + proxyList.clear(); + proxyList << QNetworkProxy(QNetworkProxy::HttpCachingProxy, + QtNetworkSettings::httpProxyServerName(), 3129) + << QNetworkProxy(QNetworkProxy::HttpCachingProxy, + QtNetworkSettings::httpProxyServerName(), 3130); + QTest::newRow("ftp-on-multiple-http") + << proxyList << QNetworkProxy() + << "ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/rfc3252.txt" + << QNetworkReply::ProxyNotFoundError; + } #ifndef QT_NO_SSL // HTTPS with HTTP caching proxy @@ -4333,16 +4342,18 @@ void tst_QNetworkReply::ioGetWithManyProxies_data() << "http://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt" << QNetworkReply::NoError; -#if QT_CONFIG(ftp) - // FTP request with HTTP Caching + FTP - proxyList.clear(); - 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::ftpServerName() + "/qtest/rfc3252.txt" - << QNetworkReply::NoError; -#endif + if (ftpSupported) { + // FTP request with HTTP Caching + FTP + proxyList.clear(); + 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::ftpServerName() + "/qtest/rfc3252.txt" + << QNetworkReply::NoError; + } #ifndef QT_NO_SSL // HTTPS request with HTTP Caching + HTTP transparent @@ -4403,9 +4414,7 @@ void tst_QNetworkReply::ioGetWithManyProxies() #endif QFETCH(QNetworkReply::NetworkError, expectedError); -#if QT_CONFIG(ftp) QEXPECT_FAIL("ftp-on-socks", "QFtp is too limited and won't accept non-FTP proxies", Abort); -#endif QCOMPARE(reply->error(), expectedError); // Verify that the factory was called properly @@ -4421,10 +4430,8 @@ void tst_QNetworkReply::ioGetWithManyProxies() if (proxyUsed.type() == QNetworkProxy::NoProxy) { QCOMPARE(authspy.count(), 0); } else { -#if QT_CONFIG(ftp) if (QByteArray(QTest::currentDataTag()).startsWith("ftp-")) return; // No authentication with current FTP or with FTP proxies -#endif QCOMPARE(authspy.count(), 1); QCOMPARE(qvariant_cast<QNetworkProxy>(authspy.at(0).at(0)), proxyUsed); } @@ -4605,9 +4612,10 @@ void tst_QNetworkReply::ioPutToFileFromProcess() #endif // QT_CONFIG(process) } -#if QT_CONFIG(ftp) void tst_QNetworkReply::ioPutToFtpFromFile_data() { + if (!ftpSupported) + QSKIP("FTP is not supported"); ioPutToFileFromFile_data(); } @@ -4654,7 +4662,6 @@ void tst_QNetworkReply::ioPutToFtpFromFile() QTestEventLoop::instance().enterLoop(10); QObject::disconnect(r, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop())); } -#endif void tst_QNetworkReply::ioPutToHttpFromFile_data() { @@ -8032,9 +8039,10 @@ void tst_QNetworkReply::closeDuringDownload_data() { QTest::addColumn<QUrl>("url"); QTest::newRow("http") << QUrl("http://" + QtNetworkSettings::httpServerName() + "/bigfile"); -#if QT_CONFIG(ftp) - QTest::newRow("ftp") << QUrl("ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/bigfile"); -#endif + if (ftpSupported) { + QTest::newRow("ftp") << QUrl("ftp://" + QtNetworkSettings::ftpServerName() + + "/qtest/bigfile"); + } } void tst_QNetworkReply::closeDuringDownload() @@ -8052,9 +8060,10 @@ void tst_QNetworkReply::closeDuringDownload() QVERIFY(destroySpy.wait()); } -#if QT_CONFIG(ftp) void tst_QNetworkReply::ftpAuthentication_data() { + if (!ftpSupported) + QSKIP("FTP is not supported"); QTest::addColumn<QString>("referenceName"); QTest::addColumn<QString>("url"); QTest::addColumn<int>("error"); @@ -8079,7 +8088,6 @@ void tst_QNetworkReply::ftpAuthentication() QCOMPARE(reply->url(), request.url()); QCOMPARE(reply->error(), QNetworkReply::NetworkError(error)); } -#endif void tst_QNetworkReply::emitErrorForAllReplies() // QTBUG-36890 { @@ -9056,9 +9064,8 @@ void tst_QNetworkReply::autoDeleteRepliesAttribute_data() QTest::newRow("http") << QUrl("http://QInvalidDomain.qt/test"); QTest::newRow("https") << QUrl("https://QInvalidDomain.qt/test"); -#if QT_CONFIG(ftp) - QTest::newRow("ftp") << QUrl("ftp://QInvalidDomain.qt/test"); -#endif + if (ftpSupported) + QTest::newRow("ftp") << QUrl("ftp://QInvalidDomain.qt/test"); QTest::newRow("file") << QUrl("file:///thisfolderdoesn'texist/probably.txt"); #ifdef Q_OS_WIN // Only supported on windows. |