QNetworkReply: fix isFinished() for disabled replies
When network access is disabled, every QNAM request returns a QDisabledNetworkReply instance, which emits error and finished immediately. However isFinished() was still false, which could confuse application code. Change-Id: Ifd43c86364b11a9583a38fde536e6c09c109b55f Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>bb10
parent
23fd4f7171
commit
8b6838347d
|
|
@ -1125,6 +1125,7 @@ QDisabledNetworkReply::QDisabledNetworkReply(QObject *parent,
|
|||
setRequest(req);
|
||||
setUrl(req.url());
|
||||
setOperation(op);
|
||||
setFinished(true);
|
||||
|
||||
qRegisterMetaType<QNetworkReply::NetworkError>();
|
||||
|
||||
|
|
|
|||
|
|
@ -84,6 +84,15 @@ void tst_QNetworkAccessManager::networkAccessible()
|
|||
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, QOverload<QNetworkReply::NetworkError>::of(&QNetworkReply::error));
|
||||
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);
|
||||
|
|
|
|||
Loading…
Reference in New Issue