diff options
Diffstat (limited to 'tests/auto/utils')
-rw-r--r-- | tests/auto/utils/qlocationtestutils.cpp | 114 | ||||
-rw-r--r-- | tests/auto/utils/qlocationtestutils_p.h | 175 | ||||
-rw-r--r-- | tests/auto/utils/qnmeaproxyfactory.cpp | 130 | ||||
-rw-r--r-- | tests/auto/utils/qnmeaproxyfactory.h | 96 |
4 files changed, 0 insertions, 515 deletions
diff --git a/tests/auto/utils/qlocationtestutils.cpp b/tests/auto/utils/qlocationtestutils.cpp deleted file mode 100644 index c587a8bc..00000000 --- a/tests/auto/utils/qlocationtestutils.cpp +++ /dev/null @@ -1,114 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** 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 General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** 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-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qlocationtestutils_p.h" - -bool QLocationTestUtils::hasDefaultSource() -{ - return false; -} - -bool QLocationTestUtils::hasDefaultMonitor() -{ - return false; -} - -QString QLocationTestUtils::addNmeaChecksumAndBreaks(const QString &sentence) -{ - Q_ASSERT(sentence[0] == '$' && sentence[sentence.length()-1] == '*'); - - // XOR byte value of all characters between '$' and '*' - int result = 0; - for (int i=1; i<sentence.length()-1; i++) - result ^= sentence[i].toLatin1(); - const QString sum = QString::asprintf("%02x", result); - return sentence + sum + "\r\n"; -} - -QString QLocationTestUtils::createRmcSentence(const QDateTime &dt) -{ - QString time = dt.toString("hhmmss.zzz"); - QString date = dt.toString("ddMMyy"); - QString nmea = QString("$GPRMC,%1,A,2730.83609,S,15301.87844,E,0.7,9.0,%2,11.2,W,A*") - .arg(time).arg(date); - return addNmeaChecksumAndBreaks(nmea); -} - -QString QLocationTestUtils::createGgaSentence(const QTime &time) -{ - QString nmea = QString("$GPGGA,%1,2734.76859,S,15305.99361,E,1,04,3.5,49.4,M,39.2,M,,*") - .arg(time.toString("hhmmss.zzz")); - return addNmeaChecksumAndBreaks(nmea); -} - -QString QLocationTestUtils::createGgaSentence(int lat, int lng, const QTime &time) { - QString nmea = QString("$GPGGA,%1,%200.00000,S,%300.,E,1,04,3.5,49.4,M,39.2,M,,*") - .arg(time.toString("hhmmss.zzz")).arg(lat).arg(lng); - return addNmeaChecksumAndBreaks(nmea); -} - -QString QLocationTestUtils::createZdaSentence(const QDateTime &dt) -{ - QString time = dt.toString("hhmmss.zzz"); - QString nmea = QString("$GPZDA,%1,%2,%3,%4,,*") - .arg(time).arg(dt.toString("dd")).arg(dt.toString("MM")).arg(dt.toString("yyyy")); - return addNmeaChecksumAndBreaks(nmea); -} - -QString QLocationTestUtils::createGsaSentence() -{ - return addNmeaChecksumAndBreaks(QStringLiteral("$GPGSA,A,3,,,,,,,,,,,,,3.0,3.5,4.0*")); -} - -QString QLocationTestUtils::createGsvSentence() -{ - return addNmeaChecksumAndBreaks(QStringLiteral("$GPGSV,1,1,0,,,,,,,,,,,,,,,,*")); -} - -QString QLocationTestUtils::createGsaLongSentence() -{ - return addNmeaChecksumAndBreaks(QStringLiteral("$GPGSA,A,3,16,25,,,,,,,,,,,2.3,1.3,1.9*")); -} - -QString QLocationTestUtils::createGsvLongSentence() -{ - return addNmeaChecksumAndBreaks( - QStringLiteral("$GPGSV,1,1,4,16,49,115,42,25,39,269,36,23,58,176,29,20,72,335,35*")); -} - -QString QLocationTestUtils::createGsaVariableSentence(quint8 satId) -{ - const QString nmea = QString("$GPGSA,A,3,%1,,,,,,,,,,,,2.3,1.3,1.9*").arg(static_cast<int>(satId)); - return addNmeaChecksumAndBreaks(nmea); -} - -QString QLocationTestUtils::createGsvVariableSentence(quint8 satId) -{ - const QString nmea = QString("$GPGSV,1,1,1,%1,49,115,42,,,,,,,,,,,,*").arg(static_cast<int>(satId)); - return addNmeaChecksumAndBreaks(nmea); -} diff --git a/tests/auto/utils/qlocationtestutils_p.h b/tests/auto/utils/qlocationtestutils_p.h deleted file mode 100644 index 77c3a394..00000000 --- a/tests/auto/utils/qlocationtestutils_p.h +++ /dev/null @@ -1,175 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** 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 General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** 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-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QLOCATIONTESTUTILS_P_H -#define QLOCATIONTESTUTILS_P_H - -#include <QDebug> -#include <QString> -#include <QTest> - -namespace QLocationTestUtils -{ - bool hasDefaultSource(); - bool hasDefaultMonitor(); - - QString addNmeaChecksumAndBreaks(const QString &sentence); - - QString createRmcSentence(const QDateTime &dt); - QString createGgaSentence(const QTime &time); - QString createGgaSentence(int lat, int lng, const QTime &time); - QString createZdaSentence(const QDateTime &dt); - QString createGsaSentence(); - QString createGsvSentence(); - QString createGsaLongSentence(); - QString createGsvLongSentence(); - QString createGsaVariableSentence(quint8 satId); - QString createGsvVariableSentence(quint8 satId); - - //The purpose of compareEquality() is to test equality - //operators where it is expected that A == B. - template<typename A, typename B> - bool compareEquality(const A &first, const B &second) { - if (first != second) { - qWarning() << "compareEquality() failed: first != second"; - return false; - } - - if (second != first) { - qWarning() << "compareEquality() failed: second != first"; - return false; - } - - if (!(first == second)) { - qWarning() << "compareEquality() failed: !(first == second)"; - return false; - } - - if (!(second == first)) { - qWarning() << "compareEquality() failed: !(second == first)"; - return false; - } - - return true; - } - - //The purpose of compareInequality() is to test equality - //operators where it is expected that A != B. - //Using !compareEquality(...) is not sufficient because - //only the first operator checked would end up being tested. - template<typename A, typename B> - bool compareInequality(const A &first, const B &second) { - if (!(first != second)){ - qWarning() << "compareInequality() failed: !(first != second)"; - return false; - } - - if (!(second != first)) { - qWarning() << "compareInequality() failed: !(second != first)"; - return false; - } - - if (first == second) { - qWarning() << "compareInequality() failed: first == second)"; - return false; - } - - if (second == first) { - qWarning() << "compareInequality() failed: second == first"; - return false; - } - return true; - } - - // Tests conversions between sub and base classes - // TC (test case) must implement: - // SubClass initialSubObject(); - // bool checkType(const BaseClass &) - // void detach(BaseClass *) - calls a mutator method, but doesn't actually modify the - // property to something different. - // void setSubClassProperty(SubClass *) - sets a property in the subclass instance - template<typename TC, typename BaseClass, typename SubClass> - void testConversion(TC *tc) { - SubClass sub = tc->initialSubObject(); - //check conversion from SubClass -> BaseClass - //using assignment operator - BaseClass base; - base = sub; - QVERIFY(QLocationTestUtils::compareEquality(base, sub)); - QVERIFY(tc->checkType(base)); - - //check comparing base classes - BaseClass base2; - base2 = sub; - QVERIFY(QLocationTestUtils::compareEquality(base, base2)); - - //check conversion from BaseClass -> SubClass - //using assignment operator - SubClass sub2; - sub2 = base; - QVERIFY(QLocationTestUtils::compareEquality(sub, sub2)); - QVERIFY(tc->checkType(sub2)); - - //check that equality still holds with detachment of underlying data pointer - tc->detach(&base); - sub2 = base; - QVERIFY(QLocationTestUtils::compareEquality(sub, sub2)); - QVERIFY(QLocationTestUtils::compareEquality(sub, base)); - QVERIFY(QLocationTestUtils::compareEquality(base, base2)); - - //check that comparing objects are not the same - //when an underlying subclass field has been modified - tc->setSubClassProperty(&sub2); - base2 = sub2; - QVERIFY(QLocationTestUtils::compareInequality(sub, sub2)); - QVERIFY(QLocationTestUtils::compareInequality(sub, base2)); - QVERIFY(QLocationTestUtils::compareInequality(base, base2)); - - //check conversion from SubClass -> BaseClass - //using copy constructor - BaseClass base3(sub); - QVERIFY(QLocationTestUtils::compareEquality(sub, base3)); - QVERIFY(QLocationTestUtils::compareEquality(base, base3)); - - //check conversion from BaseClass -> SubClass - //using copy constructor - SubClass sub3(base3); - QVERIFY(QLocationTestUtils::compareEquality(sub, sub3)); - - //check conversion to subclass using a default base class instance - BaseClass baseDefault; - SubClass subDefault; - SubClass sub4(baseDefault); - QVERIFY(QLocationTestUtils::compareEquality(sub4, subDefault)); - - SubClass sub5 = baseDefault; - QVERIFY(QLocationTestUtils::compareEquality(sub5, subDefault)); - } -}; - -#endif diff --git a/tests/auto/utils/qnmeaproxyfactory.cpp b/tests/auto/utils/qnmeaproxyfactory.cpp deleted file mode 100644 index 8ad07adf..00000000 --- a/tests/auto/utils/qnmeaproxyfactory.cpp +++ /dev/null @@ -1,130 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** 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 General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** 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-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qnmeaproxyfactory.h" -#include "qlocationtestutils_p.h" -#include <QtPositioning/QNmeaPositionInfoSource> -#include <QtPositioning/QNmeaSatelliteInfoSource> - -#include <QIODevice> -#include <QTcpServer> -#include <QTcpSocket> - -QNmeaPositionInfoSourceProxy::QNmeaPositionInfoSourceProxy(QNmeaPositionInfoSource *source, - QIODevice *outDevice) - : m_source(source), m_outDevice(outDevice) -{ -} - -QNmeaPositionInfoSourceProxy::~QNmeaPositionInfoSourceProxy() -{ - m_outDevice->close(); - delete m_outDevice; -} - -QGeoPositionInfoSource *QNmeaPositionInfoSourceProxy::source() const -{ - return m_source; -} - -void QNmeaPositionInfoSourceProxy::feedUpdate(const QDateTime &dt) -{ - m_outDevice->write(QLocationTestUtils::createRmcSentence(dt).toLatin1()); -} - -void QNmeaPositionInfoSourceProxy::feedBytes(const QByteArray &bytes) -{ - m_outDevice->write(bytes); -} - -QNmeaProxyFactory::QNmeaProxyFactory() : m_server(new QTcpServer(this)) -{ - bool b = m_server->listen(QHostAddress::LocalHost); - Q_ASSERT(b); -} - -QNmeaPositionInfoSourceProxy * -QNmeaProxyFactory::createPositionInfoSourceProxy(QNmeaPositionInfoSource *source) -{ - QTcpSocket *client = new QTcpSocket; - QIODevice *device = createServerConnection(client); - source->setDevice(device); - Q_ASSERT(source->device() != 0); - QNmeaPositionInfoSourceProxy *proxy = new QNmeaPositionInfoSourceProxy(source, client); - proxy->setParent(source); - return proxy; -} - -QNmeaSatelliteInfoSourceProxy * -QNmeaProxyFactory::createSatelliteInfoSourceProxy(QNmeaSatelliteInfoSource *source) -{ - QTcpSocket *client = new QTcpSocket; - QIODevice *device = createServerConnection(client); - source->setDevice(device); - Q_ASSERT(source->device() != 0); - QNmeaSatelliteInfoSourceProxy *proxy = new QNmeaSatelliteInfoSourceProxy(source, client); - proxy->setParent(source); - return proxy; -} - -QIODevice *QNmeaProxyFactory::createServerConnection(QTcpSocket *client) -{ - client->connectToHost(m_server->serverAddress(), m_server->serverPort()); - qDebug() << "listening on" << m_server->serverAddress() << m_server->serverPort(); - bool b = m_server->waitForNewConnection(15000); - if (!b) - qWarning() << "Server didin't receive new connection"; - b = client->waitForConnected(); - if (!b) - qWarning() << "Client could not connect to server"; - - QIODevice *device = m_server->nextPendingConnection(); - return device; -} - -QNmeaSatelliteInfoSourceProxy::QNmeaSatelliteInfoSourceProxy(QNmeaSatelliteInfoSource *source, - QIODevice *outDevice) - : m_source(source), m_outDevice(outDevice) -{ -} - -QNmeaSatelliteInfoSourceProxy::~QNmeaSatelliteInfoSourceProxy() -{ - m_outDevice->close(); - delete m_outDevice; -} - -QGeoSatelliteInfoSource *QNmeaSatelliteInfoSourceProxy::source() const -{ - return m_source; -} - -void QNmeaSatelliteInfoSourceProxy::feedBytes(const QByteArray &bytes) -{ - m_outDevice->write(bytes); -} diff --git a/tests/auto/utils/qnmeaproxyfactory.h b/tests/auto/utils/qnmeaproxyfactory.h deleted file mode 100644 index 2cd2e262..00000000 --- a/tests/auto/utils/qnmeaproxyfactory.h +++ /dev/null @@ -1,96 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** 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 General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** 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-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QNMEAPROXYFACTORY_H -#define QNMEAPROXYFACTORY_H - -#include <QObject> - -QT_BEGIN_NAMESPACE -class QTcpServer; -class QTcpSocket; -class QIODevice; -class QNmeaPositionInfoSource; -class QNmeaSatelliteInfoSource; -class QGeoPositionInfoSource; -class QGeoSatelliteInfoSource; -QT_END_NAMESPACE - -class QNmeaPositionInfoSourceProxy : public QObject -{ - Q_OBJECT -public: - QNmeaPositionInfoSourceProxy(QNmeaPositionInfoSource *source, QIODevice *outDevice); - ~QNmeaPositionInfoSourceProxy(); - - QGeoPositionInfoSource *source() const; - - void feedUpdate(const QDateTime &dt); - - void feedBytes(const QByteArray &bytes); - - int updateIntervalErrorMargin() const { return 50; } - -private: - QNmeaPositionInfoSource *m_source; - QIODevice *m_outDevice; -}; - -class QNmeaSatelliteInfoSourceProxy : public QObject -{ - Q_OBJECT -public: - QNmeaSatelliteInfoSourceProxy(QNmeaSatelliteInfoSource *source, QIODevice *outDevice); - ~QNmeaSatelliteInfoSourceProxy(); - - QGeoSatelliteInfoSource *source() const; - - void feedBytes(const QByteArray &bytes); - -private: - QNmeaSatelliteInfoSource *m_source; - QIODevice *m_outDevice; -}; - -class QNmeaProxyFactory : public QObject -{ - Q_OBJECT -public: - QNmeaProxyFactory(); - - // proxy is created as child of source - QNmeaPositionInfoSourceProxy *createPositionInfoSourceProxy(QNmeaPositionInfoSource *source); - QNmeaSatelliteInfoSourceProxy *createSatelliteInfoSourceProxy(QNmeaSatelliteInfoSource *source); - -private: - QIODevice *createServerConnection(QTcpSocket *client); - - QTcpServer *m_server; -}; - -#endif |