summaryrefslogtreecommitdiffstats
path: root/tests/auto/network/access/qnetworkreply
diff options
context:
space:
mode:
authorMårten Nordheim <marten.nordheim@qt.io>2020-08-20 12:03:54 +0200
committerMårten Nordheim <marten.nordheim@qt.io>2020-08-27 18:58:21 +0200
commitf7f79483e73fed5664763a125b3d27861586b7d2 (patch)
tree13910131de10d3d8d6d240b4cfd05309de8343c8 /tests/auto/network/access/qnetworkreply
parent3964ece5a566d1ed517406f0ff713f6f184628ae (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')
-rw-r--r--tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp197
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.