From 9efd40bd776e1c5e7ce9feeac63b3673250291b6 Mon Sep 17 00:00:00 2001 From: Peter Hartmann Date: Thu, 28 Feb 2013 17:41:59 +0100 Subject: QNetworkAccessManager: track online / accessible state without session In particular, set online state right upon construction of the QNetworkAccessManager instance. Therefor, QNAM needs an instance of a QNetworkConfigurationManager internally. Before, this would only work properly if a network session was created. Now, networkAccessible() returns the correct status. Change-Id: I7ff9ccfd18ad376a131fc5977843b55bf185fba0 Reviewed-by: Rafael Roquetto Reviewed-by: Shane Kearns --- .../tst_qnetworkaccessmanager.cpp | 35 +++++++++++++++------- 1 file changed, 24 insertions(+), 11 deletions(-) (limited to 'tests/auto/network') diff --git a/tests/auto/network/access/qnetworkaccessmanager/tst_qnetworkaccessmanager.cpp b/tests/auto/network/access/qnetworkaccessmanager/tst_qnetworkaccessmanager.cpp index 25301feee4..125eab2f8c 100644 --- a/tests/auto/network/access/qnetworkaccessmanager/tst_qnetworkaccessmanager.cpp +++ b/tests/auto/network/access/qnetworkaccessmanager/tst_qnetworkaccessmanager.cpp @@ -77,30 +77,43 @@ void tst_QNetworkAccessManager::networkAccessible() QSignalSpy spy(&manager, SIGNAL(networkAccessibleChanged(QNetworkAccessManager::NetworkAccessibility))); - QCOMPARE(manager.networkAccessible(), QNetworkAccessManager::UnknownAccessibility); + // if there is no session, we cannot know in which state we are in + QNetworkAccessManager::NetworkAccessibility initialAccessibility = + manager.networkAccessible(); + QCOMPARE(manager.networkAccessible(), initialAccessibility); manager.setNetworkAccessible(QNetworkAccessManager::NotAccessible); - QCOMPARE(spy.count(), 1); - QCOMPARE(spy.takeFirst().at(0).value(), - QNetworkAccessManager::NotAccessible); + int expectedCount = (initialAccessibility == QNetworkAccessManager::Accessible) ? 1 : 0; + QCOMPARE(spy.count(), expectedCount); + if (expectedCount > 0) + QCOMPARE(spy.takeFirst().at(0).value(), + QNetworkAccessManager::NotAccessible); QCOMPARE(manager.networkAccessible(), QNetworkAccessManager::NotAccessible); manager.setNetworkAccessible(QNetworkAccessManager::Accessible); - QCOMPARE(spy.count(), 1); - QCOMPARE(spy.takeFirst().at(0).value(), - QNetworkAccessManager::UnknownAccessibility); - QCOMPARE(manager.networkAccessible(), QNetworkAccessManager::UnknownAccessibility); + QCOMPARE(spy.count(), expectedCount); + if (expectedCount > 0) + QCOMPARE(spy.takeFirst().at(0).value(), + initialAccessibility); + QCOMPARE(manager.networkAccessible(), initialAccessibility); QNetworkConfigurationManager configManager; + bool sessionRequired = (configManager.capabilities() + & QNetworkConfigurationManager::NetworkSessionRequired); QNetworkConfiguration defaultConfig = configManager.defaultConfiguration(); if (defaultConfig.isValid()) { manager.setConfiguration(defaultConfig); - QCOMPARE(spy.count(), 1); - QCOMPARE(spy.takeFirst().at(0).value(), - QNetworkAccessManager::Accessible); + // the accessibility has not changed if no session is required + if (sessionRequired) { + QCOMPARE(spy.count(), 1); + QCOMPARE(spy.takeFirst().at(0).value(), + QNetworkAccessManager::Accessible); + } else { + QCOMPARE(spy.count(), 0); + } QCOMPARE(manager.networkAccessible(), QNetworkAccessManager::Accessible); manager.setNetworkAccessible(QNetworkAccessManager::NotAccessible); -- cgit v1.2.3