summaryrefslogtreecommitdiffstats
path: root/tests/auto/network
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/network')
-rw-r--r--tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp33
-rw-r--r--tests/auto/network/kernel/qnetworkinterface/qnetworkinterface.pro2
-rw-r--r--tests/auto/network/kernel/qnetworkproxyfactory/tst_qnetworkproxyfactory.cpp97
-rw-r--r--tests/auto/network/network.pro4
-rw-r--r--tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp9
-rw-r--r--tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp6
-rw-r--r--tests/auto/network/ssl/qsslsocket_onDemandCertificates_member/qsslsocket_onDemandCertificates_member.pro2
-rw-r--r--tests/auto/network/ssl/qsslsocket_onDemandCertificates_static/qsslsocket_onDemandCertificates_static.pro2
8 files changed, 106 insertions, 49 deletions
diff --git a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp
index 8685546a5f..438cf866aa 100644
--- a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp
+++ b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp
@@ -2971,9 +2971,6 @@ void tst_QNetworkReply::ioGetFromHttpWithAuthSynchronous()
void tst_QNetworkReply::ioGetFromHttpWithProxyAuth()
{
- qRegisterMetaType<QNetworkProxy>(); // for QSignalSpy
- qRegisterMetaType<QAuthenticator *>();
-
// This test sends three requests
// The first two in parallel
// The third after the first two finished
@@ -3081,9 +3078,6 @@ void tst_QNetworkReply::ioGetFromHttpWithSocksProxy()
// HTTP caching proxies are tested by the above function
// test SOCKSv5 proxies too
- qRegisterMetaType<QNetworkProxy>(); // for QSignalSpy
- qRegisterMetaType<QAuthenticator *>();
-
QFile reference(testDataDir + "/rfc3252.txt");
QVERIFY(reference.open(QIODevice::ReadOnly));
@@ -3141,9 +3135,6 @@ void tst_QNetworkReply::ioGetFromHttpWithSocksProxy()
#ifndef QT_NO_SSL
void tst_QNetworkReply::ioGetFromHttpsWithSslErrors()
{
- qRegisterMetaType<QNetworkReply*>(); // for QSignalSpy
- qRegisterMetaType<QList<QSslError> >();
-
QFile reference(testDataDir + "/rfc3252.txt");
QVERIFY(reference.open(QIODevice::ReadOnly));
@@ -3175,9 +3166,6 @@ void tst_QNetworkReply::ioGetFromHttpsWithIgnoreSslErrors()
// same as above, except that we call ignoreSslErrors and don't connect
// to the sslErrors() signal (which is *still* emitted)
- qRegisterMetaType<QNetworkReply*>(); // for QSignalSpy
- qRegisterMetaType<QList<QSslError> >();
-
QFile reference(testDataDir + "/rfc3252.txt");
QVERIFY(reference.open(QIODevice::ReadOnly));
@@ -3203,9 +3191,6 @@ void tst_QNetworkReply::ioGetFromHttpsWithIgnoreSslErrors()
void tst_QNetworkReply::ioGetFromHttpsWithSslHandshakeError()
{
- qRegisterMetaType<QNetworkReply*>(); // for QSignalSpy
- qRegisterMetaType<QList<QSslError> >();
-
QFile reference(testDataDir + "/rfc3252.txt");
QVERIFY(reference.open(QIODevice::ReadOnly));
@@ -3709,9 +3694,6 @@ void tst_QNetworkReply::ioGetWithManyProxies()
{
// Test proxy factories
- qRegisterMetaType<QNetworkProxy>(); // for QSignalSpy
- qRegisterMetaType<QAuthenticator *>();
-
QFile reference(testDataDir + "/rfc3252.txt");
QVERIFY(reference.open(QIODevice::ReadOnly));
@@ -3874,6 +3856,10 @@ void tst_QNetworkReply::ioPutToFileFromLocalSocket()
QNetworkReplyPtr reply = manager.put(QNetworkRequest(url), passive);
passive->setParent(reply);
+#ifdef Q_OS_WIN
+ if (!data.isEmpty())
+ QEXPECT_FAIL("", "QTBUG-18385", Abort);
+#endif
QVERIFY(waitForFinish(reply) == Success);
QCOMPARE(reply->error(), QNetworkReply::NoError);
@@ -4104,10 +4090,6 @@ void tst_QNetworkReply::ioPostToHttpFromSocket_data()
void tst_QNetworkReply::ioPostToHttpFromSocket()
{
- qRegisterMetaType<QNetworkProxy>(); // for QSignalSpy
- qRegisterMetaType<QAuthenticator *>();
- qRegisterMetaType<QNetworkReply *>();
-
QFETCH(QByteArray, data);
QFETCH(QUrl, url);
QFETCH(QNetworkProxy, proxy);
@@ -4707,7 +4689,6 @@ void tst_QNetworkReply::rateControl()
QNetworkRequest request("debugpipe://localhost:" + QString::number(sender.serverPort()));
QNetworkReplyPtr reply = manager.get(request);
reply->setReadBufferSize(32768);
- qRegisterMetaType<QNetworkReply::NetworkError>("QNetworkReply::NetworkError");
QSignalSpy errorSpy(reply, SIGNAL(error(QNetworkReply::NetworkError)));
RateControlledReader reader(sender, reply, rate, 20);
@@ -5100,7 +5081,6 @@ void tst_QNetworkReply::nestedEventLoops()
// seconds. (see above)
qDebug("Takes 16 seconds to run, please wait");
- qRegisterMetaType<QNetworkReply::NetworkError>();
QUrl url("http://" + QtNetworkSettings::serverName());
QNetworkRequest request(url);
@@ -5321,7 +5301,6 @@ void tst_QNetworkReply::authorizationError()
QCOMPARE(reply->error(), QNetworkReply::NoError);
- qRegisterMetaType<QNetworkReply::NetworkError>("QNetworkReply::NetworkError");
QSignalSpy errorSpy(reply, SIGNAL(error(QNetworkReply::NetworkError)));
QSignalSpy finishedSpy(reply, SIGNAL(finished()));
// now run the request:
@@ -5653,6 +5632,7 @@ void tst_QNetworkReply::getAndThenDeleteObject_data()
void tst_QNetworkReply::getAndThenDeleteObject()
{
+ QSKIP("unstable test - reply may be finished too early");
// yes, this will leak if the testcase fails. I don't care. It must not fail then :P
QNetworkAccessManager *manager = new QNetworkAccessManager();
QNetworkRequest request("http://" + QtNetworkSettings::serverName() + "/qtest/bigfile");
@@ -6050,11 +6030,8 @@ void tst_QNetworkReply::qtbug4121unknownAuthentication()
QNetworkAccessManager manager;
QNetworkReplyPtr reply = manager.get(request);
- qRegisterMetaType<QNetworkReply*>("QNetworkReply*");
- qRegisterMetaType<QAuthenticator*>("QAuthenticator*");
QSignalSpy authSpy(&manager, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*)));
QSignalSpy finishedSpy(&manager, SIGNAL(finished(QNetworkReply*)));
- qRegisterMetaType<QNetworkReply::NetworkError>("QNetworkReply::NetworkError");
QSignalSpy errorSpy(reply, SIGNAL(error(QNetworkReply::NetworkError)));
connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()), Qt::QueuedConnection);
diff --git a/tests/auto/network/kernel/qnetworkinterface/qnetworkinterface.pro b/tests/auto/network/kernel/qnetworkinterface/qnetworkinterface.pro
index 694dec2ed7..ba401579a6 100644
--- a/tests/auto/network/kernel/qnetworkinterface/qnetworkinterface.pro
+++ b/tests/auto/network/kernel/qnetworkinterface/qnetworkinterface.pro
@@ -3,3 +3,5 @@ TARGET = tst_qnetworkinterface
SOURCES += tst_qnetworkinterface.cpp
QT = core network testlib
+
+win32:CONFIG+=insignificant_test # QTBUG-24451 - localAddress()
diff --git a/tests/auto/network/kernel/qnetworkproxyfactory/tst_qnetworkproxyfactory.cpp b/tests/auto/network/kernel/qnetworkproxyfactory/tst_qnetworkproxyfactory.cpp
index 8a1a391b51..9b7d21eff8 100644
--- a/tests/auto/network/kernel/qnetworkproxyfactory/tst_qnetworkproxyfactory.cpp
+++ b/tests/auto/network/kernel/qnetworkproxyfactory/tst_qnetworkproxyfactory.cpp
@@ -81,6 +81,7 @@ public:
private slots:
void systemProxyForQueryCalledFromThread();
+ void systemProxyForQuery_data();
void systemProxyForQuery() const;
#ifndef QT_NO_BEARERMANAGEMENT
void fromConfigurations();
@@ -110,34 +111,88 @@ QString tst_QNetworkProxyFactory::formatProxyName(const QNetworkProxy & proxy) c
return proxyName;
}
+void tst_QNetworkProxyFactory::systemProxyForQuery_data()
+{
+ QTest::addColumn<int>("type");
+ QTest::addColumn<QUrl>("url");
+ QTest::addColumn<QString>("tag");
+ QTest::addColumn<QString>("hostName");
+ QTest::addColumn<int>("port");
+ QTest::addColumn<int>("requiredCapabilities");
+
+ //URLs
+ QTest::newRow("http") << (int)QNetworkProxyQuery::UrlRequest << QUrl("http://qt-project.org") << QString() << QString() << 0 << 0;
+ //windows: "intranet" should be bypassed if "bypass proxy server for local addresses" is ticked
+ QTest::newRow("intranet") << (int)QNetworkProxyQuery::UrlRequest << QUrl("http://qt-test-server") << QString() << QString() << 0 << 0;
+ //windows: "intranet2" should be bypassed if "*.local" is in the exceptions list (advanced settings)
+ QTest::newRow("intranet2") << (int)QNetworkProxyQuery::UrlRequest << QUrl("http://qt-test-server.local") << QString() << QString() << 0 << 0;
+ QTest::newRow("https") << (int)QNetworkProxyQuery::UrlRequest << QUrl("https://qt-project.org") << QString() << QString() << 0 << (int)QNetworkProxy::TunnelingCapability;
+ QTest::newRow("ftp") << (int)QNetworkProxyQuery::UrlRequest << QUrl("ftp://qt-project.org") << QString() << QString() << 0 << 0;
+
+ //TCP
+ QTest::newRow("imap") << (int)QNetworkProxyQuery::TcpSocket << QUrl() << QString() << QString("qt-project.org") << 0 << (int)QNetworkProxy::TunnelingCapability;
+ QTest::newRow("autobind-server") << (int)QNetworkProxyQuery::TcpServer << QUrl() << QString() << QString() << 0 << (int)QNetworkProxy::ListeningCapability;
+ QTest::newRow("web-server") << (int)QNetworkProxyQuery::TcpServer << QUrl() << QString() << QString() << 80 << (int)QNetworkProxy::ListeningCapability;
+
+ //UDP
+ QTest::newRow("udp") << (int)QNetworkProxyQuery::UdpSocket << QUrl() << QString() << QString() << 0 << (int)QNetworkProxy::UdpTunnelingCapability;
+
+ //Protocol tags
+ QTest::newRow("http-tag") << (int)QNetworkProxyQuery::TcpSocket << QUrl() << QString("http") << QString("qt-project.org") << 80 << (int)QNetworkProxy::TunnelingCapability;
+ QTest::newRow("ftp-tag") << (int)QNetworkProxyQuery::TcpSocket << QUrl() << QString("ftp") << QString("qt-project.org") << 21 << (int)QNetworkProxy::TunnelingCapability;
+ QTest::newRow("https-tag") << (int)QNetworkProxyQuery::TcpSocket << QUrl() << QString("https") << QString("qt-project.org") << 443 << (int)QNetworkProxy::TunnelingCapability;
+#ifdef Q_OS_WIN
+ //in Qt 4.8, "socks" would get the socks proxy, but we dont want to enforce that for all platforms
+ QTest::newRow("socks-tag") << (int)QNetworkProxyQuery::TcpSocket << QUrl() << QString("socks") << QString("qt-project.org") << 21 << (int)(QNetworkProxy::TunnelingCapability | QNetworkProxy::ListeningCapability);
+#endif
+ //windows: ssh is not a tag provided by the os, but any tunneling proxy is acceptable
+ QTest::newRow("ssh-tag") << (int)QNetworkProxyQuery::TcpSocket << QUrl() << QString("ssh") << QString("qt-project.org") << 22 << (int)QNetworkProxy::TunnelingCapability;
+
+ //Server protocol tags (ftp/http proxies are no good, we need socks or nothing)
+ QTest::newRow("http-server-tag") << (int)QNetworkProxyQuery::TcpServer << QUrl() << QString("http") << QString() << 80 << (int)QNetworkProxy::ListeningCapability;
+ QTest::newRow("ftp-server-tag") << (int)QNetworkProxyQuery::TcpServer << QUrl() << QString("ftp") << QString() << 21 << (int)QNetworkProxy::ListeningCapability;
+ QTest::newRow("imap-server-tag") << (int)QNetworkProxyQuery::TcpServer << QUrl() << QString("imap") << QString() << 143 << (int)QNetworkProxy::ListeningCapability;
+
+ //UDP protocol tag
+ QTest::newRow("sip-udp-tag") << (int)QNetworkProxyQuery::UdpSocket << QUrl() << QString("sip") << QString("qt-project.org") << 5061 << (int)QNetworkProxy::UdpTunnelingCapability;
+}
+
void tst_QNetworkProxyFactory::systemProxyForQuery() const
{
- QNetworkProxyQuery query(QUrl(QString("http://www.abc.com")), QNetworkProxyQuery::UrlRequest);
- QList<QNetworkProxy> systemProxyList = QNetworkProxyFactory::systemProxyForQuery(query);
- bool pass = true;
- QNetworkProxy proxy;
+ QFETCH(int, type);
+ QFETCH(QUrl, url);
+ QFETCH(QString, tag);
+ QFETCH(QString, hostName);
+ QFETCH(int, port);
+ QFETCH(int, requiredCapabilities);
- QList<QNetworkProxy> nativeProxyList;
- nativeProxyList << QNetworkProxy(QNetworkProxy::HttpProxy, QString("test.proxy.com"), 8080) << QNetworkProxy::NoProxy;
+ QNetworkProxyQuery query;
- foreach (proxy, systemProxyList) {
- if (!nativeProxyList.contains(proxy)) {
- qWarning() << "System proxy not found in native proxy list: " <<
- formatProxyName(proxy);
- pass = false;
- }
+ switch (type) {
+ case QNetworkProxyQuery::UrlRequest:
+ query = QNetworkProxyQuery(url);
+ break;
+ case QNetworkProxyQuery::TcpSocket:
+ case QNetworkProxyQuery::UdpSocket:
+ query = QNetworkProxyQuery(hostName, port, tag, QNetworkProxyQuery::QueryType(type));
+ break;
+ case QNetworkProxyQuery::TcpServer:
+ query = QNetworkProxyQuery(quint16(port), tag);
+ break;
}
- foreach (proxy, nativeProxyList) {
- if (!systemProxyList.contains(proxy)) {
- qWarning() << "Native proxy not found in system proxy list: " <<
- formatProxyName(proxy);
- pass = false;
- }
- }
+ QElapsedTimer sw;
+ sw.start();
+ QList<QNetworkProxy> systemProxyList = QNetworkProxyFactory::systemProxyForQuery(query);
+ qDebug() << sw.elapsed() << "ms";
+ QVERIFY(!systemProxyList.isEmpty());
+
+ // for manual comparison with system
+ qDebug() << systemProxyList;
- if (!pass)
- QFAIL("One or more system proxy lookup failures occurred.");
+ foreach (const QNetworkProxy &proxy, systemProxyList) {
+ QVERIFY((requiredCapabilities == 0) || (proxy.capabilities() & requiredCapabilities));
+ }
}
#ifndef QT_NO_BEARERMANAGEMENT
diff --git a/tests/auto/network/network.pro b/tests/auto/network/network.pro
index 3eafd7df70..2048d14dc8 100644
--- a/tests/auto/network/network.pro
+++ b/tests/auto/network/network.pro
@@ -6,3 +6,7 @@ SUBDIRS=\
ssl \
socket \
+win32 {
+ socket.CONFIG += no_check_target # QTBUG-24451 - all socket tests require waitForX
+ bearer.CONFIG += no_check_target # QTBUG-24503 - these tests fail if machine has a WLAN adaptor
+}
diff --git a/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp b/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp
index 5395c7c28b..3c7c3a3da0 100644
--- a/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp
+++ b/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp
@@ -1475,6 +1475,9 @@ void tst_QTcpSocket::waitForBytesWritten()
//----------------------------------------------------------------------------------
void tst_QTcpSocket::waitForBytesWrittenMinusOne()
{
+#ifdef Q_OS_WIN
+ QSKIP("QTBUG-24451 - indefinite wait may hang");
+#endif
QTcpSocket *socket = newSocket();
socket->connectToHost(QtNetworkSettings::serverName(), 80);
QVERIFY(socket->waitForConnected(10000));
@@ -1500,6 +1503,9 @@ void tst_QTcpSocket::waitForReadyRead()
//----------------------------------------------------------------------------------
void tst_QTcpSocket::waitForReadyReadMinusOne()
{
+#ifdef Q_OS_WIN
+ QSKIP("QTBUG-24451 - indefinite wait may hang");
+#endif
QTcpSocket *socket = newSocket();
socket->connectToHost(QtNetworkSettings::serverName(), 80);
socket->write("GET / HTTP/1.0\r\n\r\n");
@@ -2102,6 +2108,9 @@ void tst_QTcpSocket::abortiveClose_abortSlot()
//----------------------------------------------------------------------------------
void tst_QTcpSocket::localAddressEmptyOnBSD()
{
+#ifdef Q_OS_WIN
+ QSKIP("QTBUG-24451 - indefinite wait may hang");
+#endif
QFETCH_GLOBAL(bool, setProxy);
if (setProxy)
return; //proxy not useful for localhost test case
diff --git a/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp b/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp
index cdb397ccd4..2f9ed0d089 100644
--- a/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp
+++ b/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp
@@ -1157,6 +1157,9 @@ void tst_QSslSocket::waitForEncrypted()
void tst_QSslSocket::waitForEncryptedMinusOne()
{
+#ifdef Q_OS_WIN
+ QSKIP("QTBUG-24451 - indefinite wait may hang");
+#endif
if (!QSslSocket::supportsSsl())
return;
@@ -1663,6 +1666,9 @@ protected:
void tst_QSslSocket::waitForMinusOne()
{
+#ifdef Q_OS_WIN
+ QSKIP("QTBUG-24451 - indefinite wait may hang");
+#endif
QFETCH_GLOBAL(bool, setProxy);
if (setProxy)
return;
diff --git a/tests/auto/network/ssl/qsslsocket_onDemandCertificates_member/qsslsocket_onDemandCertificates_member.pro b/tests/auto/network/ssl/qsslsocket_onDemandCertificates_member/qsslsocket_onDemandCertificates_member.pro
index 33b55b4638..5aeb0e48ac 100644
--- a/tests/auto/network/ssl/qsslsocket_onDemandCertificates_member/qsslsocket_onDemandCertificates_member.pro
+++ b/tests/auto/network/ssl/qsslsocket_onDemandCertificates_member/qsslsocket_onDemandCertificates_member.pro
@@ -22,3 +22,5 @@ wince* {
}
requires(contains(QT_CONFIG,private_tests))
+
+win32:CONFIG+=insignificant_test # QTBUG-24451 - all
diff --git a/tests/auto/network/ssl/qsslsocket_onDemandCertificates_static/qsslsocket_onDemandCertificates_static.pro b/tests/auto/network/ssl/qsslsocket_onDemandCertificates_static/qsslsocket_onDemandCertificates_static.pro
index 8a500a3d99..3955ea106c 100644
--- a/tests/auto/network/ssl/qsslsocket_onDemandCertificates_static/qsslsocket_onDemandCertificates_static.pro
+++ b/tests/auto/network/ssl/qsslsocket_onDemandCertificates_static/qsslsocket_onDemandCertificates_static.pro
@@ -22,3 +22,5 @@ wince* {
}
requires(contains(QT_CONFIG,private_tests))
+
+win32:CONFIG+=insignificant_test # QTBUG-24451 - all