diff options
Diffstat (limited to 'tests/auto/network/kernel/qnetworkproxyfactory/tst_qnetworkproxyfactory.cpp')
-rw-r--r-- | tests/auto/network/kernel/qnetworkproxyfactory/tst_qnetworkproxyfactory.cpp | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/tests/auto/network/kernel/qnetworkproxyfactory/tst_qnetworkproxyfactory.cpp b/tests/auto/network/kernel/qnetworkproxyfactory/tst_qnetworkproxyfactory.cpp index 265c0fecbb..98fd60190d 100644 --- a/tests/auto/network/kernel/qnetworkproxyfactory/tst_qnetworkproxyfactory.cpp +++ b/tests/auto/network/kernel/qnetworkproxyfactory/tst_qnetworkproxyfactory.cpp @@ -80,6 +80,7 @@ private slots: void systemProxyForQueryCalledFromThread(); void systemProxyForQuery_data(); void systemProxyForQuery() const; + void systemProxyForQuery_local(); #ifndef QT_NO_BEARERMANAGEMENT void fromConfigurations(); void inNetworkAccessManager_data(); @@ -196,6 +197,66 @@ void tst_QNetworkProxyFactory::systemProxyForQuery() const } } +void tst_QNetworkProxyFactory::systemProxyForQuery_local() +{ + QList<QNetworkProxy> list; + const QString proxyHost("myproxy.test.com"); + + // set an arbitrary proxy + QNetworkProxy::setApplicationProxy(QNetworkProxy(QNetworkProxy::HttpProxy, proxyHost, 80)); + + // localhost + list = QNetworkProxyFactory::proxyForQuery(QNetworkProxyQuery(QUrl("http://localhost/"))); + QVERIFY(list.isEmpty() || (list[0].type() == QNetworkProxy::NoProxy)); + list = QNetworkProxyFactory::proxyForQuery(QNetworkProxyQuery(QString("localhost"), 80)); + QVERIFY(list.isEmpty() || (list[0].type() == QNetworkProxy::NoProxy)); + + // 127.0.0.1 + list = QNetworkProxyFactory::proxyForQuery(QNetworkProxyQuery(QUrl("http://127.0.0.1/"))); + QVERIFY(list.isEmpty() || (list[0].type() == QNetworkProxy::NoProxy)); + list = QNetworkProxyFactory::proxyForQuery(QNetworkProxyQuery(QString("127.0.0.1"), 80)); + QVERIFY(list.isEmpty() || (list[0].type() == QNetworkProxy::NoProxy)); + + // [::1] + list = QNetworkProxyFactory::proxyForQuery(QNetworkProxyQuery(QUrl("http://[::1]/"))); + QVERIFY(list.isEmpty() || (list[0].type() == QNetworkProxy::NoProxy)); + list = QNetworkProxyFactory::proxyForQuery(QNetworkProxyQuery(QString("[::1]"), 80)); + QVERIFY(list.isEmpty() || (list[0].type() == QNetworkProxy::NoProxy)); + + // an arbitrary host + list = QNetworkProxyFactory::proxyForQuery(QNetworkProxyQuery(QUrl("http://another.host.com/"))); + QVERIFY((!list.isEmpty()) && (list[0].hostName() == proxyHost)); + list = QNetworkProxyFactory::proxyForQuery(QNetworkProxyQuery(QString("another.host.com"), 80)); + QVERIFY((!list.isEmpty()) && (list[0].hostName() == proxyHost)); + + // disable proxy + QNetworkProxy::setApplicationProxy(QNetworkProxy(QNetworkProxy::NoProxy)); + + // localhost + list = QNetworkProxyFactory::proxyForQuery(QNetworkProxyQuery(QUrl("http://localhost/"))); + QVERIFY(list.isEmpty() || (list[0].type() == QNetworkProxy::NoProxy)); + list = QNetworkProxyFactory::proxyForQuery(QNetworkProxyQuery(QString("localhost"), 80)); + QVERIFY(list.isEmpty() || (list[0].type() == QNetworkProxy::NoProxy)); + + // 127.0.0.1 + list = QNetworkProxyFactory::proxyForQuery(QNetworkProxyQuery(QUrl("http://127.0.0.1/"))); + QVERIFY(list.isEmpty() || (list[0].type() == QNetworkProxy::NoProxy)); + list = QNetworkProxyFactory::proxyForQuery(QNetworkProxyQuery(QString("127.0.0.1"), 80)); + QVERIFY(list.isEmpty() || (list[0].type() == QNetworkProxy::NoProxy)); + + // [::1] + list = QNetworkProxyFactory::proxyForQuery(QNetworkProxyQuery(QUrl("http://[::1]/"))); + QVERIFY(list.isEmpty() || (list[0].type() == QNetworkProxy::NoProxy)); + list = QNetworkProxyFactory::proxyForQuery(QNetworkProxyQuery(QString("[::1]"), 80)); + QVERIFY(list.isEmpty() || (list[0].type() == QNetworkProxy::NoProxy)); + + // an arbitrary host + list = QNetworkProxyFactory::proxyForQuery(QNetworkProxyQuery(QUrl("http://another.host.com/"))); + QVERIFY(list.isEmpty() || (list[0].type() == QNetworkProxy::NoProxy)); + list = QNetworkProxyFactory::proxyForQuery(QNetworkProxyQuery(QString("another.host.com"), 80)); + QVERIFY(list.isEmpty() || (list[0].type() == QNetworkProxy::NoProxy)); +} + #ifndef QT_NO_BEARERMANAGEMENT //Purpose of this test is just to check systemProxyForQuery doesn't hang or crash |