Add unit test for usagePolicies

Change-Id: I749268d81521d84ffc709014963a0f34fbf6d74c
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
bb10
Shane Kearns 2012-04-10 13:15:29 +01:00 committed by Qt by Nokia
parent 1a6b338e10
commit 680f35ec1e
2 changed files with 32 additions and 1 deletions

View File

@ -2,7 +2,7 @@ CONFIG += testcase
SOURCES += tst_qnetworksession.cpp
HEADERS += ../../qbearertestcommon.h
QT = core network testlib
QT = core network testlib network-private
TARGET = tst_qnetworksession
CONFIG(debug_and_release) {

View File

@ -48,6 +48,7 @@
#ifndef QT_NO_BEARERMANAGEMENT
#include <QtNetwork/qnetworkconfigmanager.h>
#include <QtNetwork/qnetworksession.h>
#include <private/qnetworksession_p.h>
#endif
QT_USE_NAMESPACE
@ -93,6 +94,8 @@ private slots:
void sessionAutoClose_data();
void sessionAutoClose();
void usagePolicies();
private:
QNetworkConfigurationManager manager;
int inProcessSessionManagementCount;
@ -1261,6 +1264,34 @@ void tst_QNetworkSession::sessionAutoClose()
QCOMPARE(autoCloseSession.toInt(), -1);
}
void tst_QNetworkSession::usagePolicies()
{
QNetworkSession session(manager.defaultConfiguration());
QNetworkSession::UsagePolicies initial;
initial = session.usagePolicies();
if (initial != 0)
QNetworkSessionPrivate::setUsagePolicies(session, 0);
QSignalSpy spy(&session, SIGNAL(usagePoliciesChanged(QNetworkSession::UsagePolicies)));
QNetworkSessionPrivate::setUsagePolicies(session, QNetworkSession::NoBackgroundTrafficPolicy);
QCOMPARE(spy.count(), 1);
QNetworkSession::UsagePolicies policies = qvariant_cast<QNetworkSession::UsagePolicies>(spy.at(0).at(0));
QCOMPARE(policies, QNetworkSession::NoBackgroundTrafficPolicy);
QCOMPARE(session.usagePolicies(), QNetworkSession::NoBackgroundTrafficPolicy);
QNetworkSessionPrivate::setUsagePolicies(session, initial);
spy.clear();
session.open();
QVERIFY(session.waitForOpened());
//policies may be changed when session is opened, if so, signal should have been emitted
if (session.usagePolicies() != initial)
QCOMPARE(spy.count(), 1);
else
QCOMPARE(spy.count(), 0);
}
#endif
QTEST_MAIN(tst_QNetworkSession)