From 3c5eb8766e73c855782552f7c6472801e8ae820c Mon Sep 17 00:00:00 2001
From: Jyrki Jaakkola <jyrki.jaakkola@ixonos.com>
Date: Wed, 12 Jan 2011 18:23:10 +0100
Subject: QNetworkProxyFactory::systemProxyForQuery() for Symbian

---
 src/network/kernel/kernel.pri                      |   2 +
 src/network/kernel/qnetworkproxy_symbian.cpp       | 267 +++++++++++++++++++++
 tests/auto/network.pro                             |   1 +
 tests/auto/qnetworkproxyfactory/.gitignore         |   1 +
 .../qnetworkproxyfactory/qnetworkproxyfactory.pro  |  11 +
 .../tst_qnetworkproxyfactory_symbian.cpp           | 101 ++++++++
 6 files changed, 383 insertions(+)
 create mode 100644 src/network/kernel/qnetworkproxy_symbian.cpp
 create mode 100644 tests/auto/qnetworkproxyfactory/.gitignore
 create mode 100644 tests/auto/qnetworkproxyfactory/qnetworkproxyfactory.pro
 create mode 100644 tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory_symbian.cpp

diff --git a/src/network/kernel/kernel.pri b/src/network/kernel/kernel.pri
index 6145c43..66e87c9 100644
--- a/src/network/kernel/kernel.pri
+++ b/src/network/kernel/kernel.pri
@@ -27,5 +27,7 @@ win32:SOURCES += kernel/qhostinfo_win.cpp kernel/qnetworkinterface_win.cpp
 mac:LIBS_PRIVATE += -framework SystemConfiguration -framework CoreFoundation
 mac:SOURCES += kernel/qnetworkproxy_mac.cpp
 else:win32:SOURCES += kernel/qnetworkproxy_win.cpp
+else:symbian:SOURCES += kernel/qnetworkproxy_symbian.cpp
 else:SOURCES += kernel/qnetworkproxy_generic.cpp
 
+symbian: LIBS += -lcommsdat
diff --git a/src/network/kernel/qnetworkproxy_symbian.cpp b/src/network/kernel/qnetworkproxy_symbian.cpp
new file mode 100644
index 0000000..c1f9c1d
--- /dev/null
+++ b/src/network/kernel/qnetworkproxy_symbian.cpp
@@ -0,0 +1,267 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtNetwork module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial Usage
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Nokia.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights.  These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/**
+ * Some notes about the code:
+ *
+ * ** It is assumed that the system proxies are for url based requests
+ *  ie. HTTP/HTTPS based.
+ * ** It is assumed that proxies don't use authentication.
+ * ** It is assumed that there is no exceptions to proxy use (Symbian side
+ *  does have the field for it but it is not user modifiable by default).
+ * ** There is no checking for protocol name.
+ */
+
+#include <QtNetwork/qnetworkproxy.h>
+
+#ifndef QT_NO_NETWORKPROXY
+
+#include <metadatabase.h> // CMDBSession
+#include <commsdattypeinfov1_1.h> // CCDIAPRecord, CCDProxiesRecord
+#include <commsdattypesv1_1.h> // KCDTIdIAPRecord, KCDTIdProxiesRecord
+#include <QtNetwork/QNetworkConfigurationManager>
+#include <QFlags>
+
+using namespace CommsDat;
+
+QT_BEGIN_NAMESPACE
+
+class SymbianIapId
+{
+public:
+    enum State{
+        NotValid,
+        Valid
+    };
+    Q_DECLARE_FLAGS(States, State)
+    SymbianIapId() {}
+    ~SymbianIapId() {}
+    void setIapId(TUint32 iapId) { iapState |= Valid; id = iapId; }
+    bool isValid() { return iapState == Valid; }
+    TUint32 iapId() { return id; }
+private:
+    QFlags<States> iapState;
+    TUint32 id;
+};
+
+Q_DECLARE_OPERATORS_FOR_FLAGS(SymbianIapId::States)
+
+class SymbianProxyQuery
+{
+public:
+    static QNetworkConfiguration findCurrentConfiguration(QNetworkConfigurationManager& configurationManager);
+    static SymbianIapId getIapId(QNetworkConfigurationManager& configurationManager);
+    static CCDIAPRecord *getIapRecordLC(TUint32 aIAPId, CMDBSession &aDb);
+    static CMDBRecordSet<CCDProxiesRecord> *prepareQueryLC(TUint32 serviceId, TDesC& serviceType);
+    static QList<QNetworkProxy> proxyQueryL(TUint32 aIAPId, const QNetworkProxyQuery &query);
+};
+
+QNetworkConfiguration SymbianProxyQuery::findCurrentConfiguration(QNetworkConfigurationManager& configurationManager)
+{
+    QList<QNetworkConfiguration> activeConfigurations = configurationManager.allConfigurations(
+        QNetworkConfiguration::Active);
+    QNetworkConfiguration currentConfig;
+    if (activeConfigurations.count() > 0) {
+        currentConfig = activeConfigurations.at(0);
+    } else {
+        // No active configurations, try default one
+        QNetworkConfiguration defaultConfiguration = configurationManager.defaultConfiguration();
+        if (defaultConfiguration.isValid()) {
+            switch (defaultConfiguration.type()) {
+            case QNetworkConfiguration::InternetAccessPoint:
+                currentConfig = defaultConfiguration;
+                break;
+            case QNetworkConfiguration::ServiceNetwork:
+            {
+                // Note: This code assumes that the only unambigious way to
+                // find current proxy config is if there is only one access point
+                // or if the found access point is immediately usable.
+                QList<QNetworkConfiguration> childConfigurations = defaultConfiguration.children();
+                if (childConfigurations.count() == 1) {
+                    currentConfig = childConfigurations.at(0);
+                } else {
+                    for (int index = 0; index < childConfigurations.count(); index++) {
+                        QNetworkConfiguration childConfig = childConfigurations.at(index);
+                        if (childConfig.isValid() && childConfig.state() == QNetworkConfiguration::Discovered) {
+                            currentConfig = childConfig;
+                            break;
+                        }
+                    }
+                }
+            }
+                break;
+            case QNetworkConfiguration::UserChoice:
+                // User choice is not a valid configuration for proxy discovery
+                break;
+            }
+        }
+    }
+    return currentConfig;
+}
+
+SymbianIapId SymbianProxyQuery::getIapId(QNetworkConfigurationManager& configurationManager)
+{
+    SymbianIapId iapId;
+
+    QNetworkConfiguration currentConfig = findCurrentConfiguration(configurationManager);
+    if (currentConfig.isValid()) {
+        // Note: the following code assumes that the identifier is in format
+        // I_xxxx where xxxx is the identifier of IAP. This is meant as a
+        // temporary solution until there is a support for returning
+        // implementation specific identifier.
+        const int generalPartLength = 2;
+        const int identifierNumberLength = currentConfig.identifier().length() - generalPartLength;
+        QString idString(currentConfig.identifier().right(identifierNumberLength));
+        bool success;
+        uint id = idString.toUInt(&success);
+        if (success)
+            iapId.setIapId(id);
+        else
+            qWarning() << "Failed to convert identifier to access point identifier: "
+                << currentConfig.identifier();
+    }
+
+    return iapId;
+}
+
+CCDIAPRecord *SymbianProxyQuery::getIapRecordLC(TUint32 aIAPId, CMDBSession &aDb)
+{
+    CCDIAPRecord *iap = static_cast<CCDIAPRecord*> (CCDRecordBase::RecordFactoryL(KCDTIdIAPRecord));
+    CleanupStack::PushL(iap);
+    iap->SetRecordId(aIAPId);
+    iap->LoadL(aDb);
+    return iap;
+}
+
+CMDBRecordSet<CCDProxiesRecord> *SymbianProxyQuery::prepareQueryLC(TUint32 serviceId, TDesC& serviceType)
+{
+    // Create a recordset of type CCDProxiesRecord
+    // for priming search.
+    // This will ultimately contain record(s)
+    // matching the priming record attributes
+    CMDBRecordSet<CCDProxiesRecord> *proxyRecords = new (ELeave) CMDBRecordSet<CCDProxiesRecord> (
+        KCDTIdProxiesRecord);
+    CleanupStack::PushL(proxyRecords);
+
+    CCDProxiesRecord *primingProxyRecord =
+        static_cast<CCDProxiesRecord *> (CCDRecordBase::RecordFactoryL(KCDTIdProxiesRecord));
+    CleanupStack::PushL(primingProxyRecord);
+
+    primingProxyRecord->iServiceType.SetMaxLengthL(serviceType.Length());
+    primingProxyRecord->iServiceType = serviceType;
+    primingProxyRecord->iService = serviceId;
+    primingProxyRecord->iUseProxyServer = ETrue;
+
+    proxyRecords->iRecords.AppendL(primingProxyRecord);
+    // Ownership of primingProxyRecord is transferred to
+    // proxyRecords, just remove it from the CleanupStack
+    CleanupStack::Pop(primingProxyRecord);
+    return proxyRecords;
+}
+
+QList<QNetworkProxy> SymbianProxyQuery::proxyQueryL(TUint32 aIAPId, const QNetworkProxyQuery &query)
+{
+    QList<QNetworkProxy> foundProxies;
+    if (query.queryType() != QNetworkProxyQuery::UrlRequest) {
+        return foundProxies;
+    }
+
+    CMDBSession *iDb = CMDBSession::NewLC(KCDVersion1_1);
+    CCDIAPRecord *iap = getIapRecordLC(aIAPId, *iDb);
+
+    // Read service table id and service type
+    // from the IAP record found
+    TUint32 serviceId = iap->iService;
+    RBuf serviceType;
+    serviceType.CreateL(iap->iServiceType);
+    CleanupStack::PopAndDestroy(iap);
+    CleanupClosePushL(serviceType);
+
+    CMDBRecordSet<CCDProxiesRecord> *proxyRecords = prepareQueryLC(serviceId, serviceType);
+
+    // Now to find a proxy table matching our criteria
+    if (proxyRecords->FindL(*iDb)) {
+        TInt count = proxyRecords->iRecords.Count();
+        for(TInt index = 0; index < count; index++) {
+            CCDProxiesRecord *proxyRecord = static_cast<CCDProxiesRecord *> (proxyRecords->iRecords[index]);
+            RBuf serverName;
+            serverName.CreateL(proxyRecord->iServerName);
+            CleanupClosePushL(serverName);
+            if (serverName.Length() == 0)
+                User::Leave(KErrNotFound);
+            QString serverNameQt((const QChar*)serverName.Ptr(), serverName.Length());
+            CleanupStack::Pop(); // serverName
+            TUint32 port = proxyRecord->iPortNumber;
+
+            QNetworkProxy proxy(QNetworkProxy::HttpProxy, serverNameQt, port);
+            foundProxies.append(proxy);
+        }
+    }
+
+    CleanupStack::PopAndDestroy(proxyRecords);
+    CleanupStack::Pop(); // serviceType
+    CleanupStack::PopAndDestroy(iDb);
+
+    return foundProxies;
+}
+
+QList<QNetworkProxy> QNetworkProxyFactory::systemProxyForQuery(const QNetworkProxyQuery &query)
+{
+    QList<QNetworkProxy> proxies;
+    SymbianIapId iapId;
+    TInt error;
+    QNetworkConfigurationManager manager;
+    iapId = SymbianProxyQuery::getIapId(manager);
+    if (iapId.isValid()) {
+        TRAP(error, proxies = SymbianProxyQuery::proxyQueryL(iapId.iapId(), query))
+        if (error != KErrNone) {
+            qWarning() << "Error while retrieving proxies: '" << error << '"';
+            proxies.clear();
+        }
+    }
+    proxies << QNetworkProxy::NoProxy;
+
+    return proxies;
+}
+
+QT_END_NAMESPACE
+
+#endif
diff --git a/tests/auto/network.pro b/tests/auto/network.pro
index 31c754c..2e3b5cd 100644
--- a/tests/auto/network.pro
+++ b/tests/auto/network.pro
@@ -25,6 +25,7 @@ SUBDIRS=\
     qnetworkcookiejar \
     qnetworkinterface \
     qnetworkproxy \
+    qnetworkproxyfactory \
     qnetworkrequest \
     qnetworksession \
     qobjectperformance \
diff --git a/tests/auto/qnetworkproxyfactory/.gitignore b/tests/auto/qnetworkproxyfactory/.gitignore
new file mode 100644
index 0000000..9be26bb
--- /dev/null
+++ b/tests/auto/qnetworkproxyfactory/.gitignore
@@ -0,0 +1 @@
+tst_qnetworkproxyfactory_symbian
diff --git a/tests/auto/qnetworkproxyfactory/qnetworkproxyfactory.pro b/tests/auto/qnetworkproxyfactory/qnetworkproxyfactory.pro
new file mode 100644
index 0000000..81460a1
--- /dev/null
+++ b/tests/auto/qnetworkproxyfactory/qnetworkproxyfactory.pro
@@ -0,0 +1,11 @@
+############################################################
+# Project file for autotest for file qnetworkproxy.h (proxy factory part)
+############################################################
+
+load(qttest_p4)
+QT = core network
+
+SOURCES += tst_qnetworkproxyfactory_symbian.cpp
+
+symbian: TARGET.CAPABILITY = NetworkServices
+
diff --git a/tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory_symbian.cpp b/tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory_symbian.cpp
new file mode 100644
index 0000000..6a8ea79
--- /dev/null
+++ b/tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory_symbian.cpp
@@ -0,0 +1,101 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights.  These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtTest/QTest>
+
+#include <qcoreapplication.h>
+#include <qdebug.h>
+#include <qnetworkproxy.h>
+
+class tst_QNetworkProxyFactory_symbian : public QObject {
+    Q_OBJECT
+private slots:
+    void systemProxyForQuery() const;
+
+private:
+    QString formatProxyName(const QNetworkProxy & proxy) const;
+};
+
+QString tst_QNetworkProxyFactory_symbian::formatProxyName(const QNetworkProxy & proxy) const
+{
+    QString proxyName;
+    if (!proxy.user().isNull())
+        proxyName.append("%1:%2@").arg(proxy.user(), proxy.password());
+    proxyName.append("%1:%2").arg(proxy.hostName(), proxy.port());
+    proxyName.append(" (type=%1, capabilities=%2)").arg(proxy.type(), proxy.capabilities());
+
+    return proxyName;
+}
+
+void tst_QNetworkProxyFactory_symbian::systemProxyForQuery() const
+{
+    QNetworkProxyFactory proxyFactory;
+    QNetworkProxyQuery query(QUrl(QString("http://www.abc.com")), QNetworkProxyQuery::UrlRequest);
+    QList<QNetworkProxy> systemProxyList = proxyFactory.systemProxyForQuery(query);
+    bool pass = true;
+    QNetworkProxy proxy;
+
+    QList<QNetworkProxy> nativeProxyList;
+    nativeProxyList << QNetworkProxy(QNetworkProxy::HttpProxy, QString("http://test.proxy.com"), 8080) << QNetworkProxy::NoProxy;
+
+    foreach (proxy, systemProxyList) {
+        if (!nativeProxyList.contains(proxy)) {
+            qWarning() << "System proxy not found in native proxy list: " <<
+                  formatProxyName(proxy);
+            pass = false;
+        }
+    }
+
+    foreach (proxy, nativeProxyList) {
+        if (!systemProxyList.contains(proxy)) {
+            qWarning() << "Native proxy not found in system proxy list: " <<
+                  formatProxyName(proxy);
+            pass = false;
+        }
+    }
+
+    if (!pass)
+        QFAIL("One or more system proxy lookup failures occured.");
+}
+
+QTEST_MAIN(tst_QNetworkProxyFactory_symbian)
+#include "tst_qnetworkproxyfactory_symbian.moc"
-- 
cgit v0.12


From 4d0cd05e98c3e83a4d1871c139cd8b4a2a86e988 Mon Sep 17 00:00:00 2001
From: Jeremy Katz <jeremy.katz@nokia.com>
Date: Thu, 13 Jan 2011 13:43:56 +0100
Subject: Fix system proxy test: QNetworkProxyFactory::systemProxyForQuery() is
 static

The test failed to build because QNetworkProxyFactory can't be instantiated
(pure virtual member queryProxy()), but doing so isn't necessary. The test
has also been removed from the network tests because it relies on a static
configuration, but can not guarantee that the configuration exists.
---
 tests/auto/network.pro                                               | 1 -
 tests/auto/qnetworkproxyfactory/qnetworkproxyfactory.pro             | 2 +-
 tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory_symbian.cpp | 3 +--
 3 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/tests/auto/network.pro b/tests/auto/network.pro
index 2e3b5cd..31c754c 100644
--- a/tests/auto/network.pro
+++ b/tests/auto/network.pro
@@ -25,7 +25,6 @@ SUBDIRS=\
     qnetworkcookiejar \
     qnetworkinterface \
     qnetworkproxy \
-    qnetworkproxyfactory \
     qnetworkrequest \
     qnetworksession \
     qobjectperformance \
diff --git a/tests/auto/qnetworkproxyfactory/qnetworkproxyfactory.pro b/tests/auto/qnetworkproxyfactory/qnetworkproxyfactory.pro
index 81460a1..369b5fa 100644
--- a/tests/auto/qnetworkproxyfactory/qnetworkproxyfactory.pro
+++ b/tests/auto/qnetworkproxyfactory/qnetworkproxyfactory.pro
@@ -5,7 +5,7 @@
 load(qttest_p4)
 QT = core network
 
-SOURCES += tst_qnetworkproxyfactory_symbian.cpp
+symbian: SOURCES += tst_qnetworkproxyfactory_symbian.cpp
 
 symbian: TARGET.CAPABILITY = NetworkServices
 
diff --git a/tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory_symbian.cpp b/tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory_symbian.cpp
index 6a8ea79..31521c3 100644
--- a/tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory_symbian.cpp
+++ b/tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory_symbian.cpp
@@ -68,9 +68,8 @@ QString tst_QNetworkProxyFactory_symbian::formatProxyName(const QNetworkProxy &
 
 void tst_QNetworkProxyFactory_symbian::systemProxyForQuery() const
 {
-    QNetworkProxyFactory proxyFactory;
     QNetworkProxyQuery query(QUrl(QString("http://www.abc.com")), QNetworkProxyQuery::UrlRequest);
-    QList<QNetworkProxy> systemProxyList = proxyFactory.systemProxyForQuery(query);
+    QList<QNetworkProxy> systemProxyList = QNetworkProxyFactory::systemProxyForQuery(query);
     bool pass = true;
     QNetworkProxy proxy;
 
-- 
cgit v0.12


From deef2cb5e01b871008b08b81691ad4a46deca328 Mon Sep 17 00:00:00 2001
From: Jeremy Katz <jeremy.katz@nokia.com>
Date: Fri, 14 Jan 2011 14:23:56 +0100
Subject: various fixes to deal with CI gate failures

---
 src/network/kernel/qnetworkproxy_symbian.cpp       |  30 +++----
 tests/auto/network.pro                             |   1 +
 .../qnetworkproxyfactory/qnetworkproxyfactory.pro  |   2 +-
 .../tst_qnetworkproxyfactory.cpp                   | 100 +++++++++++++++++++++
 4 files changed, 117 insertions(+), 16 deletions(-)
 create mode 100644 tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory.cpp

diff --git a/src/network/kernel/qnetworkproxy_symbian.cpp b/src/network/kernel/qnetworkproxy_symbian.cpp
index c1f9c1d..79dfb27 100644
--- a/src/network/kernel/qnetworkproxy_symbian.cpp
+++ b/src/network/kernel/qnetworkproxy_symbian.cpp
@@ -1,17 +1,17 @@
 /****************************************************************************
 **
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
 ** All rights reserved.
 ** Contact: Nokia Corporation (qt-info@nokia.com)
 **
-** This file is part of the QtNetwork module of the Qt Toolkit.
+** This file is part of the FOO module of the Qt Toolkit.
 **
 ** $QT_BEGIN_LICENSE:LGPL$
-** Commercial Usage
-** Licensees holding valid Qt Commercial licenses may use this file in
-** accordance with the Qt Commercial License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Nokia.
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
 **
 ** GNU Lesser General Public License Usage
 ** Alternatively, this file may be used under the terms of the GNU Lesser
@@ -25,16 +25,16 @@
 ** rights.  These rights are described in the Nokia Qt LGPL Exception
 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
 **
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.  Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
 ** If you have questions regarding the use of this file, please contact
 ** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
 ** $QT_END_LICENSE$
 **
 ****************************************************************************/
diff --git a/tests/auto/network.pro b/tests/auto/network.pro
index 31c754c..7d83054 100644
--- a/tests/auto/network.pro
+++ b/tests/auto/network.pro
@@ -35,6 +35,7 @@ SUBDIRS=\
     qsslerror \
     qsslkey \
     qsslsocket \
+#    qnetworkproxyfactory \ # Uses a hardcoded proxy configuration
 
 !contains(QT_CONFIG, private_tests): SUBDIRS -= \
     qauthenticator \
diff --git a/tests/auto/qnetworkproxyfactory/qnetworkproxyfactory.pro b/tests/auto/qnetworkproxyfactory/qnetworkproxyfactory.pro
index 369b5fa..f05c423 100644
--- a/tests/auto/qnetworkproxyfactory/qnetworkproxyfactory.pro
+++ b/tests/auto/qnetworkproxyfactory/qnetworkproxyfactory.pro
@@ -5,7 +5,7 @@
 load(qttest_p4)
 QT = core network
 
-symbian: SOURCES += tst_qnetworkproxyfactory_symbian.cpp
+SOURCES += tst_qnetworkproxyfactory.cpp
 
 symbian: TARGET.CAPABILITY = NetworkServices
 
diff --git a/tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory.cpp b/tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory.cpp
new file mode 100644
index 0000000..e770f30
--- /dev/null
+++ b/tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory.cpp
@@ -0,0 +1,100 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights.  These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtTest/QTest>
+
+#include <qcoreapplication.h>
+#include <qdebug.h>
+#include <qnetworkproxy.h>
+
+class tst_QNetworkProxyFactory : public QObject {
+    Q_OBJECT
+private slots:
+    void systemProxyForQuery() const;
+
+private:
+    QString formatProxyName(const QNetworkProxy & proxy) const;
+};
+
+QString tst_QNetworkProxyFactory::formatProxyName(const QNetworkProxy & proxy) const
+{
+    QString proxyName;
+    if (!proxy.user().isNull())
+        proxyName.append("%1:%2@").arg(proxy.user(), proxy.password());
+    proxyName.append("%1:%2").arg(proxy.hostName(), proxy.port());
+    proxyName.append(" (type=%1, capabilities=%2)").arg(proxy.type(), proxy.capabilities());
+
+    return proxyName;
+}
+
+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;
+
+    QList<QNetworkProxy> nativeProxyList;
+    nativeProxyList << QNetworkProxy(QNetworkProxy::HttpProxy, QString("http://test.proxy.com"), 8080) << QNetworkProxy::NoProxy;
+
+    foreach (proxy, systemProxyList) {
+        if (!nativeProxyList.contains(proxy)) {
+            qWarning() << "System proxy not found in native proxy list: " <<
+                  formatProxyName(proxy);
+            pass = false;
+        }
+    }
+
+    foreach (proxy, nativeProxyList) {
+        if (!systemProxyList.contains(proxy)) {
+            qWarning() << "Native proxy not found in system proxy list: " <<
+                  formatProxyName(proxy);
+            pass = false;
+        }
+    }
+
+    if (!pass)
+        QFAIL("One or more system proxy lookup failures occured.");
+}
+
+QTEST_MAIN(tst_QNetworkProxyFactory)
+#include "tst_qnetworkproxyfactory.moc"
-- 
cgit v0.12


From fa76fc577c138e0a8dd95671d3387cdc10a08c6e Mon Sep 17 00:00:00 2001
From: Jeremy Katz <jeremy.katz@nokia.com>
Date: Fri, 14 Jan 2011 14:46:54 +0100
Subject: file rename

---
 .../tst_qnetworkproxyfactory_symbian.cpp           | 100 ---------------------
 1 file changed, 100 deletions(-)
 delete mode 100644 tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory_symbian.cpp

diff --git a/tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory_symbian.cpp b/tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory_symbian.cpp
deleted file mode 100644
index 31521c3..0000000
--- a/tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory_symbian.cpp
+++ /dev/null
@@ -1,100 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file.  Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights.  These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-#include <QtTest/QTest>
-
-#include <qcoreapplication.h>
-#include <qdebug.h>
-#include <qnetworkproxy.h>
-
-class tst_QNetworkProxyFactory_symbian : public QObject {
-    Q_OBJECT
-private slots:
-    void systemProxyForQuery() const;
-
-private:
-    QString formatProxyName(const QNetworkProxy & proxy) const;
-};
-
-QString tst_QNetworkProxyFactory_symbian::formatProxyName(const QNetworkProxy & proxy) const
-{
-    QString proxyName;
-    if (!proxy.user().isNull())
-        proxyName.append("%1:%2@").arg(proxy.user(), proxy.password());
-    proxyName.append("%1:%2").arg(proxy.hostName(), proxy.port());
-    proxyName.append(" (type=%1, capabilities=%2)").arg(proxy.type(), proxy.capabilities());
-
-    return proxyName;
-}
-
-void tst_QNetworkProxyFactory_symbian::systemProxyForQuery() const
-{
-    QNetworkProxyQuery query(QUrl(QString("http://www.abc.com")), QNetworkProxyQuery::UrlRequest);
-    QList<QNetworkProxy> systemProxyList = QNetworkProxyFactory::systemProxyForQuery(query);
-    bool pass = true;
-    QNetworkProxy proxy;
-
-    QList<QNetworkProxy> nativeProxyList;
-    nativeProxyList << QNetworkProxy(QNetworkProxy::HttpProxy, QString("http://test.proxy.com"), 8080) << QNetworkProxy::NoProxy;
-
-    foreach (proxy, systemProxyList) {
-        if (!nativeProxyList.contains(proxy)) {
-            qWarning() << "System proxy not found in native proxy list: " <<
-                  formatProxyName(proxy);
-            pass = false;
-        }
-    }
-
-    foreach (proxy, nativeProxyList) {
-        if (!systemProxyList.contains(proxy)) {
-            qWarning() << "Native proxy not found in system proxy list: " <<
-                  formatProxyName(proxy);
-            pass = false;
-        }
-    }
-
-    if (!pass)
-        QFAIL("One or more system proxy lookup failures occured.");
-}
-
-QTEST_MAIN(tst_QNetworkProxyFactory_symbian)
-#include "tst_qnetworkproxyfactory_symbian.moc"
-- 
cgit v0.12


From c3d2d583121219836714609b250e4e52e33e393d Mon Sep 17 00:00:00 2001
From: Jeremy Katz <jeremy.katz@nokia.com>
Date: Sun, 16 Jan 2011 19:14:54 +0100
Subject: fixed CI gate flagged spelling error: occured -> occurred

---
 tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory.cpp b/tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory.cpp
index e770f30..10fa7c6 100644
--- a/tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory.cpp
+++ b/tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory.cpp
@@ -93,7 +93,7 @@ void tst_QNetworkProxyFactory::systemProxyForQuery() const
     }
 
     if (!pass)
-        QFAIL("One or more system proxy lookup failures occured.");
+        QFAIL("One or more system proxy lookup failures occurred.");
 }
 
 QTEST_MAIN(tst_QNetworkProxyFactory)
-- 
cgit v0.12