Expand tst_QNetworkReply::backgroundRequest to ftp & https
authorShane Kearns <ext-shane.2.kearns@nokia.com>
Fri, 13 Apr 2012 14:50:13 +0000 (15:50 +0100)
committerQt by Nokia <qt-info@nokia.com>
Thu, 19 Apr 2012 17:46:07 +0000 (19:46 +0200)
Ftp and Http have different implementations of QNetworkReply,
so test both of them.

Change-Id: If502fa1788110edf89e619966534eea08830a19b
Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp

index 2d784fc..35d4add 100644 (file)
@@ -1402,6 +1402,11 @@ void tst_QNetworkReply::cleanup()
 
     // clear cookies
     cookieJar->setAllCookies(QList<QNetworkCookie>());
+
+    // disconnect manager signals
+    manager.disconnect(SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>)));
+    manager.disconnect(SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*)));
+    manager.disconnect(SIGNAL(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*)));
 }
 
 void tst_QNetworkReply::stateChecking()
@@ -6811,25 +6816,44 @@ void tst_QNetworkReply::ftpAuthentication()
 
 void tst_QNetworkReply::backgroundRequest_data()
 {
+    QTest::addColumn<QUrl>("url");
     QTest::addColumn<bool>("background");
     QTest::addColumn<int>("policy");
     QTest::addColumn<QNetworkReply::NetworkError>("error");
 
-    QTest::newRow("fg, normal") << false << 0 << QNetworkReply::NoError;
-    QTest::newRow("bg, normal") << true << 0 << QNetworkReply::NoError;
-    QTest::newRow("fg, nobg") << false << (int)QNetworkSession::NoBackgroundTrafficPolicy << QNetworkReply::NoError;
-    QTest::newRow("bg, nobg") << true << (int)QNetworkSession::NoBackgroundTrafficPolicy << QNetworkReply::BackgroundRequestNotAllowedError;
+    QUrl httpurl("http://" + QtNetworkSettings::serverName());
+    QUrl httpsurl("https://" + QtNetworkSettings::serverName());
+    QUrl ftpurl("ftp://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt");
+
+    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
+
+    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;
 
 }
 
 void tst_QNetworkReply::backgroundRequest()
 {
 #ifdef QT_BUILD_INTERNAL
+#ifndef QT_NO_BEARERMANAGEMENT
+    QFETCH(QUrl, url);
     QFETCH(bool, background);
     QFETCH(int, policy);
     QFETCH(QNetworkReply::NetworkError, error);
 
-    QNetworkRequest request(QUrl("http://" + QtNetworkSettings::serverName()));
+    QNetworkRequest request(url);
 
     if (background)
         request.setAttribute(QNetworkRequest::BackgroundRequestAttribute, QVariant::fromValue(true));
@@ -6837,6 +6861,11 @@ void tst_QNetworkReply::backgroundRequest()
     //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> session = QNetworkAccessManagerPrivate::getNetworkSession(&manager);
     QVERIFY(session);
     QNetworkSession::UsagePolicies original = session.data()->usagePolicies();
@@ -6851,6 +6880,7 @@ void tst_QNetworkReply::backgroundRequest()
     QVERIFY(reply->isFinished());
     QCOMPARE(reply->error(), error);
 #endif
+#endif
 }
 
 // NOTE: This test must be last testcase in tst_qnetworkreply!