Disable FTP support in QNAM by default

If necessary, the feature still can be enabled with -feature-ftp.

Task-number: QTBUG-80339
Change-Id: I7dafaad254d1396f24ac5c339d55c3bedfa97f1c
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
This commit is contained in:
Karsten Heimrich 2020-02-11 12:28:35 +01:00
parent 94c04c3e54
commit 1b4dd753ed
7 changed files with 67 additions and 5 deletions

View File

@ -274,6 +274,7 @@ qt_feature("ftp" PUBLIC
SECTION "Networking" SECTION "Networking"
LABEL "FTP" LABEL "FTP"
PURPOSE "Provides support for the File Transfer Protocol in QNetworkAccessManager." PURPOSE "Provides support for the File Transfer Protocol in QNetworkAccessManager."
AUTODETECT OFF
CONDITION QT_FEATURE_textdate CONDITION QT_FEATURE_textdate
) )
qt_feature_definition("ftp" "QT_NO_FTP" NEGATE VALUE "1") qt_feature_definition("ftp" "QT_NO_FTP" NEGATE VALUE "1")

View File

@ -343,6 +343,7 @@
"label": "FTP", "label": "FTP",
"purpose": "Provides support for the File Transfer Protocol in QNetworkAccessManager.", "purpose": "Provides support for the File Transfer Protocol in QNetworkAccessManager.",
"section": "Networking", "section": "Networking",
"autoDetect": false,
"condition": "features.textdate", "condition": "features.textdate",
"output": [ "publicFeature", "feature" ] "output": [ "publicFeature", "feature" ]
}, },
@ -480,6 +481,7 @@ For example:
"opensslv11", "opensslv11",
"dtls", "dtls",
"ocsp", "ocsp",
"ftp",
"sctp", "sctp",
"system-proxies", "system-proxies",
"gssapi" "gssapi"

View File

@ -13,8 +13,10 @@ add_subdirectory(qabstractnetworkcache)
if(QT_FEATURE_private_tests) if(QT_FEATURE_private_tests)
add_subdirectory(qhttpnetworkconnection) add_subdirectory(qhttpnetworkconnection)
add_subdirectory(qhttpnetworkreply) add_subdirectory(qhttpnetworkreply)
add_subdirectory(qftp)
add_subdirectory(hpack) add_subdirectory(hpack)
add_subdirectory(http2) add_subdirectory(http2)
add_subdirectory(hsts) add_subdirectory(hsts)
endif() endif()
if(QT_FEATURE_ftp AND QT_FEATURE_private_tests)
add_subdirectory(qftp)
endif()

View File

@ -1,4 +1,6 @@
TEMPLATE=subdirs TEMPLATE=subdirs
QT_FOR_CONFIG += network
SUBDIRS=\ SUBDIRS=\
qnetworkdiskcache \ qnetworkdiskcache \
qnetworkcookiejar \ qnetworkcookiejar \
@ -8,7 +10,6 @@ SUBDIRS=\
qhttpnetworkconnection \ qhttpnetworkconnection \
qnetworkreply \ qnetworkreply \
qnetworkcachemetadata \ qnetworkcachemetadata \
qftp \
qhttpnetworkreply \ qhttpnetworkreply \
qabstractnetworkcache \ qabstractnetworkcache \
hpack \ hpack \
@ -18,7 +19,8 @@ SUBDIRS=\
!qtConfig(private_tests): SUBDIRS -= \ !qtConfig(private_tests): SUBDIRS -= \
qhttpnetworkconnection \ qhttpnetworkconnection \
qhttpnetworkreply \ qhttpnetworkreply \
qftp \
hpack \ hpack \
http2 \ http2 \
hsts hsts
qtConfig(ftp): qtConfig(private_tests): SUBDIRS += qftp

View File

@ -1,5 +1,8 @@
# Generated from qftp.pro. # Generated from qftp.pro.
if(NOT QT_FEATURE_ftp)
return()
endif()
if(NOT QT_FEATURE_private_tests) if(NOT QT_FEATURE_private_tests)
return() return()
endif() endif()
@ -17,5 +20,6 @@ add_qt_test(tst_qftp
) )
#### Keys ignored in scope 1:.:.:qftp.pro:<TRUE>: #### Keys ignored in scope 1:.:.:qftp.pro:<TRUE>:
# QT_FOR_CONFIG = "network"
# QT_TEST_SERVER_LIST = "vsftpd" "ftp-proxy" "squid" "danted" # QT_TEST_SERVER_LIST = "vsftpd" "ftp-proxy" "squid" "danted"
# _REQUIREMENTS = "qtConfig(private_tests)" # _REQUIREMENTS = "qtConfig(ftp)" "qtConfig(private_tests)"

View File

@ -1,7 +1,9 @@
CONFIG += testcase CONFIG += testcase
TARGET = tst_qftp TARGET = tst_qftp
SOURCES += tst_qftp.cpp SOURCES += tst_qftp.cpp
QT_FOR_CONFIG += network
requires(qtConfig(ftp))
requires(qtConfig(private_tests)) requires(qtConfig(private_tests))
QT = core network network-private testlib QT = core network network-private testlib

View File

@ -219,9 +219,11 @@ private Q_SLOTS:
void getFromFile(); void getFromFile();
void getFromFileSpecial_data(); void getFromFileSpecial_data();
void getFromFileSpecial(); void getFromFileSpecial();
#if QT_CONFIG(ftp)
void getFromFtp_data(); void getFromFtp_data();
void getFromFtp(); void getFromFtp();
void getFromFtpAfterError(); // QTBUG-40797 void getFromFtpAfterError(); // QTBUG-40797
#endif
void getFromHttp_data(); void getFromHttp_data();
void getFromHttp(); void getFromHttp();
void getErrors_data(); void getErrors_data();
@ -232,9 +234,11 @@ private Q_SLOTS:
#endif // !QT_NO_NETWORKPROXY #endif // !QT_NO_NETWORKPROXY
void putToFile_data(); void putToFile_data();
void putToFile(); void putToFile();
#if QT_CONFIG(ftp)
void putToFtp_data(); void putToFtp_data();
void putToFtp(); void putToFtp();
void putToFtpWithInvalidCredentials(); // QTBUG-40622 void putToFtpWithInvalidCredentials(); // QTBUG-40622
#endif
void putToHttp_data(); void putToHttp_data();
void putToHttp(); void putToHttp();
void putToHttpSynchronous_data(); void putToHttpSynchronous_data();
@ -275,9 +279,11 @@ private Q_SLOTS:
void ioGetFromFileSpecial(); void ioGetFromFileSpecial();
void ioGetFromFile_data(); void ioGetFromFile_data();
void ioGetFromFile(); void ioGetFromFile();
#if QT_CONFIG(ftp)
void ioGetFromFtp_data(); void ioGetFromFtp_data();
void ioGetFromFtp(); void ioGetFromFtp();
void ioGetFromFtpWithReuse(); void ioGetFromFtpWithReuse();
#endif
void ioGetFromHttp(); void ioGetFromHttp();
void ioGetFromBuiltinHttp_data(); void ioGetFromBuiltinHttp_data();
@ -319,8 +325,10 @@ private Q_SLOTS:
void ioPutToFileFromLocalSocket(); void ioPutToFileFromLocalSocket();
void ioPutToFileFromProcess_data(); void ioPutToFileFromProcess_data();
void ioPutToFileFromProcess(); void ioPutToFileFromProcess();
#if QT_CONFIG(ftp)
void ioPutToFtpFromFile_data(); void ioPutToFtpFromFile_data();
void ioPutToFtpFromFile(); void ioPutToFtpFromFile();
#endif
void ioPutToHttpFromFile_data(); void ioPutToHttpFromFile_data();
void ioPutToHttpFromFile(); void ioPutToHttpFromFile();
void ioPostToHttpFromFile_data(); void ioPostToHttpFromFile_data();
@ -466,8 +474,10 @@ private Q_SLOTS:
void closeDuringDownload_data(); void closeDuringDownload_data();
void closeDuringDownload(); void closeDuringDownload();
#if QT_CONFIG(ftp)
void ftpAuthentication_data(); void ftpAuthentication_data();
void ftpAuthentication(); void ftpAuthentication();
#endif
void emitErrorForAllReplies(); // QTBUG-36890 void emitErrorForAllReplies(); // QTBUG-36890
@ -1852,6 +1862,7 @@ void tst_QNetworkReply::getFromFileSpecial()
QCOMPARE(reply->readAll(), resource.readAll()); QCOMPARE(reply->readAll(), resource.readAll());
} }
#if QT_CONFIG(ftp)
void tst_QNetworkReply::getFromFtp_data() void tst_QNetworkReply::getFromFtp_data()
{ {
QTest::addColumn<QString>("referenceName"); QTest::addColumn<QString>("referenceName");
@ -1904,6 +1915,7 @@ void tst_QNetworkReply::getFromFtpAfterError()
QCOMPARE(validReply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), reference.size()); QCOMPARE(validReply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), reference.size());
QCOMPARE(validReply->readAll(), reference.readAll()); QCOMPARE(validReply->readAll(), reference.readAll());
} }
#endif
void tst_QNetworkReply::getFromHttp_data() void tst_QNetworkReply::getFromHttp_data()
{ {
@ -2073,6 +2085,7 @@ void tst_QNetworkReply::getErrors_data()
QTest::newRow("file-permissions") << "file:" + filePermissionFileName QTest::newRow("file-permissions") << "file:" + filePermissionFileName
<< int(QNetworkReply::ContentAccessDenied) << 0 << true; << int(QNetworkReply::ContentAccessDenied) << 0 << true;
#if QT_CONFIG(ftp)
// ftp: errors // ftp: errors
QTest::newRow("ftp-host") << "ftp://invalid.test.qt-project.org/foo.txt" QTest::newRow("ftp-host") << "ftp://invalid.test.qt-project.org/foo.txt"
<< int(QNetworkReply::HostNotFoundError) << 0 << true; << int(QNetworkReply::HostNotFoundError) << 0 << true;
@ -2086,6 +2099,7 @@ void tst_QNetworkReply::getErrors_data()
<< int(QNetworkReply::ContentAccessDenied) << 0 << true; << int(QNetworkReply::ContentAccessDenied) << 0 << true;
QTest::newRow("ftp-exist") << "ftp://" + QtNetworkSettings::ftpServerName() + "/pub/this-file-doesnt-exist.txt" QTest::newRow("ftp-exist") << "ftp://" + QtNetworkSettings::ftpServerName() + "/pub/this-file-doesnt-exist.txt"
<< int(QNetworkReply::ContentNotFoundError) << 0 << true; << int(QNetworkReply::ContentNotFoundError) << 0 << true;
#endif
// http: errors // http: errors
QTest::newRow("http-host") << "http://invalid.test.qt-project.org/" QTest::newRow("http-host") << "http://invalid.test.qt-project.org/"
@ -2139,9 +2153,11 @@ void tst_QNetworkReply::getErrors()
QVERIFY2(waitResult != Timeout, msgGetErrors(waitResult, reply)); QVERIFY2(waitResult != Timeout, msgGetErrors(waitResult, reply));
QFETCH(int, error); QFETCH(int, error);
#if QT_CONFIG(ftp)
QEXPECT_FAIL("ftp-is-dir", "QFtp cannot provide enough detail", Abort); QEXPECT_FAIL("ftp-is-dir", "QFtp cannot provide enough detail", Abort);
// the line below is not necessary // the line below is not necessary
QEXPECT_FAIL("ftp-dir-not-readable", "QFtp cannot provide enough detail", Abort); QEXPECT_FAIL("ftp-dir-not-readable", "QFtp cannot provide enough detail", Abort);
#endif
QCOMPARE(reply->networkError(), QNetworkReply::NetworkError(error)); QCOMPARE(reply->networkError(), QNetworkReply::NetworkError(error));
QTEST(reply->readAll().isEmpty(), "dataIsEmpty"); QTEST(reply->readAll().isEmpty(), "dataIsEmpty");
@ -2211,6 +2227,7 @@ void tst_QNetworkReply::putToFile()
QCOMPARE(contents, data); QCOMPARE(contents, data);
} }
#if QT_CONFIG(ftp)
void tst_QNetworkReply::putToFtp_data() void tst_QNetworkReply::putToFtp_data()
{ {
putToFile_data(); putToFile_data();
@ -2283,6 +2300,7 @@ void tst_QNetworkReply::putToFtpWithInvalidCredentials()
r->close(); r->close();
} }
} }
#endif
void tst_QNetworkReply::putToHttp_data() void tst_QNetworkReply::putToHttp_data()
{ {
@ -3283,6 +3301,7 @@ void tst_QNetworkReply::ioGetFromFile()
QCOMPARE(reader.data, data); QCOMPARE(reader.data, data);
} }
#if QT_CONFIG(ftp)
void tst_QNetworkReply::ioGetFromFtp_data() void tst_QNetworkReply::ioGetFromFtp_data()
{ {
QTest::addColumn<QString>("fileName"); QTest::addColumn<QString>("fileName");
@ -3349,6 +3368,7 @@ void tst_QNetworkReply::ioGetFromFtpWithReuse()
QCOMPARE(reader1.data, referenceData); QCOMPARE(reader1.data, referenceData);
QCOMPARE(reader2.data, referenceData); QCOMPARE(reader2.data, referenceData);
} }
#endif
void tst_QNetworkReply::ioGetFromHttp() void tst_QNetworkReply::ioGetFromHttp()
{ {
@ -4205,6 +4225,7 @@ void tst_QNetworkReply::ioGetWithManyProxies_data()
<< "http://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt" << "http://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt"
<< QNetworkReply::NoError; << QNetworkReply::NoError;
#if QT_CONFIG(ftp)
// FTP request with FTP caching proxy // FTP request with FTP caching proxy
proxyList.clear(); proxyList.clear();
proxyList << QNetworkProxy(QNetworkProxy::FtpCachingProxy, QtNetworkSettings::ftpProxyServerName(), 2121); proxyList << QNetworkProxy(QNetworkProxy::FtpCachingProxy, QtNetworkSettings::ftpProxyServerName(), 2121);
@ -4223,6 +4244,7 @@ void tst_QNetworkReply::ioGetWithManyProxies_data()
<< proxyList << proxyList.at(0) << proxyList << proxyList.at(0)
<< "ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/rfc3252.txt" << "ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/rfc3252.txt"
<< QNetworkReply::NoError; << QNetworkReply::NoError;
#endif
#ifndef QT_NO_SSL #ifndef QT_NO_SSL
// HTTPS with HTTP transparent proxy // HTTPS with HTTP transparent proxy
@ -4252,6 +4274,7 @@ void tst_QNetworkReply::ioGetWithManyProxies_data()
<< "http://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt" << "http://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt"
<< QNetworkReply::ProxyNotFoundError; << QNetworkReply::ProxyNotFoundError;
#if QT_CONFIG(ftp)
// FTP request with HTTP caching proxy // FTP request with HTTP caching proxy
proxyList.clear(); proxyList.clear();
proxyList << QNetworkProxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::httpProxyServerName(), 3129); proxyList << QNetworkProxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::httpProxyServerName(), 3129);
@ -4268,6 +4291,7 @@ void tst_QNetworkReply::ioGetWithManyProxies_data()
<< proxyList << QNetworkProxy() << proxyList << QNetworkProxy()
<< "ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/rfc3252.txt" << "ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/rfc3252.txt"
<< QNetworkReply::ProxyNotFoundError; << QNetworkReply::ProxyNotFoundError;
#endif
#ifndef QT_NO_SSL #ifndef QT_NO_SSL
// HTTPS with HTTP caching proxy // HTTPS with HTTP caching proxy
@ -4335,6 +4359,7 @@ void tst_QNetworkReply::ioGetWithManyProxies_data()
<< "http://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt" << "http://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt"
<< QNetworkReply::NoError; << QNetworkReply::NoError;
#if QT_CONFIG(ftp)
// FTP request with HTTP Caching + FTP // FTP request with HTTP Caching + FTP
proxyList.clear(); proxyList.clear();
proxyList << QNetworkProxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::httpProxyServerName(), 3129) proxyList << QNetworkProxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::httpProxyServerName(), 3129)
@ -4343,6 +4368,7 @@ void tst_QNetworkReply::ioGetWithManyProxies_data()
<< proxyList << proxyList.at(1) // second proxy should be used << proxyList << proxyList.at(1) // second proxy should be used
<< "ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/rfc3252.txt" << "ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/rfc3252.txt"
<< QNetworkReply::NoError; << QNetworkReply::NoError;
#endif
#ifndef QT_NO_SSL #ifndef QT_NO_SSL
// HTTPS request with HTTP Caching + HTTP transparent // HTTPS request with HTTP Caching + HTTP transparent
@ -4403,7 +4429,9 @@ void tst_QNetworkReply::ioGetWithManyProxies()
#endif #endif
QFETCH(QNetworkReply::NetworkError, expectedError); 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); QEXPECT_FAIL("ftp-on-socks", "QFtp is too limited and won't accept non-FTP proxies", Abort);
#endif
QCOMPARE(reply->networkError(), expectedError); QCOMPARE(reply->networkError(), expectedError);
// Verify that the factory was called properly // Verify that the factory was called properly
@ -4419,8 +4447,10 @@ void tst_QNetworkReply::ioGetWithManyProxies()
if (proxyUsed.type() == QNetworkProxy::NoProxy) { if (proxyUsed.type() == QNetworkProxy::NoProxy) {
QCOMPARE(authspy.count(), 0); QCOMPARE(authspy.count(), 0);
} else { } else {
#if QT_CONFIG(ftp)
if (QByteArray(QTest::currentDataTag()).startsWith("ftp-")) if (QByteArray(QTest::currentDataTag()).startsWith("ftp-"))
return; // No authentication with current FTP or with FTP proxies return; // No authentication with current FTP or with FTP proxies
#endif
QCOMPARE(authspy.count(), 1); QCOMPARE(authspy.count(), 1);
QCOMPARE(qvariant_cast<QNetworkProxy>(authspy.at(0).at(0)), proxyUsed); QCOMPARE(qvariant_cast<QNetworkProxy>(authspy.at(0).at(0)), proxyUsed);
} }
@ -4601,6 +4631,7 @@ void tst_QNetworkReply::ioPutToFileFromProcess()
#endif // QT_CONFIG(process) #endif // QT_CONFIG(process)
} }
#if QT_CONFIG(ftp)
void tst_QNetworkReply::ioPutToFtpFromFile_data() void tst_QNetworkReply::ioPutToFtpFromFile_data()
{ {
ioPutToFileFromFile_data(); ioPutToFileFromFile_data();
@ -4649,6 +4680,7 @@ void tst_QNetworkReply::ioPutToFtpFromFile()
QTestEventLoop::instance().enterLoop(10); QTestEventLoop::instance().enterLoop(10);
QObject::disconnect(r, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop())); QObject::disconnect(r, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()));
} }
#endif
void tst_QNetworkReply::ioPutToHttpFromFile_data() void tst_QNetworkReply::ioPutToHttpFromFile_data()
{ {
@ -8016,7 +8048,9 @@ void tst_QNetworkReply::closeDuringDownload_data()
{ {
QTest::addColumn<QUrl>("url"); QTest::addColumn<QUrl>("url");
QTest::newRow("http") << QUrl("http://" + QtNetworkSettings::httpServerName() + "/bigfile"); QTest::newRow("http") << QUrl("http://" + QtNetworkSettings::httpServerName() + "/bigfile");
#if QT_CONFIG(ftp)
QTest::newRow("ftp") << QUrl("ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/bigfile"); QTest::newRow("ftp") << QUrl("ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/bigfile");
#endif
} }
void tst_QNetworkReply::closeDuringDownload() void tst_QNetworkReply::closeDuringDownload()
@ -8034,6 +8068,7 @@ void tst_QNetworkReply::closeDuringDownload()
QVERIFY(destroySpy.wait()); QVERIFY(destroySpy.wait());
} }
#if QT_CONFIG(ftp)
void tst_QNetworkReply::ftpAuthentication_data() void tst_QNetworkReply::ftpAuthentication_data()
{ {
QTest::addColumn<QString>("referenceName"); QTest::addColumn<QString>("referenceName");
@ -8060,6 +8095,7 @@ void tst_QNetworkReply::ftpAuthentication()
QCOMPARE(reply->url(), request.url()); QCOMPARE(reply->url(), request.url());
QCOMPARE(reply->networkError(), QNetworkReply::NetworkError(error)); QCOMPARE(reply->networkError(), QNetworkReply::NetworkError(error));
} }
#endif
void tst_QNetworkReply::emitErrorForAllReplies() // QTBUG-36890 void tst_QNetworkReply::emitErrorForAllReplies() // QTBUG-36890
{ {
@ -8103,7 +8139,9 @@ void tst_QNetworkReply::backgroundRequest_data()
QUrl httpurl("http://" + QtNetworkSettings::httpServerName()); QUrl httpurl("http://" + QtNetworkSettings::httpServerName());
QUrl httpsurl("https://" + QtNetworkSettings::httpServerName()); QUrl httpsurl("https://" + QtNetworkSettings::httpServerName());
#if QT_CONFIG(ftp)
QUrl ftpurl("ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/rfc3252.txt"); QUrl ftpurl("ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/rfc3252.txt");
#endif
QTest::newRow("http, fg, normal") << httpurl << false << (int)QNetworkSession::NoPolicy << QNetworkReply::NoError; QTest::newRow("http, fg, normal") << httpurl << false << (int)QNetworkSession::NoPolicy << QNetworkReply::NoError;
QTest::newRow("http, bg, normal") << httpurl << true << (int)QNetworkSession::NoPolicy << QNetworkReply::NoError; QTest::newRow("http, bg, normal") << httpurl << true << (int)QNetworkSession::NoPolicy << QNetworkReply::NoError;
@ -8117,10 +8155,12 @@ void tst_QNetworkReply::backgroundRequest_data()
QTest::newRow("https, bg, nobg") << httpsurl << true << (int)QNetworkSession::NoBackgroundTrafficPolicy << QNetworkReply::BackgroundRequestNotAllowedError; QTest::newRow("https, bg, nobg") << httpsurl << true << (int)QNetworkSession::NoBackgroundTrafficPolicy << QNetworkReply::BackgroundRequestNotAllowedError;
#endif #endif
#if QT_CONFIG(ftp)
QTest::newRow("ftp, fg, normal") << ftpurl << false << (int)QNetworkSession::NoPolicy << QNetworkReply::NoError; QTest::newRow("ftp, fg, normal") << ftpurl << false << (int)QNetworkSession::NoPolicy << QNetworkReply::NoError;
QTest::newRow("ftp, bg, normal") << ftpurl << true << (int)QNetworkSession::NoPolicy << QNetworkReply::NoError; QTest::newRow("ftp, bg, normal") << ftpurl << true << (int)QNetworkSession::NoPolicy << QNetworkReply::NoError;
QTest::newRow("ftp, fg, nobg") << ftpurl << false << (int)QNetworkSession::NoBackgroundTrafficPolicy << QNetworkReply::NoError; QTest::newRow("ftp, fg, nobg") << ftpurl << false << (int)QNetworkSession::NoBackgroundTrafficPolicy << QNetworkReply::NoError;
QTest::newRow("ftp, bg, nobg") << ftpurl << true << (int)QNetworkSession::NoBackgroundTrafficPolicy << QNetworkReply::BackgroundRequestNotAllowedError; QTest::newRow("ftp, bg, nobg") << ftpurl << true << (int)QNetworkSession::NoBackgroundTrafficPolicy << QNetworkReply::BackgroundRequestNotAllowedError;
#endif
#endif // !QT_NO_BEARERMANAGEMENT #endif // !QT_NO_BEARERMANAGEMENT
} }
#endif #endif
@ -8175,7 +8215,9 @@ void tst_QNetworkReply::backgroundRequestInterruption_data()
QUrl httpurl("http://" + QtNetworkSettings::httpServerName() + "/qtest/mediumfile"); QUrl httpurl("http://" + QtNetworkSettings::httpServerName() + "/qtest/mediumfile");
QUrl httpsurl("https://" + QtNetworkSettings::httpServerName() + "/qtest/mediumfile"); QUrl httpsurl("https://" + QtNetworkSettings::httpServerName() + "/qtest/mediumfile");
#if QT_CONFIG(ftp)
QUrl ftpurl("ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/bigfile"); QUrl ftpurl("ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/bigfile");
#endif
QTest::newRow("http, fg, nobg") << httpurl << false << QNetworkReply::NoError; QTest::newRow("http, fg, nobg") << httpurl << false << QNetworkReply::NoError;
QTest::newRow("http, bg, nobg") << httpurl << true << QNetworkReply::BackgroundRequestNotAllowedError; QTest::newRow("http, bg, nobg") << httpurl << true << QNetworkReply::BackgroundRequestNotAllowedError;
@ -8185,9 +8227,10 @@ void tst_QNetworkReply::backgroundRequestInterruption_data()
QTest::newRow("https, bg, nobg") << httpsurl << true << QNetworkReply::BackgroundRequestNotAllowedError; QTest::newRow("https, bg, nobg") << httpsurl << true << QNetworkReply::BackgroundRequestNotAllowedError;
#endif #endif
#if QT_CONFIG(ftp)
QTest::newRow("ftp, fg, nobg") << ftpurl << false << QNetworkReply::NoError; QTest::newRow("ftp, fg, nobg") << ftpurl << false << QNetworkReply::NoError;
QTest::newRow("ftp, bg, nobg") << ftpurl << true << QNetworkReply::BackgroundRequestNotAllowedError; QTest::newRow("ftp, bg, nobg") << ftpurl << true << QNetworkReply::BackgroundRequestNotAllowedError;
#endif
} }
#endif #endif
@ -8251,13 +8294,17 @@ void tst_QNetworkReply::backgroundRequestConnectInBackground_data()
QTest::addColumn<bool>("background"); QTest::addColumn<bool>("background");
QUrl httpurl("http://" + QtNetworkSettings::httpServerName()); QUrl httpurl("http://" + QtNetworkSettings::httpServerName());
#if QT_CONFIG(ftp)
QUrl ftpurl("ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/rfc3252.txt"); QUrl ftpurl("ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/rfc3252.txt");
#endif
QTest::newRow("http, fg") << httpurl << false; QTest::newRow("http, fg") << httpurl << false;
QTest::newRow("http, bg") << httpurl << true; QTest::newRow("http, bg") << httpurl << true;
#if QT_CONFIG(ftp)
QTest::newRow("ftp, fg") << ftpurl << false; QTest::newRow("ftp, fg") << ftpurl << false;
QTest::newRow("ftp, bg") << ftpurl << true; QTest::newRow("ftp, bg") << ftpurl << true;
#endif
} }
#endif #endif
@ -9183,7 +9230,9 @@ void tst_QNetworkReply::autoDeleteRepliesAttribute_data()
QTest::newRow("http") << QUrl("http://QInvalidDomain.qt/test"); QTest::newRow("http") << QUrl("http://QInvalidDomain.qt/test");
QTest::newRow("https") << QUrl("https://QInvalidDomain.qt/test"); QTest::newRow("https") << QUrl("https://QInvalidDomain.qt/test");
#if QT_CONFIG(ftp)
QTest::newRow("ftp") << QUrl("ftp://QInvalidDomain.qt/test"); QTest::newRow("ftp") << QUrl("ftp://QInvalidDomain.qt/test");
#endif
QTest::newRow("file") << QUrl("file:///thisfolderdoesn'texist/probably.txt"); QTest::newRow("file") << QUrl("file:///thisfolderdoesn'texist/probably.txt");
#ifdef Q_OS_WIN #ifdef Q_OS_WIN
// Only supported on windows. // Only supported on windows.