Add unit test for usagePolicies
authorShane Kearns <ext-shane.2.kearns@nokia.com>
Tue, 10 Apr 2012 12:15:29 +0000 (13:15 +0100)
committerQt by Nokia <qt-info@nokia.com>
Wed, 11 Apr 2012 20:20:03 +0000 (22:20 +0200)
Change-Id: I749268d81521d84ffc709014963a0f34fbf6d74c
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
tests/auto/network/bearer/qnetworksession/test/test.pro
tests/auto/network/bearer/qnetworksession/test/tst_qnetworksession.cpp

index 2f1a9ba..c87e8e9 100644 (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) {
index 27e1e7f..5980e5f 100644 (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)