diff options
author | Marc Mutz <marc.mutz@kdab.com> | 2016-08-25 09:06:54 +0200 |
---|---|---|
committer | Marc Mutz <marc.mutz@kdab.com> | 2016-09-29 21:46:19 +0000 |
commit | c35eff2ace00a8d4b8cc31ab5b63ec79b96cc07c (patch) | |
tree | 2326731d86ff01ad89c8915bf207a71d3132a961 | |
parent | 157ee01a8d0be9a4dbac03883c9eaf3609fc1172 (diff) |
Add qtest_network.h
... and move toString() implementations there which were repeated in
network tests, or #ifdef'ed in qtest.h.
Since the functions moved from network tests are now in a public header,
had to massage them a bit to pass headersclean:
- replace Q_FOREACH with C++11 range-for
- avoid implicit conversion from QByteArray -> const char* (done by
re-using toString(QByteArray) instead of calling strdup() manually)
Also made the functions overloads instead of specializations. This
allows to pass the enum by value instead of by const-&.
Like the existing QHostAddress, the newly-added toString() overloads are
marked as \internal. We can decide later whether to turn them into
public API.
Change-Id: I8c23db7a0a6575273567017d42d7b2a957acece8
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
-rw-r--r-- | src/testlib/qtest.h | 28 | ||||
-rw-r--r-- | src/testlib/qtest_network.h | 126 | ||||
-rw-r--r-- | src/testlib/testlib.pro | 1 | ||||
-rw-r--r-- | tests/auto/network/access/qnetworkcookie/tst_qnetworkcookie.cpp | 27 | ||||
-rw-r--r-- | tests/auto/network/access/qnetworkcookiejar/tst_qnetworkcookiejar.cpp | 28 | ||||
-rw-r--r-- | tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp | 39 | ||||
-rw-r--r-- | tests/auto/network/access/qnetworkrequest/tst_qnetworkrequest.cpp | 27 |
7 files changed, 131 insertions, 145 deletions
diff --git a/src/testlib/qtest.h b/src/testlib/qtest.h index 63e79c777f..b9bb10818e 100644 --- a/src/testlib/qtest.h +++ b/src/testlib/qtest.h @@ -58,10 +58,6 @@ #include <QtCore/qsize.h> #include <QtCore/qrect.h> -#ifdef QT_NETWORK_LIB -# include <QtNetwork/qhostaddress.h> -#endif - QT_BEGIN_NAMESPACE @@ -192,26 +188,6 @@ template<> inline char *toString(const QVariant &v) return qstrdup(vstring.constData()); } -#ifdef QT_NETWORK_LIB -/*! - \internal - */ -template<> inline char *toString(const QHostAddress &addr) -{ - switch (addr.protocol()) { - case QAbstractSocket::UnknownNetworkLayerProtocol: - return qstrdup("<unknown address (parse error)>"); - case QAbstractSocket::AnyIPProtocol: - return qstrdup("QHostAddress::Any"); - case QAbstractSocket::IPv4Protocol: - case QAbstractSocket::IPv6Protocol: - break; - } - - return qstrdup(addr.toString().toLatin1().constData()); -} -#endif - inline char *toString(std::nullptr_t) { return toString(QLatin1String("nullptr")); @@ -357,6 +333,10 @@ int main(int argc, char *argv[]) \ # define QTEST_ADD_GPU_BLACKLIST_SUPPORT #endif +#if defined(QT_NETWORK_LIB) +# include <QtTest/qtest_network.h> +#endif + #if defined(QT_WIDGETS_LIB) #include <QtTest/qtest_widgets.h> diff --git a/src/testlib/qtest_network.h b/src/testlib/qtest_network.h new file mode 100644 index 0000000000..6f6b4c1b8e --- /dev/null +++ b/src/testlib/qtest_network.h @@ -0,0 +1,126 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtTest module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QTEST_NETWORK_H +#define QTEST_NETWORK_H + +#include <QtTest/qtest.h> + +// enable NETWORK features +#ifndef QT_NETWORK_LIB +#define QT_NETWORK_LIB +#endif + +#if 0 +#pragma qt_class(QtTestNetwork) +#endif + +#include <QtNetwork/QHostAddress> +#include <QtNetwork/QNetworkCookie> +#include <QtNetwork/QNetworkReply> + +#if 0 +// inform syncqt +#pragma qt_no_master_include +#endif + +QT_BEGIN_NAMESPACE + +namespace QTest +{ +/*! + \internal + */ +inline char *toString(const QHostAddress &addr) +{ + switch (addr.protocol()) { + case QAbstractSocket::UnknownNetworkLayerProtocol: + return qstrdup("<unknown address (parse error)>"); + case QAbstractSocket::AnyIPProtocol: + return qstrdup("QHostAddress::Any"); + case QAbstractSocket::IPv4Protocol: + case QAbstractSocket::IPv6Protocol: + break; + } + + return toString(addr.toString()); +} + +/*! + \internal + */ +inline char *toString(QNetworkReply::NetworkError code) +{ + const QMetaObject *mo = &QNetworkReply::staticMetaObject; + int index = mo->indexOfEnumerator("NetworkError"); + if (index == -1) + return qstrdup(""); + + QMetaEnum qme = mo->enumerator(index); + return qstrdup(qme.valueToKey(code)); +} + +/*! + \internal + */ +inline char *toString(const QNetworkCookie &cookie) +{ + return toString(cookie.toRawForm()); +} + +/*! + \internal + */ +inline char *toString(const QList<QNetworkCookie> &list) +{ + QByteArray result = "QList("; + if (!list.isEmpty()) { + for (const QNetworkCookie &cookie : list) + result += "QNetworkCookie(" + cookie.toRawForm() + "), "; + result.chop(2); // remove trailing ", " + } + result.append(')'); + return toString(result); +} + +} // namespace QTest + +QT_END_NAMESPACE + +#endif diff --git a/src/testlib/testlib.pro b/src/testlib/testlib.pro index 3fe1aeea96..d76dbb8c75 100644 --- a/src/testlib/testlib.pro +++ b/src/testlib/testlib.pro @@ -28,6 +28,7 @@ HEADERS = qbenchmark.h \ qtesteventloop.h \ qtest_global.h \ qtest_gui.h \ + qtest_network.h \ qtest_widgets.h \ qtest.h \ qtestkeyboard.h \ diff --git a/tests/auto/network/access/qnetworkcookie/tst_qnetworkcookie.cpp b/tests/auto/network/access/qnetworkcookie/tst_qnetworkcookie.cpp index 0424fc47ed..96c4917473 100644 --- a/tests/auto/network/access/qnetworkcookie/tst_qnetworkcookie.cpp +++ b/tests/auto/network/access/qnetworkcookie/tst_qnetworkcookie.cpp @@ -46,33 +46,6 @@ private slots: void parseMultipleCookies(); }; -QT_BEGIN_NAMESPACE - -namespace QTest { - template<> - char *toString(const QNetworkCookie &cookie) - { - return qstrdup(cookie.toRawForm()); - } - - template<> - char *toString(const QList<QNetworkCookie> &list) - { - QByteArray result = "QList("; - bool first = true; - foreach (QNetworkCookie cookie, list) { - if (!first) - result += ", "; - first = false; - result += "QNetworkCookie(" + cookie.toRawForm() + ')'; - } - result.append(')'); - return qstrdup(result.constData()); - } -} - -QT_END_NAMESPACE - void tst_QNetworkCookie::getterSetter() { QNetworkCookie cookie; diff --git a/tests/auto/network/access/qnetworkcookiejar/tst_qnetworkcookiejar.cpp b/tests/auto/network/access/qnetworkcookiejar/tst_qnetworkcookiejar.cpp index 8a1a5b8369..f9cc33fb26 100644 --- a/tests/auto/network/access/qnetworkcookiejar/tst_qnetworkcookiejar.cpp +++ b/tests/auto/network/access/qnetworkcookiejar/tst_qnetworkcookiejar.cpp @@ -55,34 +55,6 @@ private slots: void rfc6265(); }; -QT_BEGIN_NAMESPACE - -namespace QTest { - template<> - char *toString(const QNetworkCookie &cookie) - { - return qstrdup(cookie.toRawForm()); - } - - template<> - char *toString(const QList<QNetworkCookie> &list) - { - QByteArray result = "QList("; - bool first = true; - foreach (QNetworkCookie cookie, list) { - if (!first) - result += ", "; - first = false; - result += "QNetworkCookie(" + cookie.toRawForm() + ')'; - } - - result.append(')'); - return qstrdup(result.constData()); - } -} - -QT_END_NAMESPACE - class MyCookieJar: public QNetworkCookieJar { public: diff --git a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp index 43e05c95f9..38c3b47aae 100644 --- a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp +++ b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp @@ -490,45 +490,6 @@ private: bool tst_QNetworkReply::seedCreated = false; -QT_BEGIN_NAMESPACE - -namespace QTest { - template<> - char *toString(const QNetworkReply::NetworkError& code) - { - const QMetaObject *mo = &QNetworkReply::staticMetaObject; - int index = mo->indexOfEnumerator("NetworkError"); - if (index == -1) - return qstrdup(""); - - QMetaEnum qme = mo->enumerator(index); - return qstrdup(qme.valueToKey(code)); - } - - template<> - char *toString(const QNetworkCookie &cookie) - { - return qstrdup(cookie.toRawForm()); - } - - template<> - char *toString(const QList<QNetworkCookie> &list) - { - QByteArray result = "QList("; - bool first = true; - foreach (QNetworkCookie cookie, list) { - if (!first) - result += ", "; - first = false; - result += "QNetworkCookie(" + cookie.toRawForm() + ')'; - } - result.append(')'); - return qstrdup(result.constData()); - } -} - -QT_END_NAMESPACE - #define RUN_REQUEST(call) \ do { \ QString errorMsg = call; \ diff --git a/tests/auto/network/access/qnetworkrequest/tst_qnetworkrequest.cpp b/tests/auto/network/access/qnetworkrequest/tst_qnetworkrequest.cpp index a14aaf3cb1..bc9144e40e 100644 --- a/tests/auto/network/access/qnetworkrequest/tst_qnetworkrequest.cpp +++ b/tests/auto/network/access/qnetworkrequest/tst_qnetworkrequest.cpp @@ -56,33 +56,6 @@ private slots: void removeHeader(); }; -QT_BEGIN_NAMESPACE - -namespace QTest { - template<> - char *toString(const QNetworkCookie &cookie) - { - return qstrdup(cookie.toRawForm()); - } - - template<> - char *toString(const QList<QNetworkCookie> &list) - { - QByteArray result = "QList("; - bool first = true; - foreach (QNetworkCookie cookie, list) { - if (!first) - result += ", "; - first = false; - result += "QNetworkCookie(" + cookie.toRawForm() + ')'; - } - result.append(')'); - return qstrdup(result.constData()); - } -} - -QT_END_NAMESPACE - void tst_QNetworkRequest::ctor_data() { QTest::addColumn<QUrl>("url"); |