diff options
author | Mårten Nordheim <marten.nordheim@qt.io> | 2020-02-14 12:07:18 +0100 |
---|---|---|
committer | Mårten Nordheim <marten.nordheim@qt.io> | 2020-04-01 21:35:12 +0100 |
commit | 4888e3e8401dc2e949f7e575c0e1e0036d746af6 (patch) | |
tree | a669832b289e0bb17eb511d4042d20136b2269e9 /tests | |
parent | ab91ac09924f7e356e4d2b8cf40c89a3c12011bb (diff) |
Remove bearermanagement usage inside QNAM and QNetworkProxy
Change-Id: I2c4fdf598b46daf1b69a65848ebe0fd78ef8be24
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/network/access/qnetworkaccessmanager/tst_qnetworkaccessmanager.cpp | 79 | ||||
-rw-r--r-- | tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp | 297 |
2 files changed, 0 insertions, 376 deletions
diff --git a/tests/auto/network/access/qnetworkaccessmanager/tst_qnetworkaccessmanager.cpp b/tests/auto/network/access/qnetworkaccessmanager/tst_qnetworkaccessmanager.cpp index b5ded86d58..78919e8af6 100644 --- a/tests/auto/network/access/qnetworkaccessmanager/tst_qnetworkaccessmanager.cpp +++ b/tests/auto/network/access/qnetworkaccessmanager/tst_qnetworkaccessmanager.cpp @@ -30,16 +30,9 @@ #include <QtNetwork/QNetworkAccessManager> #include <QtNetwork/QNetworkReply> -#ifndef QT_NO_BEARERMANAGEMENT -#include <QtNetwork/QNetworkConfigurationManager> -#endif #include <QtCore/QDebug> -#ifndef QT_NO_BEARERMANAGEMENT -Q_DECLARE_METATYPE(QNetworkAccessManager::NetworkAccessibility) -#endif - class tst_QNetworkAccessManager : public QObject { Q_OBJECT @@ -48,7 +41,6 @@ public: tst_QNetworkAccessManager(); private slots: - void networkAccessible(); void alwaysCacheRequest(); }; @@ -56,77 +48,6 @@ tst_QNetworkAccessManager::tst_QNetworkAccessManager() { } -void tst_QNetworkAccessManager::networkAccessible() -{ -#ifndef QT_NO_BEARERMANAGEMENT // ### Qt6: Remove section - QNetworkAccessManager manager; - - qRegisterMetaType<QNetworkAccessManager::NetworkAccessibility>("QNetworkAccessManager::NetworkAccessibility"); - - QSignalSpy spy(&manager, - SIGNAL(networkAccessibleChanged(QNetworkAccessManager::NetworkAccessibility))); - - // if there is no session, we cannot know in which state we are in - QNetworkAccessManager::NetworkAccessibility initialAccessibility = - manager.networkAccessible(); - - if (initialAccessibility == QNetworkAccessManager::UnknownAccessibility) - QSKIP("Unknown accessibility", SkipAll); - - QCOMPARE(manager.networkAccessible(), initialAccessibility); - - manager.setNetworkAccessible(QNetworkAccessManager::NotAccessible); - - int expectedCount = (initialAccessibility == QNetworkAccessManager::Accessible) ? 1 : 0; - QCOMPARE(spy.count(), expectedCount); - if (expectedCount > 0) - QCOMPARE(spy.takeFirst().at(0).value<QNetworkAccessManager::NetworkAccessibility>(), - QNetworkAccessManager::NotAccessible); - QCOMPARE(manager.networkAccessible(), QNetworkAccessManager::NotAccessible); - - // When network is not accessible, all requests fail - QNetworkReply *reply = manager.get(QNetworkRequest(QUrl("http://www.example.org"))); - QSignalSpy finishedSpy(reply, &QNetworkReply::finished); - QSignalSpy errorSpy(reply, &QNetworkReply::errorOccurred); - QVERIFY(finishedSpy.wait()); - QCOMPARE(reply->isFinished(), true); - QCOMPARE(reply->errorString(), QStringLiteral("Network access is disabled.")); - QCOMPARE(errorSpy.count(), 1); - - manager.setNetworkAccessible(QNetworkAccessManager::Accessible); - - QCOMPARE(spy.count(), expectedCount); - if (expectedCount > 0) - QCOMPARE(spy.takeFirst().at(0).value<QNetworkAccessManager::NetworkAccessibility>(), - initialAccessibility); - QCOMPARE(manager.networkAccessible(), initialAccessibility); - - QNetworkConfigurationManager configManager; - QNetworkConfiguration defaultConfig = configManager.defaultConfiguration(); - if (defaultConfig.isValid()) { - manager.setConfiguration(defaultConfig); - - QCOMPARE(spy.count(), 0); - - if (defaultConfig.state().testFlag(QNetworkConfiguration::Active)) - QCOMPARE(manager.networkAccessible(), QNetworkAccessManager::Accessible); - else - QCOMPARE(manager.networkAccessible(), QNetworkAccessManager::NotAccessible); - - manager.setNetworkAccessible(QNetworkAccessManager::NotAccessible); - - if (defaultConfig.state().testFlag(QNetworkConfiguration::Active)) { - QCOMPARE(spy.count(), 1); - QCOMPARE(QNetworkAccessManager::NetworkAccessibility(spy.takeFirst().at(0).toInt()), - QNetworkAccessManager::NotAccessible); - } else { - QCOMPARE(spy.count(), 0); - } - } - QCOMPARE(manager.networkAccessible(), QNetworkAccessManager::NotAccessible); -#endif -} - void tst_QNetworkAccessManager::alwaysCacheRequest() { QNetworkAccessManager manager; diff --git a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp index e26700071b..915926e488 100644 --- a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp +++ b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp @@ -66,12 +66,6 @@ #include <QtNetwork/private/qsslconfiguration_p.h> #endif #endif -#ifndef QT_NO_BEARERMANAGEMENT -#include <QtNetwork/qnetworkconfigmanager.h> -#include <QtNetwork/qnetworkconfiguration.h> -#include <QtNetwork/qnetworksession.h> -#include <QtNetwork/private/qnetworksession_p.h> -#endif #ifdef QT_BUILD_INTERNAL #include <QtNetwork/private/qnetworkreplyimpl_p.h> // implicitly included by qnetworkaccessmanager_p.h currently, but don't rely on that being true forever #include <QtNetwork/private/qnetworkaccessmanager_p.h> @@ -161,11 +155,6 @@ class tst_QNetworkReply: public QObject QList<QSslError> storedExpectedSslErrors; static const QString certsFilePath; #endif -#ifndef QT_NO_BEARERMANAGEMENT - QNetworkConfigurationManager *netConfMan; - QNetworkConfiguration networkConfiguration; - QScopedPointer<QNetworkSession> networkSession; -#endif using QObject::connect; static bool connect(const QNetworkReplyPtr &ptr, const char *signal, const QObject *receiver, const char *slot, Qt::ConnectionType ct = Qt::AutoConnection) @@ -481,15 +470,6 @@ private Q_SLOTS: void emitErrorForAllReplies(); // QTBUG-36890 -#ifdef QT_BUILD_INTERNAL - void backgroundRequest_data(); - void backgroundRequest(); - void backgroundRequestInterruption_data(); - void backgroundRequestInterruption(); - void backgroundRequestConnectInBackground_data(); - void backgroundRequestConnectInBackground(); -#endif - void putWithRateLimiting(); void ioHttpSingleRedirect(); @@ -1576,15 +1556,6 @@ void tst_QNetworkReply::initTestCase() #ifndef QT_NO_SSL QSslConfiguration::defaultConfiguration().caCertificates(); //preload certificates #endif -#ifndef QT_NO_BEARERMANAGEMENT - netConfMan = new QNetworkConfigurationManager(this); - networkConfiguration = netConfMan->defaultConfiguration(); - networkSession.reset(new QNetworkSession(networkConfiguration)); - if (!networkSession->isOpen()) { - networkSession->open(); - QVERIFY(networkSession->waitForOpened(30000)); - } -#endif echoProcessDir = QFINDTESTDATA("echo"); QVERIFY2(!echoProcessDir.isEmpty(), qPrintable( @@ -1599,11 +1570,6 @@ void tst_QNetworkReply::cleanupTestCase() if (!wronlyFileName.isNull()) QFile::remove(wronlyFileName); #endif -#ifndef QT_NO_BEARERMANAGEMENT - if (networkSession && networkSession->isOpen()) { - networkSession->close(); - } -#endif } void tst_QNetworkReply::cleanupTestData() @@ -5931,11 +5897,6 @@ void tst_QNetworkReply::httpProxyCommands() QNetworkRequest request(url); request.setRawHeader("User-Agent", "QNetworkReplyAutoTest/1.0"); QNetworkReplyPtr reply(manager.get(request)); - //clearing the proxy here causes the test to fail. - //the proxy isn't used until after the bearer has been started - //which is correct in general, because system proxy isn't known until that time. - //removing this line is safe, as the proxy is also reset by the cleanup() function - //manager.setProxy(QNetworkProxy()); // wait for the finished signal QVERIFY(waitForFinish(reply) != Timeout); @@ -7028,38 +6989,7 @@ void tst_QNetworkReply::getFromUnreachableIp() // NOERROR; so socket engine starts a timer (30 s.) and waits for a timeout/ // error/success. Unfortunately, the test itself is waiting only for 5 s. // So we have to adjust the connection timeout or skip the test completely - // if the 'bearermanagement' feature is not available. -#if QT_CONFIG(bearermanagement) - class ConfigurationGuard - { - public: - explicit ConfigurationGuard(QNetworkAccessManager *m) - : manager(m) - { - Q_ASSERT(m); - auto conf = manager->configuration(); - previousTimeout = conf.connectTimeout(); - conf.setConnectTimeout(1500); - manager->setConfiguration(conf); - } - ~ConfigurationGuard() - { - Q_ASSERT(manager); - auto conf = manager->configuration(); - conf.setConnectTimeout(previousTimeout); - manager->setConfiguration(conf); - } - private: - QNetworkAccessManager *manager = nullptr; - int previousTimeout = 0; - - Q_DISABLE_COPY(ConfigurationGuard) - }; - - const ConfigurationGuard restorer(&manager); -#else // bearermanagement QSKIP("This test is non-deterministic on Windows x86"); -#endif // !bearermanagement #endif // Q_OS_WIN QNetworkRequest request(QUrl("http://255.255.255.255/42/23/narf/narf/narf")); @@ -8136,233 +8066,6 @@ void tst_QNetworkReply::emitErrorForAllReplies() // QTBUG-36890 } } -#ifdef QT_BUILD_INTERNAL -void tst_QNetworkReply::backgroundRequest_data() -{ -#ifndef QT_NO_BEARERMANAGEMENT - QTest::addColumn<QUrl>("url"); - QTest::addColumn<bool>("background"); - QTest::addColumn<int>("policy"); - QTest::addColumn<QNetworkReply::NetworkError>("error"); - - QUrl httpurl("http://" + QtNetworkSettings::httpServerName()); - QUrl httpsurl("https://" + QtNetworkSettings::httpServerName()); -#if QT_CONFIG(ftp) - QUrl ftpurl("ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/rfc3252.txt"); -#endif - - 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, fg, nobg") << httpurl << false << (int)QNetworkSession::NoBackgroundTrafficPolicy << QNetworkReply::NoError; - QTest::newRow("http, bg, nobg") << httpurl << true << (int)QNetworkSession::NoBackgroundTrafficPolicy << QNetworkReply::BackgroundRequestNotAllowedError; - -#ifndef QT_NO_SSL - QTest::newRow("https, fg, normal") << httpsurl << false << (int)QNetworkSession::NoPolicy << QNetworkReply::NoError; - QTest::newRow("https, bg, normal") << httpsurl << true << (int)QNetworkSession::NoPolicy << QNetworkReply::NoError; - QTest::newRow("https, fg, nobg") << httpsurl << false << (int)QNetworkSession::NoBackgroundTrafficPolicy << QNetworkReply::NoError; - QTest::newRow("https, bg, nobg") << httpsurl << true << (int)QNetworkSession::NoBackgroundTrafficPolicy << QNetworkReply::BackgroundRequestNotAllowedError; -#endif - -#if QT_CONFIG(ftp) - 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, fg, nobg") << ftpurl << false << (int)QNetworkSession::NoBackgroundTrafficPolicy << QNetworkReply::NoError; - QTest::newRow("ftp, bg, nobg") << ftpurl << true << (int)QNetworkSession::NoBackgroundTrafficPolicy << QNetworkReply::BackgroundRequestNotAllowedError; -#endif -#endif // !QT_NO_BEARERMANAGEMENT -} -#endif - -//test purpose: background requests can't be started when not allowed -#ifdef QT_BUILD_INTERNAL -void tst_QNetworkReply::backgroundRequest() -{ -#ifndef QT_NO_BEARERMANAGEMENT - QFETCH(QUrl, url); - QFETCH(bool, background); - QFETCH(int, policy); - QFETCH(QNetworkReply::NetworkError, error); - - QNetworkRequest request(url); - - if (background) - request.setAttribute(QNetworkRequest::BackgroundRequestAttribute, QVariant::fromValue(true)); - - //this preconstructs the session so we can change policies in advance - manager.setConfiguration(networkConfiguration); - -#ifndef QT_NO_SSL - connect(&manager, SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>)), - SLOT(sslErrors(QNetworkReply*,QList<QSslError>))); -#endif - - const QWeakPointer<const QNetworkSession> sessionWeakPtr = QNetworkAccessManagerPrivate::getNetworkSession(&manager); - QVERIFY(!sessionWeakPtr.isNull()); - auto session = const_cast<QNetworkSession *>(sessionWeakPtr.toStrongRef().data()); - QNetworkSession::UsagePolicies original = session->usagePolicies(); - QNetworkSessionPrivate::setUsagePolicies(*session, QNetworkSession::UsagePolicies(policy)); - - QNetworkReplyPtr reply(manager.get(request)); - - QVERIFY(waitForFinish(reply) != Timeout); - if (session) - QNetworkSessionPrivate::setUsagePolicies(*session, original); - - QVERIFY(reply->isFinished()); - QCOMPARE(reply->error(), error); -#endif -} -#endif - -#ifdef QT_BUILD_INTERNAL -void tst_QNetworkReply::backgroundRequestInterruption_data() -{ - QTest::addColumn<QUrl>("url"); - QTest::addColumn<bool>("background"); - QTest::addColumn<QNetworkReply::NetworkError>("error"); - - QUrl httpurl("http://" + QtNetworkSettings::httpServerName() + "/qtest/mediumfile"); - QUrl httpsurl("https://" + QtNetworkSettings::httpServerName() + "/qtest/mediumfile"); -#if QT_CONFIG(ftp) - QUrl ftpurl("ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/bigfile"); -#endif - - QTest::newRow("http, fg, nobg") << httpurl << false << QNetworkReply::NoError; - QTest::newRow("http, bg, nobg") << httpurl << true << QNetworkReply::BackgroundRequestNotAllowedError; - -#ifndef QT_NO_SSL - QTest::newRow("https, fg, nobg") << httpsurl << false << QNetworkReply::NoError; - QTest::newRow("https, bg, nobg") << httpsurl << true << QNetworkReply::BackgroundRequestNotAllowedError; -#endif - -#if QT_CONFIG(ftp) - QTest::newRow("ftp, fg, nobg") << ftpurl << false << QNetworkReply::NoError; - QTest::newRow("ftp, bg, nobg") << ftpurl << true << QNetworkReply::BackgroundRequestNotAllowedError; -#endif -} -#endif - -//test purpose: background requests in progress are aborted when policy changes to disallow them -#ifdef QT_BUILD_INTERNAL -void tst_QNetworkReply::backgroundRequestInterruption() -{ -#ifndef QT_NO_BEARERMANAGEMENT - if (QNetworkStatusMonitor::isEnabled() && QByteArray(QTest::currentDataTag()).startsWith("http")) - QSKIP("This test (currently) doesn't make any sense when QNetworkStatusMonitor is enabled"); - - QFETCH(QUrl, url); - QFETCH(bool, background); - QFETCH(QNetworkReply::NetworkError, error); - - QNetworkRequest request(url); - - if (background) - request.setAttribute(QNetworkRequest::BackgroundRequestAttribute, QVariant::fromValue(true)); - - //this preconstructs the session so we can change policies in advance - manager.setConfiguration(networkConfiguration); - -#ifndef QT_NO_SSL - connect(&manager, SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>)), - SLOT(sslErrors(QNetworkReply*,QList<QSslError>))); -#endif - - const QWeakPointer<const QNetworkSession> sessionWeakPtr = QNetworkAccessManagerPrivate::getNetworkSession(&manager); - QVERIFY(!sessionWeakPtr.isNull()); - auto session = const_cast<QNetworkSession *>(sessionWeakPtr.toStrongRef().data()); - QNetworkSession::UsagePolicies original = session->usagePolicies(); - QNetworkSessionPrivate::setUsagePolicies(*session, QNetworkSession::NoPolicy); - - request.setAttribute(QNetworkRequest::MaximumDownloadBufferSizeAttribute, 8192); - QNetworkReplyPtr reply(manager.get(request)); - reply->setReadBufferSize(1024); - - QSignalSpy spy(reply.data(), SIGNAL(readyRead())); - QTRY_VERIFY(spy.count() > 0); - - QNetworkSessionPrivate::setUsagePolicies(*session, QNetworkSession::NoBackgroundTrafficPolicy); - - // After we have changed the policy we can download at full speed. - reply->setReadBufferSize(0); - - QVERIFY(waitForFinish(reply) != Timeout); - if (session) - QNetworkSessionPrivate::setUsagePolicies(*session, original); - - QVERIFY(reply->isFinished()); - QCOMPARE(reply->error(), error); -#endif -} -#endif - -#ifdef QT_BUILD_INTERNAL -void tst_QNetworkReply::backgroundRequestConnectInBackground_data() -{ - QTest::addColumn<QUrl>("url"); - QTest::addColumn<bool>("background"); - - QUrl httpurl("http://" + QtNetworkSettings::httpServerName()); -#if QT_CONFIG(ftp) - QUrl ftpurl("ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/rfc3252.txt"); -#endif - - QTest::newRow("http, fg") << httpurl << false; - QTest::newRow("http, bg") << httpurl << true; - -#if QT_CONFIG(ftp) - QTest::newRow("ftp, fg") << ftpurl << false; - QTest::newRow("ftp, bg") << ftpurl << true; -#endif -} -#endif - -//test purpose: check that backgroundness is propagated to the network session -#ifdef QT_BUILD_INTERNAL -void tst_QNetworkReply::backgroundRequestConnectInBackground() -{ -#ifndef QT_NO_BEARERMANAGEMENT - QFETCH(QUrl, url); - QFETCH(bool, background); - - QNetworkRequest request(url); - - if (background) - request.setAttribute(QNetworkRequest::BackgroundRequestAttribute, QVariant::fromValue(true)); - - QWeakPointer<const QNetworkSession> session = QNetworkAccessManagerPrivate::getNetworkSession(&manager); - //force QNAM to reopen the session. - if (session && session.toStrongRef().data()->isOpen()) { - const_cast<QNetworkSession *>(session.toStrongRef().data())->close(); - QCoreApplication::processEvents(); //let signals propagate inside QNAM - } - - //this preconstructs the session so we can change policies in advance - manager.setConfiguration(networkConfiguration); - - session = QNetworkAccessManagerPrivate::getNetworkSession(&manager); - QVERIFY(session); - QNetworkSession::UsagePolicies original = session.toStrongRef().data()->usagePolicies(); - QNetworkSessionPrivate::setUsagePolicies(*const_cast<QNetworkSession *>(session.toStrongRef().data()), QNetworkSession::NoPolicy); - - QNetworkReplyPtr reply(manager.get(request)); - - QVERIFY(waitForFinish(reply) != Timeout); - session = QNetworkAccessManagerPrivate::getNetworkSession(&manager); - if (session) { - QVariant cib = session.toStrongRef().data()->sessionProperty(QStringLiteral("ConnectInBackground")); - if (!cib.isValid()) - QSKIP("inconclusive - ConnectInBackground session property not supported by the bearer plugin"); - QCOMPARE(cib.toBool(), background); - QNetworkSessionPrivate::setUsagePolicies(*const_cast<QNetworkSession *>(session.toStrongRef().data()), original); - } else { - QSKIP("inconclusive - network session has been destroyed"); - } - - QVERIFY(reply->isFinished()); -#endif -} -#endif - class RateLimitedUploadDevice : public QIODevice { Q_OBJECT |