summaryrefslogtreecommitdiffstats
path: root/tests/auto/qnmeapositioninfosource
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/qnmeapositioninfosource')
-rw-r--r--tests/auto/qnmeapositioninfosource/CMakeLists.txt7
-rw-r--r--tests/auto/qnmeapositioninfosource/dummynmeapositioninfosource/CMakeLists.txt23
-rw-r--r--tests/auto/qnmeapositioninfosource/dummynmeapositioninfosource/dummynmeapositioninfosource.pro17
-rw-r--r--tests/auto/qnmeapositioninfosource/dummynmeapositioninfosource/tst_dummynmeapositioninfosource.cpp149
-rw-r--r--tests/auto/qnmeapositioninfosource/qnmeapositioninfosource.pro8
-rw-r--r--tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_realtime/CMakeLists.txt26
-rw-r--r--tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_realtime/qnmeapositioninfosource_realtime.pro19
-rw-r--r--tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_realtime/tst_qnmeapositioninfosource_realtime.cpp44
-rw-r--r--tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_realtime_generic/CMakeLists.txt27
-rw-r--r--tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_realtime_generic/qnmeapositioninfosource_realtime_generic.pro22
-rw-r--r--tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_realtime_generic/tst_qnmeapositioninfosource_realtime_generic.cpp77
-rw-r--r--tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_simulation/CMakeLists.txt26
-rw-r--r--tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_simulation/qnmeapositioninfosource_simulation.pro19
-rw-r--r--tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_simulation/tst_qnmeapositioninfosource_simulation.cpp43
-rw-r--r--tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_simulation_generic/CMakeLists.txt32
-rw-r--r--tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_simulation_generic/qnmeapositioninfosource_simulation_generic.pro22
-rw-r--r--tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_simulation_generic/tst_qnmeapositioninfosource_simulation_generic.cpp64
-rw-r--r--tests/auto/qnmeapositioninfosource/tst_qnmeapositioninfosource.cpp605
-rw-r--r--tests/auto/qnmeapositioninfosource/tst_qnmeapositioninfosource.h182
19 files changed, 0 insertions, 1412 deletions
diff --git a/tests/auto/qnmeapositioninfosource/CMakeLists.txt b/tests/auto/qnmeapositioninfosource/CMakeLists.txt
deleted file mode 100644
index 6ac0e05c..00000000
--- a/tests/auto/qnmeapositioninfosource/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-# Generated from qnmeapositioninfosource.pro.
-
-add_subdirectory(dummynmeapositioninfosource)
-add_subdirectory(qnmeapositioninfosource_realtime)
-add_subdirectory(qnmeapositioninfosource_simulation)
-add_subdirectory(qnmeapositioninfosource_realtime_generic)
-add_subdirectory(qnmeapositioninfosource_simulation_generic)
diff --git a/tests/auto/qnmeapositioninfosource/dummynmeapositioninfosource/CMakeLists.txt b/tests/auto/qnmeapositioninfosource/dummynmeapositioninfosource/CMakeLists.txt
deleted file mode 100644
index d152dc72..00000000
--- a/tests/auto/qnmeapositioninfosource/dummynmeapositioninfosource/CMakeLists.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-# Generated from dummynmeapositioninfosource.pro.
-
-#####################################################################
-## tst_dummynmeapositioninfosource Test:
-#####################################################################
-
-qt_internal_add_test(tst_dummynmeapositioninfosource
- SOURCES
- ../../utils/qlocationtestutils.cpp ../../utils/qlocationtestutils_p.h
- ../../utils/qnmeaproxyfactory.cpp ../../utils/qnmeaproxyfactory.h
- tst_dummynmeapositioninfosource.cpp
- DEFINES
- QT_DISABLE_DEPRECATED_BEFORE=0
- INCLUDE_DIRECTORIES
- ..
- LIBRARIES
- Qt::Core
- Qt::Network
- Qt::Positioning
-)
-
-#### Keys ignored in scope 1:.:.:dummynmeapositioninfosource.pro:<TRUE>:
-# TEMPLATE = "app"
diff --git a/tests/auto/qnmeapositioninfosource/dummynmeapositioninfosource/dummynmeapositioninfosource.pro b/tests/auto/qnmeapositioninfosource/dummynmeapositioninfosource/dummynmeapositioninfosource.pro
deleted file mode 100644
index d32e2e31..00000000
--- a/tests/auto/qnmeapositioninfosource/dummynmeapositioninfosource/dummynmeapositioninfosource.pro
+++ /dev/null
@@ -1,17 +0,0 @@
-TEMPLATE = app
-CONFIG+=testcase
-QT += network positioning testlib
-TARGET = tst_dummynmeapositioninfosource
-
-INCLUDEPATH += ..
-
-HEADERS += ../../utils/qlocationtestutils_p.h \
- ../../qgeopositioninfosource/testqgeopositioninfosource_p.h \
- ../../utils/qnmeaproxyfactory.h
-
-SOURCES += ../../utils/qlocationtestutils.cpp \
- ../../qgeopositioninfosource/testqgeopositioninfosource.cpp \
- ../../utils/qnmeaproxyfactory.cpp \
- tst_dummynmeapositioninfosource.cpp
-
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/qnmeapositioninfosource/dummynmeapositioninfosource/tst_dummynmeapositioninfosource.cpp b/tests/auto/qnmeapositioninfosource/dummynmeapositioninfosource/tst_dummynmeapositioninfosource.cpp
deleted file mode 100644
index 70059550..00000000
--- a/tests/auto/qnmeapositioninfosource/dummynmeapositioninfosource/tst_dummynmeapositioninfosource.cpp
+++ /dev/null
@@ -1,149 +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$
-**
-****************************************************************************/
-
-//TESTED_COMPONENT=src/location
-
-#include "../utils/qnmeaproxyfactory.h"
-#include "../utils/qlocationtestutils_p.h"
-
-#include <QtPositioning/qnmeapositioninfosource.h>
-#include <QSignalSpy>
-#include <QTest>
-
-Q_DECLARE_METATYPE(QNmeaPositionInfoSource::UpdateMode)
-
-class DummyNmeaPositionInfoSource : public QNmeaPositionInfoSource
-{
- Q_OBJECT
-
-public:
- DummyNmeaPositionInfoSource(QNmeaPositionInfoSource::UpdateMode mode, QObject *parent = 0);
-
-protected:
- bool parsePosInfoFromNmeaData(const char *data,
- int size,
- QGeoPositionInfo *posInfo,
- bool *hasFix) override;
-
-private:
- int callCount;
-};
-
-DummyNmeaPositionInfoSource::DummyNmeaPositionInfoSource(QNmeaPositionInfoSource::UpdateMode mode, QObject *parent) :
- QNmeaPositionInfoSource(mode, parent),
- callCount(0)
-{
-}
-
-bool DummyNmeaPositionInfoSource::parsePosInfoFromNmeaData(const char* data,
- int size,
- QGeoPositionInfo *posInfo,
- bool *hasFix)
-{
- Q_UNUSED(data);
- Q_UNUSED(size);
-
- posInfo->setCoordinate(QGeoCoordinate(callCount * 1.0, callCount * 1.0, callCount * 1.0));
- posInfo->setTimestamp(QDateTime::currentDateTimeUtc());
- *hasFix = true;
- ++callCount;
-
- return true;
-}
-
-class tst_DummyNmeaPositionInfoSource : public QObject
-{
- Q_OBJECT
-
-public:
- tst_DummyNmeaPositionInfoSource();
-
-private slots:
- void initTestCase();
- void testOverloadedParseFunction();
-};
-
-
-tst_DummyNmeaPositionInfoSource::tst_DummyNmeaPositionInfoSource() {}
-
-void tst_DummyNmeaPositionInfoSource::initTestCase()
-{
-
-}
-
-void tst_DummyNmeaPositionInfoSource::testOverloadedParseFunction()
-{
- DummyNmeaPositionInfoSource source(QNmeaPositionInfoSource::RealTimeMode);
- QNmeaProxyFactory factory;
- // proxy is deleted by the source
- QNmeaPositionInfoSourceProxy *proxy = static_cast<QNmeaPositionInfoSourceProxy *>(
- factory.createPositionInfoSourceProxy(&source));
-
- QSignalSpy spy(proxy->source(), SIGNAL(positionUpdated(QGeoPositionInfo)));
-
- QGeoPositionInfo pos;
-
- proxy->source()->startUpdates();
-
- proxy->feedBytes(QString("The parser converts\n").toLatin1());
-
- QTRY_VERIFY_WITH_TIMEOUT((spy.count() == 1), 10000);
- pos = spy.at(0).at(0).value<QGeoPositionInfo>();
-
- QVERIFY((pos.coordinate().latitude() == 0.0)
- && (pos.coordinate().longitude() == 0.0)
- && (pos.coordinate().altitude() == 0.0));
-
- spy.clear();
-
- proxy->feedBytes(QString("any data it receives\n").toLatin1());
-
- QTRY_VERIFY_WITH_TIMEOUT((spy.count() == 1), 10000);
- pos = spy.at(0).at(0).value<QGeoPositionInfo>();
-
- QVERIFY((pos.coordinate().latitude() == 1.0)
- && (pos.coordinate().longitude() == 1.0)
- && (pos.coordinate().altitude() == 1.0));
-
- spy.clear();
-
- proxy->feedBytes(QString("into positions\n").toLatin1());
-
- QTRY_VERIFY_WITH_TIMEOUT((spy.count() == 1), 10000);
- pos = spy.at(0).at(0).value<QGeoPositionInfo>();
-
- QVERIFY((pos.coordinate().latitude() == 2.0)
- && (pos.coordinate().longitude() == 2.0)
- && (pos.coordinate().altitude() == 2.0));
-
- spy.clear();
-}
-
-#include "tst_dummynmeapositioninfosource.moc"
-
-QTEST_GUILESS_MAIN(tst_DummyNmeaPositionInfoSource);
diff --git a/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource.pro b/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource.pro
deleted file mode 100644
index 8c168d52..00000000
--- a/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource.pro
+++ /dev/null
@@ -1,8 +0,0 @@
-TEMPLATE = subdirs
-SUBDIRS += \
- dummynmeapositioninfosource \
- qnmeapositioninfosource_realtime \
- qnmeapositioninfosource_simulation \
- qnmeapositioninfosource_realtime_generic \
- qnmeapositioninfosource_simulation_generic
-
diff --git a/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_realtime/CMakeLists.txt b/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_realtime/CMakeLists.txt
deleted file mode 100644
index 4ca5f9a2..00000000
--- a/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_realtime/CMakeLists.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-# Generated from qnmeapositioninfosource_realtime.pro.
-
-#####################################################################
-## tst_qnmeapositioninfosource_realtime Test:
-#####################################################################
-
-qt_internal_add_test(tst_qnmeapositioninfosource_realtime
- SOURCES
- ../../qgeopositioninfosource/testqgeopositioninfosource.cpp ../../qgeopositioninfosource/testqgeopositioninfosource_p.h
- ../../utils/qlocationtestutils.cpp ../../utils/qlocationtestutils_p.h
- ../../utils/qnmeaproxyfactory.cpp ../../utils/qnmeaproxyfactory.h
- ../tst_qnmeapositioninfosource.cpp ../tst_qnmeapositioninfosource.h
- tst_qnmeapositioninfosource_realtime.cpp
- DEFINES
- QT_DISABLE_DEPRECATED_BEFORE=0
- INCLUDE_DIRECTORIES
- ..
- LIBRARIES
- Qt::Core
- Qt::Network
- Qt::Positioning
- Qt::TestPrivate
-)
-
-#### Keys ignored in scope 1:.:.:qnmeapositioninfosource_realtime.pro:<TRUE>:
-# TEMPLATE = "app"
diff --git a/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_realtime/qnmeapositioninfosource_realtime.pro b/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_realtime/qnmeapositioninfosource_realtime.pro
deleted file mode 100644
index fcff3d7a..00000000
--- a/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_realtime/qnmeapositioninfosource_realtime.pro
+++ /dev/null
@@ -1,19 +0,0 @@
-TEMPLATE = app
-CONFIG+=testcase
-QT += network positioning testlib
-TARGET = tst_qnmeapositioninfosource_realtime
-
-INCLUDEPATH += ..
-
-HEADERS += ../../utils/qlocationtestutils_p.h \
- ../../qgeopositioninfosource/testqgeopositioninfosource_p.h \
- ../../utils/qnmeaproxyfactory.h \
- ../tst_qnmeapositioninfosource.h
-
-SOURCES += ../../utils/qlocationtestutils.cpp \
- ../../qgeopositioninfosource/testqgeopositioninfosource.cpp \
- ../../utils/qnmeaproxyfactory.cpp \
- ../tst_qnmeapositioninfosource.cpp \
- tst_qnmeapositioninfosource_realtime.cpp
-
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_realtime/tst_qnmeapositioninfosource_realtime.cpp b/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_realtime/tst_qnmeapositioninfosource_realtime.cpp
deleted file mode 100644
index 423f6573..00000000
--- a/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_realtime/tst_qnmeapositioninfosource_realtime.cpp
+++ /dev/null
@@ -1,44 +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$
-**
-****************************************************************************/
-
-//TESTED_COMPONENT=src/location
-
-#include "tst_qnmeapositioninfosource.h"
-
-class tst_QNmeaPositionInfoSource_RealTime : public tst_QNmeaPositionInfoSource
-{
- Q_OBJECT
-
-public:
- tst_QNmeaPositionInfoSource_RealTime()
- : tst_QNmeaPositionInfoSource(QNmeaPositionInfoSource::RealTimeMode) {}
-};
-
-#include "tst_qnmeapositioninfosource_realtime.moc"
-
-QTEST_GUILESS_MAIN(tst_QNmeaPositionInfoSource_RealTime);
diff --git a/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_realtime_generic/CMakeLists.txt b/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_realtime_generic/CMakeLists.txt
deleted file mode 100644
index d7f2bfdd..00000000
--- a/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_realtime_generic/CMakeLists.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-# Generated from qnmeapositioninfosource_realtime_generic.pro.
-
-#####################################################################
-## tst_qnmeapositioninfosource_realtime_generic Test:
-#####################################################################
-
-qt_internal_add_test(tst_qnmeapositioninfosource_realtime_generic
- SOURCES
- ../../qgeopositioninfosource/testqgeopositioninfosource.cpp ../../qgeopositioninfosource/testqgeopositioninfosource_p.h
- ../../utils/qlocationtestutils.cpp ../../utils/qlocationtestutils_p.h
- ../../utils/qnmeaproxyfactory.cpp ../../utils/qnmeaproxyfactory.h
- ../tst_qnmeapositioninfosource.cpp ../tst_qnmeapositioninfosource.h
- tst_qnmeapositioninfosource_realtime_generic.cpp
- DEFINES
- QT_DISABLE_DEPRECATED_BEFORE=0
- INCLUDE_DIRECTORIES
- ..
- LIBRARIES
- Qt::Core
- Qt::Network
- Qt::Positioning
- Qt::TestPrivate
-)
-
-#### Keys ignored in scope 1:.:.:qnmeapositioninfosource_realtime_generic.pro:<TRUE>:
-# TEMPLATE = "app"
-# testcase.timeout = "400"
diff --git a/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_realtime_generic/qnmeapositioninfosource_realtime_generic.pro b/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_realtime_generic/qnmeapositioninfosource_realtime_generic.pro
deleted file mode 100644
index 0fbbd76e..00000000
--- a/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_realtime_generic/qnmeapositioninfosource_realtime_generic.pro
+++ /dev/null
@@ -1,22 +0,0 @@
-TEMPLATE = app
-CONFIG+=testcase
-testcase.timeout = 400 # this test is slow
-QT += network positioning testlib
-TARGET = tst_qnmeapositioninfosource_realtime_generic
-
-INCLUDEPATH += ..
-
-HEADERS += ../../utils/qlocationtestutils_p.h \
- ../../qgeopositioninfosource/testqgeopositioninfosource_p.h \
- ../../utils/qnmeaproxyfactory.h \
- ../tst_qnmeapositioninfosource.h
-
-SOURCES += ../../utils/qlocationtestutils.cpp \
- ../../qgeopositioninfosource/testqgeopositioninfosource.cpp \
- ../../utils/qnmeaproxyfactory.cpp \
- ../tst_qnmeapositioninfosource.cpp \
- tst_qnmeapositioninfosource_realtime_generic.cpp
-
-CONFIG -= app_bundle
-
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_realtime_generic/tst_qnmeapositioninfosource_realtime_generic.cpp b/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_realtime_generic/tst_qnmeapositioninfosource_realtime_generic.cpp
deleted file mode 100644
index abb5e9ae..00000000
--- a/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_realtime_generic/tst_qnmeapositioninfosource_realtime_generic.cpp
+++ /dev/null
@@ -1,77 +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$
-**
-****************************************************************************/
-
-//TESTED_COMPONENT=src/location
-
-#include "tst_qnmeapositioninfosource.h"
-
-class tst_QNmeaPositionInfoSource_RealTime_Generic : public TestQGeoPositionInfoSource
-{
- Q_OBJECT
-
-public:
- tst_QNmeaPositionInfoSource_RealTime_Generic()
- {
- m_factory = new QNmeaProxyFactory;
-#if QT_CONFIG(library)
- /*
- * Set custom path since CI doesn't install test plugins
- */
-#ifdef Q_OS_WIN
- QCoreApplication::addLibraryPath(QCoreApplication::applicationDirPath() +
- QStringLiteral("/../../../../plugins"));
-#else
- QCoreApplication::addLibraryPath(QCoreApplication::applicationDirPath()
- + QStringLiteral("/../../../../plugins"));
-#endif
-#endif
- }
-
- ~tst_QNmeaPositionInfoSource_RealTime_Generic()
- {
- delete m_factory;
- }
-
-protected:
- QGeoPositionInfoSource *createTestSource() override
- {
- QNmeaPositionInfoSource *source = new QNmeaPositionInfoSource(QNmeaPositionInfoSource::RealTimeMode);
- QNmeaPositionInfoSourceProxy *proxy = static_cast<QNmeaPositionInfoSourceProxy *>(
- m_factory->createPositionInfoSourceProxy(source));
- Feeder *feeder = new Feeder(source);
- feeder->start(proxy);
- return source;
- }
-
-private:
- QNmeaProxyFactory *m_factory;
-};
-
-#include "tst_qnmeapositioninfosource_realtime_generic.moc"
-
-QTEST_GUILESS_MAIN(tst_QNmeaPositionInfoSource_RealTime_Generic);
diff --git a/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_simulation/CMakeLists.txt b/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_simulation/CMakeLists.txt
deleted file mode 100644
index f0ea5cec..00000000
--- a/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_simulation/CMakeLists.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-# Generated from qnmeapositioninfosource_simulation.pro.
-
-#####################################################################
-## tst_qnmeapositioninfosource_simulation Test:
-#####################################################################
-
-qt_internal_add_test(tst_qnmeapositioninfosource_simulation
- SOURCES
- ../../qgeopositioninfosource/testqgeopositioninfosource.cpp ../../qgeopositioninfosource/testqgeopositioninfosource_p.h
- ../../utils/qlocationtestutils.cpp ../../utils/qlocationtestutils_p.h
- ../../utils/qnmeaproxyfactory.cpp ../../utils/qnmeaproxyfactory.h
- ../tst_qnmeapositioninfosource.cpp ../tst_qnmeapositioninfosource.h
- tst_qnmeapositioninfosource_simulation.cpp
- DEFINES
- QT_DISABLE_DEPRECATED_BEFORE=0
- INCLUDE_DIRECTORIES
- ..
- LIBRARIES
- Qt::Core
- Qt::Network
- Qt::Positioning
- Qt::TestPrivate
-)
-
-#### Keys ignored in scope 1:.:.:qnmeapositioninfosource_simulation.pro:<TRUE>:
-# TEMPLATE = "app"
diff --git a/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_simulation/qnmeapositioninfosource_simulation.pro b/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_simulation/qnmeapositioninfosource_simulation.pro
deleted file mode 100644
index 88bb18f9..00000000
--- a/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_simulation/qnmeapositioninfosource_simulation.pro
+++ /dev/null
@@ -1,19 +0,0 @@
-TEMPLATE = app
-CONFIG+=testcase
-QT += network positioning testlib
-TARGET = tst_qnmeapositioninfosource_simulation
-
-INCLUDEPATH += ..
-
-HEADERS += ../../utils/qlocationtestutils_p.h \
- ../../qgeopositioninfosource/testqgeopositioninfosource_p.h \
- ../../utils/qnmeaproxyfactory.h \
- ../tst_qnmeapositioninfosource.h
-
-SOURCES += ../../utils/qlocationtestutils.cpp \
- ../../qgeopositioninfosource/testqgeopositioninfosource.cpp \
- ../../utils/qnmeaproxyfactory.cpp \
- ../tst_qnmeapositioninfosource.cpp \
- tst_qnmeapositioninfosource_simulation.cpp
-
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_simulation/tst_qnmeapositioninfosource_simulation.cpp b/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_simulation/tst_qnmeapositioninfosource_simulation.cpp
deleted file mode 100644
index ffe5e1d0..00000000
--- a/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_simulation/tst_qnmeapositioninfosource_simulation.cpp
+++ /dev/null
@@ -1,43 +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$
-**
-****************************************************************************/
-
-//TESTED_COMPONENT=src/location
-
-#include "tst_qnmeapositioninfosource.h"
-
-class tst_QNmeaPositionInfoSource_Simulation : public tst_QNmeaPositionInfoSource
-{
- Q_OBJECT
-public:
- tst_QNmeaPositionInfoSource_Simulation()
- : tst_QNmeaPositionInfoSource(QNmeaPositionInfoSource::SimulationMode) {}
-};
-
-#include "tst_qnmeapositioninfosource_simulation.moc"
-
-QTEST_GUILESS_MAIN(tst_QNmeaPositionInfoSource_Simulation);
diff --git a/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_simulation_generic/CMakeLists.txt b/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_simulation_generic/CMakeLists.txt
deleted file mode 100644
index 9232f9a8..00000000
--- a/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_simulation_generic/CMakeLists.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-# Generated from qnmeapositioninfosource_simulation_generic.pro.
-
-#####################################################################
-## tst_qnmeapositioninfosource_simulation_generic Test:
-#####################################################################
-
-# special case begin
-
-# Renamed the target due to problems with the maximum full path on
-# Windows systems (which is 250 characters only)
-qt_internal_add_test(tst_qnmeaposinfosource_sim_generic
-# special case end
- SOURCES
- ../../qgeopositioninfosource/testqgeopositioninfosource.cpp ../../qgeopositioninfosource/testqgeopositioninfosource_p.h
- ../../utils/qlocationtestutils.cpp ../../utils/qlocationtestutils_p.h
- ../../utils/qnmeaproxyfactory.cpp ../../utils/qnmeaproxyfactory.h
- ../tst_qnmeapositioninfosource.cpp ../tst_qnmeapositioninfosource.h
- tst_qnmeapositioninfosource_simulation_generic.cpp
- DEFINES
- QT_DISABLE_DEPRECATED_BEFORE=0
- INCLUDE_DIRECTORIES
- ..
- LIBRARIES
- Qt::Core
- Qt::Network
- Qt::Positioning
- Qt::TestPrivate
-)
-
-#### Keys ignored in scope 1:.:.:qnmeapositioninfosource_simulation_generic.pro:<TRUE>:
-# TEMPLATE = "app"
-# testcase.timeout = "400"
diff --git a/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_simulation_generic/qnmeapositioninfosource_simulation_generic.pro b/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_simulation_generic/qnmeapositioninfosource_simulation_generic.pro
deleted file mode 100644
index b198bf7c..00000000
--- a/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_simulation_generic/qnmeapositioninfosource_simulation_generic.pro
+++ /dev/null
@@ -1,22 +0,0 @@
-TEMPLATE = app
-CONFIG+=testcase
-testcase.timeout = 400 # this test is slow
-QT += network positioning testlib
-TARGET = tst_qnmeapositioninfosource_simulation_generic
-
-INCLUDEPATH += ..
-
-HEADERS += ../../utils/qlocationtestutils_p.h \
- ../../qgeopositioninfosource/testqgeopositioninfosource_p.h \
- ../../utils/qnmeaproxyfactory.h \
- ../tst_qnmeapositioninfosource.h
-
-SOURCES += ../../utils/qlocationtestutils.cpp \
- ../../qgeopositioninfosource/testqgeopositioninfosource.cpp \
- ../../utils/qnmeaproxyfactory.cpp \
- ../tst_qnmeapositioninfosource.cpp \
- tst_qnmeapositioninfosource_simulation_generic.cpp
-
-CONFIG -= app_bundle
-
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_simulation_generic/tst_qnmeapositioninfosource_simulation_generic.cpp b/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_simulation_generic/tst_qnmeapositioninfosource_simulation_generic.cpp
deleted file mode 100644
index 2f2827de..00000000
--- a/tests/auto/qnmeapositioninfosource/qnmeapositioninfosource_simulation_generic/tst_qnmeapositioninfosource_simulation_generic.cpp
+++ /dev/null
@@ -1,64 +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$
-**
-****************************************************************************/
-
-//TESTED_COMPONENT=src/location
-
-#include "tst_qnmeapositioninfosource.h"
-
-class tst_QNmeaPositionInfoSource_Simulation_Generic : public TestQGeoPositionInfoSource
-{
- Q_OBJECT
-public:
- tst_QNmeaPositionInfoSource_Simulation_Generic()
- {
-#if QT_CONFIG(library)
- /*
- * Set custom path since CI doesn't install test plugins
- */
-#ifdef Q_OS_WIN
- QCoreApplication::addLibraryPath(QCoreApplication::applicationDirPath() +
- QStringLiteral("/../../../../plugins"));
-#else
- QCoreApplication::addLibraryPath(QCoreApplication::applicationDirPath()
- + QStringLiteral("/../../../../plugins"));
-#endif
-#endif
- }
-
-protected:
- QGeoPositionInfoSource *createTestSource() override
- {
- QNmeaPositionInfoSource *source = new QNmeaPositionInfoSource(QNmeaPositionInfoSource::SimulationMode);
- source->setDevice(new UnlimitedNmeaStream(source));
- return source;
- }
-};
-
-#include "tst_qnmeapositioninfosource_simulation_generic.moc"
-
-QTEST_GUILESS_MAIN(tst_QNmeaPositionInfoSource_Simulation_Generic);
diff --git a/tests/auto/qnmeapositioninfosource/tst_qnmeapositioninfosource.cpp b/tests/auto/qnmeapositioninfosource/tst_qnmeapositioninfosource.cpp
deleted file mode 100644
index e99faa6d..00000000
--- a/tests/auto/qnmeapositioninfosource/tst_qnmeapositioninfosource.cpp
+++ /dev/null
@@ -1,605 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 Jolla Ltd.
-** Contact: Aaron McCarthy <aaron.mccarthy@jollamobile.com>
-** 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$
-**
-****************************************************************************/
-
-//TESTED_COMPONENT=src/location
-
-#include "tst_qnmeapositioninfosource.h"
-
-#include <QtCore/QDateTime>
-#include <QtCore/QElapsedTimer>
-#include <QtCore/QtNumeric>
-
-#ifdef Q_OS_WIN
-
-// Windows seems to require longer timeouts and step length
-// We override the standard QTestCase related macros
-
-#ifdef QTRY_COMPARE_WITH_TIMEOUT
-#undef QTRY_COMPARE_WITH_TIMEOUT
-#endif
-#define QTRY_COMPARE_WITH_TIMEOUT(__expr, __expected, __timeout) \
-do { \
- const int __step = 100; \
- const int __timeoutValue = __timeout; \
- if ((__expr) != (__expected)) { \
- QTest::qWait(0); \
- } \
- for (int __i = 0; __i < __timeoutValue && ((__expr) != (__expected)); __i+=__step) { \
- QTest::qWait(__step); \
- } \
- QCOMPARE(__expr, __expected); \
-} while (0)
-
-#ifdef QTRY_COMPARE
-#undef QTRY_COMPARE
-#endif
-#define QTRY_COMPARE(__expr, __expected) QTRY_COMPARE_WITH_TIMEOUT(__expr, __expected, 10000)
-
-#endif
-
-tst_QNmeaPositionInfoSource::tst_QNmeaPositionInfoSource(QNmeaPositionInfoSource::UpdateMode mode, QObject *parent)
- : QObject(parent),
- m_mode(mode)
-{
-}
-
-void tst_QNmeaPositionInfoSource::initTestCase()
-{
- qRegisterMetaType<QNmeaPositionInfoSource::UpdateMode>();
-}
-
-void tst_QNmeaPositionInfoSource::constructor()
-{
- QObject o;
- QNmeaPositionInfoSource source(m_mode, &o);
- QCOMPARE(source.updateMode(), m_mode);
- QCOMPARE(source.parent(), &o);
-}
-
-void tst_QNmeaPositionInfoSource::supportedPositioningMethods()
-{
- QNmeaPositionInfoSource source(m_mode);
- QCOMPARE(source.supportedPositioningMethods(), QNmeaPositionInfoSource::SatellitePositioningMethods);
-}
-
-void tst_QNmeaPositionInfoSource::minimumUpdateInterval()
-{
- QNmeaPositionInfoSource source(m_mode);
- QCOMPARE(source.minimumUpdateInterval(), 2);
-}
-
-void tst_QNmeaPositionInfoSource::userEquivalentRangeError()
-{
- QNmeaPositionInfoSource source(m_mode);
- QVERIFY(qIsNaN(source.userEquivalentRangeError()));
- source.setUserEquivalentRangeError(5.1);
- QVERIFY(qFuzzyCompare(source.userEquivalentRangeError(), 5.1));
-}
-
-void tst_QNmeaPositionInfoSource::setUpdateInterval_delayedUpdate()
-{
- // If an update interval is set, and an update is not available at a
- // particular interval, the source should emit the next update as soon
- // as it becomes available
-
- QNmeaPositionInfoSource source(m_mode);
- QNmeaProxyFactory factory;
- QNmeaPositionInfoSourceProxy *proxy = static_cast<QNmeaPositionInfoSourceProxy *>(
- factory.createPositionInfoSourceProxy(&source));
-
- QSignalSpy spyUpdate(proxy->source(), SIGNAL(positionUpdated(QGeoPositionInfo)));
- proxy->source()->setUpdateInterval(500);
- proxy->source()->startUpdates();
-
- QTest::qWait(600);
- QDateTime now = QDateTime::currentDateTime();
- proxy->feedUpdate(now);
- QTRY_COMPARE(spyUpdate.count(), 1);
-
- // should have gotten the update immediately, and not have needed to
- // wait until the next interval
- QVERIFY(now.time().msecsTo(QDateTime::currentDateTime().time()) < 400);
-}
-
-void tst_QNmeaPositionInfoSource::lastKnownPosition()
-{
- QNmeaPositionInfoSource source(m_mode);
- QNmeaProxyFactory factory;
- QNmeaPositionInfoSourceProxy *proxy = static_cast<QNmeaPositionInfoSourceProxy *>(
- factory.createPositionInfoSourceProxy(&source));
-
- QCOMPARE(proxy->source()->lastKnownPosition(), QGeoPositionInfo());
-
- // source may need requestUpdate() or startUpdates() to be called to
- // trigger reading of data channel
- QSignalSpy spyTimeout(proxy->source(), SIGNAL(errorOccurred(QGeoPositionInfoSource::Error)));
- proxy->source()->requestUpdate(proxy->source()->minimumUpdateInterval());
- QTRY_COMPARE(spyTimeout.count(), 1);
- const QList<QVariant> arguments = spyTimeout.takeFirst();
- const auto error = arguments.at(0).value<QGeoPositionInfoSource::Error>();
- QCOMPARE(error, QGeoPositionInfoSource::UpdateTimeoutError);
-
- // If an update is received and startUpdates() or requestUpdate() hasn't
- // been called, it should still be available through lastKnownPosition()
- QDateTime dt = QDateTime::currentDateTimeUtc();
- proxy->feedUpdate(dt);
- QTRY_COMPARE(proxy->source()->lastKnownPosition().timestamp(), dt);
-
- QList<QDateTime> dateTimes = createDateTimes(5);
- for (int i=0; i<dateTimes.count(); i++) {
- proxy->source()->requestUpdate(); // Irrelevant for this test
- proxy->feedUpdate(dateTimes[i]);
- QTRY_COMPARE(proxy->source()->lastKnownPosition().timestamp(), dateTimes[i]);
- }
-
- proxy->source()->startUpdates();
- // if dateTimes are older than before, they will be ignored.
- dateTimes = createDateTimes(dateTimes.last().addMSecs(100), 5);
- for (int i=0; i<dateTimes.count(); i++) {
- proxy->feedUpdate(dateTimes[i]);
- QTRY_COMPARE(proxy->source()->lastKnownPosition().timestamp(), dateTimes[i]);
- }
-}
-
-void tst_QNmeaPositionInfoSource::beginWithBufferedData()
-{
- // In SimulationMode, data stored in the QIODevice is read when
- // startUpdates() or requestUpdate() is called.
- // In RealTimeMode, all existing data in the QIODevice is ignored -
- // only new data will be read.
-
- QFETCH(QList<QDateTime>, dateTimes);
- QFETCH(UpdateTriggerMethod, trigger);
-
- QByteArray bytes;
- for (int i=0; i<dateTimes.count(); i++)
- bytes += QLocationTestUtils::createRmcSentence(dateTimes[i]).toLatin1();
- QBuffer buffer;
- buffer.setData(bytes);
-
- QNmeaPositionInfoSource source(m_mode);
- QSignalSpy spy(&source, SIGNAL(positionUpdated(QGeoPositionInfo)));
- source.setDevice(&buffer);
-
- if (trigger == StartUpdatesMethod)
- source.startUpdates();
- else if (trigger == RequestUpdatesMethod)
- source.requestUpdate();
-
- if (m_mode == QNmeaPositionInfoSource::RealTimeMode) {
- QTRY_COMPARE_WITH_TIMEOUT(spy.count(), 0, 300);
- } else {
- if (trigger == StartUpdatesMethod) {
- QTRY_COMPARE(spy.count(), dateTimes.count());
- for (int i=0; i<dateTimes.count(); i++)
- QCOMPARE(spy.at(i).at(0).value<QGeoPositionInfo>().timestamp(), dateTimes[i]);
- } else if (trigger == RequestUpdatesMethod) {
- QTRY_COMPARE(spy.count(), 1);
- QCOMPARE(spy.at(0).at(0).value<QGeoPositionInfo>().timestamp(), dateTimes.first());
- }
- }
-}
-
-void tst_QNmeaPositionInfoSource::beginWithBufferedData_data()
-{
- QTest::addColumn<QList<QDateTime> >("dateTimes");
- QTest::addColumn<UpdateTriggerMethod>("trigger");
-
- QList<QDateTime> dateTimes;
- dateTimes << QDateTime::currentDateTime().toUTC();
-
- QTest::newRow("startUpdates(), 1 update in buffer") << dateTimes << StartUpdatesMethod;
- QTest::newRow("requestUpdate(), 1 update in buffer") << dateTimes << RequestUpdatesMethod;
-
- for (int i=1; i<3; i++)
- dateTimes << dateTimes[0].addMSecs(i * 100);
- QTest::newRow("startUpdates(), multiple updates in buffer") << dateTimes << StartUpdatesMethod;
- QTest::newRow("requestUpdate(), multiple updates in buffer") << dateTimes << RequestUpdatesMethod;
-}
-
-void tst_QNmeaPositionInfoSource::startUpdates()
-{
- QFETCH(QList<QDateTime>, dateTimes);
-
- QNmeaPositionInfoSource source(m_mode);
- QNmeaProxyFactory factory;
- QNmeaPositionInfoSourceProxy *proxy = static_cast<QNmeaPositionInfoSourceProxy *>(
- factory.createPositionInfoSourceProxy(&source));
-
- QSignalSpy spyUpdate(proxy->source(), SIGNAL(positionUpdated(QGeoPositionInfo)));
- proxy->source()->startUpdates();
-
- for (int i=0; i<dateTimes.count(); i++)
- proxy->feedUpdate(dateTimes[i]);
- QTRY_COMPARE(spyUpdate.count(), dateTimes.count());
-}
-
-void tst_QNmeaPositionInfoSource::startUpdates_data()
-{
- QTest::addColumn<QList<QDateTime> >("dateTimes");
-
- QTest::newRow("1 update") << createDateTimes(1);
- QTest::newRow("2 updates") << createDateTimes(2);
- QTest::newRow("10 updates") << createDateTimes(10);
-}
-
-void tst_QNmeaPositionInfoSource::startUpdates_withTimeout()
-{
- QNmeaPositionInfoSource source(m_mode);
- QNmeaProxyFactory factory;
- QNmeaPositionInfoSourceProxy *proxy = static_cast<QNmeaPositionInfoSourceProxy *>(
- factory.createPositionInfoSourceProxy(&source));
-
- QSignalSpy spyUpdate(proxy->source(), SIGNAL(positionUpdated(QGeoPositionInfo)));
- QSignalSpy spyTimeout(proxy->source(), SIGNAL(errorOccurred(QGeoPositionInfoSource::Error)));
-
- proxy->source()->setUpdateInterval(1000);
- proxy->source()->startUpdates();
-
- QDateTime dt = QDateTime::currentDateTimeUtc();
-
- if (m_mode == QNmeaPositionInfoSource::SimulationMode) {
- // the first sentence primes the simulation
- proxy->feedBytes(QLocationTestUtils::createRmcSentence(dt).toLatin1());
- proxy->feedBytes(QLocationTestUtils::createRmcSentence(dt.addMSecs(10)).toLatin1());
- proxy->feedBytes(QLocationTestUtils::createRmcSentence(dt.addMSecs(1100)).toLatin1());
- proxy->feedBytes(QLocationTestUtils::createRmcSentence(dt.addMSecs(2200)).toLatin1());
- proxy->feedBytes(QLocationTestUtils::createRmcSentence(dt.addSecs(9)).toLatin1());
-
- QElapsedTimer t;
- t.start();
-
- for (int j = 1; j < 4; ++j) {
- QTRY_COMPARE(spyUpdate.count(), j);
- QCOMPARE(spyTimeout.count(), 0);
- int time = t.elapsed();
- QVERIFY((time > j*1000 - 300) && (time < j*1000 + 300));
- }
-
- spyUpdate.clear();
-
- QTRY_VERIFY_WITH_TIMEOUT((spyUpdate.count() == 0) && (spyTimeout.count() == 1), 7500);
- const QList<QVariant> arguments = spyTimeout.takeFirst();
- const auto error = arguments.at(0).value<QGeoPositionInfoSource::Error>();
- QCOMPARE(error, QGeoPositionInfoSource::UpdateTimeoutError);
- spyTimeout.clear();
-
- QTRY_VERIFY_WITH_TIMEOUT((spyUpdate.count() == 1) && (spyTimeout.count() == 0), 7500);
-
- } else {
- // dt + 900
- QTRY_VERIFY(spyUpdate.count() == 0 && spyTimeout.count() == 0);
-
- proxy->feedBytes(QLocationTestUtils::createRmcSentence(dt.addSecs(1)).toLatin1());
- // dt + 1200
- QTRY_VERIFY(spyUpdate.count() == 1 && spyTimeout.count() == 0);
- spyUpdate.clear();
-
- // dt + 1900
- QTRY_VERIFY(spyUpdate.count() == 0 && spyTimeout.count() == 0);
- proxy->feedBytes(QLocationTestUtils::createRmcSentence(dt.addSecs(2)).toLatin1());
-
- // dt + 2200
- QTRY_VERIFY(spyUpdate.count() == 1 && spyTimeout.count() == 0);
- spyUpdate.clear();
-
- // dt + 2900
- QTRY_VERIFY(spyUpdate.count() == 0 && spyTimeout.count() == 0);
- proxy->feedBytes(QLocationTestUtils::createRmcSentence(dt.addSecs(3)).toLatin1());
-
- // dt + 3200
- QTRY_VERIFY(spyUpdate.count() == 1 && spyTimeout.count() == 0);
- spyUpdate.clear();
-
- // dt + 6900
- QTRY_VERIFY(spyUpdate.count() == 0 && spyTimeout.count() == 1);
- const QList<QVariant> arguments = spyTimeout.takeFirst();
- const auto error = arguments.at(0).value<QGeoPositionInfoSource::Error>();
- QCOMPARE(error, QGeoPositionInfoSource::UpdateTimeoutError);
- spyTimeout.clear();
- proxy->feedBytes(QLocationTestUtils::createRmcSentence(dt.addSecs(7)).toLatin1());
-
- // dt + 7200
- QTRY_VERIFY(spyUpdate.count() == 1 && spyTimeout.count() == 0);
- spyUpdate.clear();
- }
-}
-
-void tst_QNmeaPositionInfoSource::startUpdates_expectLatestUpdateOnly()
-{
- // If startUpdates() is called and an interval has been set, if multiple'
- // updates are in the buffer, only the latest update should be emitted
-
- QNmeaPositionInfoSource source(m_mode);
- QNmeaProxyFactory factory;
- QNmeaPositionInfoSourceProxy *proxy = static_cast<QNmeaPositionInfoSourceProxy *>(
- factory.createPositionInfoSourceProxy(&source));
-
- QSignalSpy spyUpdate(proxy->source(), SIGNAL(positionUpdated(QGeoPositionInfo)));
- proxy->source()->setUpdateInterval(500);
- proxy->source()->startUpdates();
-
- QList<QDateTime> dateTimes = createDateTimes(3);
- for (int i=0; i<dateTimes.count(); i++)
- proxy->feedUpdate(dateTimes[i]);
-
- QTRY_COMPARE(spyUpdate.count(), 1);
- QCOMPARE(spyUpdate[0][0].value<QGeoPositionInfo>().timestamp(), dateTimes.last());
-}
-
-void tst_QNmeaPositionInfoSource::startUpdates_waitForValidDateTime()
-{
- // Tests that the class does not emit an update until it receives a
- // sentences with a valid date *and* time. All sentences before this
- // should be ignored, and any sentences received after this that do
- // not have a date should use the known date.
-
- QFETCH(QByteArray, bytes);
- QFETCH(QList<QDateTime>, dateTimes);
- QFETCH(QList<bool>, expectHorizontalAccuracy);
- QFETCH(QList<bool>, expectVerticalAccuracy);
-
- QNmeaPositionInfoSource source(m_mode);
- source.setUserEquivalentRangeError(5.1);
- QNmeaProxyFactory factory;
- QNmeaPositionInfoSourceProxy *proxy = static_cast<QNmeaPositionInfoSourceProxy *>(
- factory.createPositionInfoSourceProxy(&source));
-
- QSignalSpy spy(proxy->source(), SIGNAL(positionUpdated(QGeoPositionInfo)));
- QObject::connect(proxy->source(), &QNmeaPositionInfoSource::positionUpdated, [](const QGeoPositionInfo &info) {
- qDebug() << info.timestamp();
- });
-
- proxy->source()->startUpdates();
- proxy->feedBytes(bytes);
- QTest::qWait(1000); // default push delay is 20ms
- QTRY_COMPARE(spy.count(), dateTimes.count());
-
- for (int i=0; i<spy.count(); i++) {
- QGeoPositionInfo pInfo = spy[i][0].value<QGeoPositionInfo>();
-
- QCOMPARE(pInfo.timestamp(), dateTimes[i]);
-
- // Generated GGA/GSA sentences have hard coded HDOP of 3.5, which corrisponds to a
- // horizontal accuracy of 35.7, for the user equivalent range error of 5.1 set above.
- QCOMPARE(pInfo.hasAttribute(QGeoPositionInfo::HorizontalAccuracy),
- expectHorizontalAccuracy[i]);
- if (pInfo.hasAttribute(QGeoPositionInfo::HorizontalAccuracy))
- QVERIFY(qFuzzyCompare(pInfo.attribute(QGeoPositionInfo::HorizontalAccuracy), 35.7));
-
- // Generated GSA sentences have hard coded VDOP of 4.0, which corrisponds to a vertical
- // accuracy of 40.8, for the user equivalent range error of 5.1 set above.
- QCOMPARE(pInfo.hasAttribute(QGeoPositionInfo::VerticalAccuracy),
- expectVerticalAccuracy[i]);
- if (pInfo.hasAttribute(QGeoPositionInfo::VerticalAccuracy))
- QVERIFY(qFuzzyCompare(pInfo.attribute(QGeoPositionInfo::VerticalAccuracy), 40.8));
- }
-}
-
-void tst_QNmeaPositionInfoSource::startUpdates_waitForValidDateTime_data()
-{
- QTest::addColumn<QByteArray>("bytes");
- QTest::addColumn<QList<QDateTime> >("dateTimes");
- QTest::addColumn<QList<bool> >("expectHorizontalAccuracy");
- QTest::addColumn<QList<bool> >("expectVerticalAccuracy");
-
- QDateTime dt = QDateTime::currentDateTime().toUTC();
- QByteArray bytes;
-
- // should only receive RMC sentence and the GGA sentence *after* it
- bytes += QLocationTestUtils::createGgaSentence(dt.addMSecs(100).time()).toLatin1();
- bytes += QLocationTestUtils::createRmcSentence(dt.addMSecs(200)).toLatin1();
- bytes += QLocationTestUtils::createGgaSentence(dt.addMSecs(300).time()).toLatin1();
- // The first GGA does not have date, and there's no cached date to inject, so that update will be invalid
- QTest::newRow("Feed GGA,RMC,GGA; expect RMC, second GGA only")
- << bytes << (QList<QDateTime>() << dt.addMSecs(200) << dt.addMSecs(300))
- << (QList<bool>() << true << true) // accuracies are currently cached and injected in QGeoPositionInfos that do not have it
- << (QList<bool>() << false << false);
-
- // should not receive ZDA (has no coordinates) but should get the GGA
- // sentence after it since it got the date/time from ZDA
- bytes.clear();
- bytes += QLocationTestUtils::createGgaSentence(dt.addMSecs(100).time()).toLatin1();
- bytes += QLocationTestUtils::createZdaSentence(dt.addMSecs(200)).toLatin1();
- bytes += QLocationTestUtils::createGgaSentence(dt.addMSecs(300).time()).toLatin1();
- QTest::newRow("Feed GGA,ZDA,GGA; expect second GGA only")
- << bytes << (QList<QDateTime>() << dt.addMSecs(300))
- << (QList<bool>() << true)
- << (QList<bool>() << false);
-
- // Feed ZDA,GGA,GSA,GGA; expect vertical accuracy from second GGA.
- bytes.clear();
- bytes += QLocationTestUtils::createZdaSentence(dt.addMSecs(100)).toLatin1();
- bytes += QLocationTestUtils::createGgaSentence(dt.addMSecs(200).time()).toLatin1();
- bytes += QLocationTestUtils::createGsaSentence().toLatin1();
- bytes += QLocationTestUtils::createGgaSentence(dt.addMSecs(300).time()).toLatin1();
- if (m_mode == QNmeaPositionInfoSource::SimulationMode) {
- QTest::newRow("Feed ZDA,GGA,GSA,GGA; expect vertical accuracy from second GGA")
- << bytes << (QList<QDateTime>() << dt.addMSecs(200) << dt.addMSecs(300))
- << (QList<bool>() << true << true)
- << (QList<bool>() << true << true); // First GGA gets VDOP from GSA bundled into previous, as it has no timestamp, second GGA gets the cached value.
- }
-
- if (m_mode == QNmeaPositionInfoSource::SimulationMode) {
- // In sim m_mode, should ignore sentence with a date/time before the known date/time
- // (in real time m_mode, everything is passed on regardless)
- bytes.clear();
- bytes += QLocationTestUtils::createRmcSentence(dt.addMSecs(100)).toLatin1();
- bytes += QLocationTestUtils::createRmcSentence(dt.addMSecs(-200)).toLatin1();
- bytes += QLocationTestUtils::createRmcSentence(dt.addMSecs(200)).toLatin1();
- QTest::newRow("Feed good RMC, RMC with bad date/time, good RMC; expect first and third RMC only")
- << bytes << (QList<QDateTime>() << dt.addMSecs(100) << dt.addMSecs(200))
- << (QList<bool>() << false << false)
- << (QList<bool>() << false << false);
- }
-}
-
-void tst_QNmeaPositionInfoSource::requestUpdate_waitForValidDateTime()
-{
- QFETCH(QByteArray, bytes);
- QFETCH(QList<QDateTime>, dateTimes);
-
- QNmeaPositionInfoSource source(m_mode);
- QNmeaProxyFactory factory;
- QNmeaPositionInfoSourceProxy *proxy = static_cast<QNmeaPositionInfoSourceProxy *>(
- factory.createPositionInfoSourceProxy(&source));
-
- QSignalSpy spy(proxy->source(), SIGNAL(positionUpdated(QGeoPositionInfo)));
- proxy->source()->requestUpdate();
-
- proxy->feedBytes(bytes);
- QTRY_COMPARE(spy.count(), 1);
- QCOMPARE(spy[0][0].value<QGeoPositionInfo>().timestamp(), dateTimes[0]);
-}
-
-void tst_QNmeaPositionInfoSource::requestUpdate_waitForValidDateTime_data()
-{
- startUpdates_waitForValidDateTime_data();
-}
-
-void tst_QNmeaPositionInfoSource::requestUpdate()
-{
- QNmeaPositionInfoSource source(m_mode);
- QNmeaProxyFactory factory;
- QNmeaPositionInfoSourceProxy *proxy = static_cast<QNmeaPositionInfoSourceProxy *>(
- factory.createPositionInfoSourceProxy(&source));
-
- QSignalSpy spyUpdate(proxy->source(), SIGNAL(positionUpdated(QGeoPositionInfo)));
- QSignalSpy spyTimeout(proxy->source(), SIGNAL(errorOccurred(QGeoPositionInfoSource::Error)));
- QDateTime dt;
-
- proxy->source()->requestUpdate(100);
- QTRY_COMPARE(spyTimeout.count(), 1);
- auto error = spyTimeout[0][0].value<QGeoPositionInfoSource::Error>();
- QCOMPARE(error, QGeoPositionInfoSource::UpdateTimeoutError);
- spyTimeout.clear();
-
- dt = QDateTime::currentDateTimeUtc();
- proxy->feedUpdate(dt);
- proxy->source()->requestUpdate();
- QTRY_COMPARE(spyUpdate.count(), 1);
- QCOMPARE(spyUpdate[0][0].value<QGeoPositionInfo>().timestamp(), dt);
- QCOMPARE(spyTimeout.count(), 0);
- spyUpdate.clear();
-
- // delay the update and expect it to be emitted after 300ms
- dt = QDateTime::currentDateTimeUtc();
- proxy->source()->requestUpdate(1000);
- QTest::qWait(300);
- proxy->feedUpdate(dt);
- QTRY_COMPARE(spyUpdate.count(), 1);
- QCOMPARE(spyUpdate[0][0].value<QGeoPositionInfo>().timestamp(), dt);
- QCOMPARE(spyTimeout.count(), 0);
- spyUpdate.clear();
-
- // delay the update and expect errorOccurred() to be emitted
- dt = QDateTime::currentDateTimeUtc();
- proxy->source()->requestUpdate(500);
- QTest::qWait(1000);
- proxy->feedUpdate(dt);
- QCOMPARE(spyTimeout.count(), 1);
- error = spyTimeout[0][0].value<QGeoPositionInfoSource::Error>();
- QCOMPARE(error, QGeoPositionInfoSource::UpdateTimeoutError);
- QCOMPARE(spyUpdate.count(), 0);
- spyUpdate.clear();
-}
-
-void tst_QNmeaPositionInfoSource::requestUpdate_after_start()
-{
- QNmeaPositionInfoSource source(m_mode);
- QNmeaProxyFactory factory;
- QNmeaPositionInfoSourceProxy *proxy = static_cast<QNmeaPositionInfoSourceProxy *>(
- factory.createPositionInfoSourceProxy(&source));
-
- QSignalSpy spyUpdate(proxy->source(), SIGNAL(positionUpdated(QGeoPositionInfo)));
- QSignalSpy spyTimeout(proxy->source(), SIGNAL(errorOccurred(QGeoPositionInfoSource::Error)));
-
- // Start updates with 500ms interval and requestUpdate() with 100ms
- // timeout. Feed an update, and it should be emitted immediately due to
- // the requestUpdate(). The update should not be emitted again after that
- // (i.e. the startUpdates() interval should not cause it to be re-emitted).
-
- QDateTime dt = QDateTime::currentDateTimeUtc();
- proxy->source()->setUpdateInterval(500);
- proxy->source()->startUpdates();
- proxy->source()->requestUpdate(100);
- proxy->feedUpdate(dt);
- QTRY_COMPARE(spyUpdate.count(), 1);
- QCOMPARE(spyUpdate[0][0].value<QGeoPositionInfo>().timestamp(), dt);
- QCOMPARE(spyTimeout.count(), 0);
- spyUpdate.clear();
-
- // Update has been emitted for requestUpdate(), shouldn't be emitted for startUpdates()
- QTRY_COMPARE_WITH_TIMEOUT(spyUpdate.count(), 0, 1000);
-}
-
-void tst_QNmeaPositionInfoSource::testWithBadNmea()
-{
- QFETCH(QByteArray, bytes);
- QFETCH(QList<QDateTime>, dateTimes);
- QFETCH(UpdateTriggerMethod, trigger);
-
- QNmeaPositionInfoSource source(m_mode);
- QNmeaProxyFactory factory;
- QNmeaPositionInfoSourceProxy *proxy = static_cast<QNmeaPositionInfoSourceProxy *>(
- factory.createPositionInfoSourceProxy(&source));
-
- QSignalSpy spy(proxy->source(), SIGNAL(positionUpdated(QGeoPositionInfo)));
- if (trigger == StartUpdatesMethod)
- proxy->source()->startUpdates();
- else
- proxy->source()->requestUpdate();
-
- proxy->feedBytes(bytes);
- QTRY_COMPARE(spy.count(), dateTimes.count());
- for (int i=0; i<dateTimes.count(); i++)
- QCOMPARE(spy[i][0].value<QGeoPositionInfo>().timestamp(), dateTimes[i]);
-}
-
-void tst_QNmeaPositionInfoSource::testWithBadNmea_data()
-{
- QTest::addColumn<QByteArray>("bytes");
- QTest::addColumn<QList<QDateTime> >("dateTimes");
- QTest::addColumn<UpdateTriggerMethod>("trigger");
-
- QDateTime firstDateTime = QDateTime::currentDateTimeUtc();
- QByteArray bad = QLocationTestUtils::createRmcSentence(firstDateTime.addSecs(1)).toLatin1();
- bad = bad.mid(bad.length()/2);
- QDateTime lastDateTime = firstDateTime.addSecs(2);
-
- QByteArray bytes;
- bytes += QLocationTestUtils::createRmcSentence(firstDateTime).toLatin1();
- bytes += bad;
- bytes += QLocationTestUtils::createRmcSentence(lastDateTime).toLatin1();
- QTest::newRow("requestUpdate(), bad second sentence") << bytes
- << (QList<QDateTime>() << firstDateTime) << RequestUpdatesMethod;
- QTest::newRow("startUpdates(), bad second sentence") << bytes
- << (QList<QDateTime>() << firstDateTime << lastDateTime) << StartUpdatesMethod;
-}
diff --git a/tests/auto/qnmeapositioninfosource/tst_qnmeapositioninfosource.h b/tests/auto/qnmeapositioninfosource/tst_qnmeapositioninfosource.h
deleted file mode 100644
index 83cd284d..00000000
--- a/tests/auto/qnmeapositioninfosource/tst_qnmeapositioninfosource.h
+++ /dev/null
@@ -1,182 +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 "../qgeopositioninfosource/testqgeopositioninfosource_p.h"
-#include "../utils/qnmeaproxyfactory.h"
-#include "../utils/qlocationtestutils_p.h"
-
-#include <QtPositioning/qnmeapositioninfosource.h>
-
-#include <QTest>
-#include <QDir>
-#include <QDebug>
-#include <QBuffer>
-#include <QSignalSpy>
-#include <QMetaType>
-#include <QFile>
-#include <QTemporaryFile>
-#include <QHash>
-#include <QTimer>
-
-QT_USE_NAMESPACE
-Q_DECLARE_METATYPE(QNmeaPositionInfoSource::UpdateMode)
-Q_DECLARE_METATYPE(QList<QDateTime>)
-
-class tst_QNmeaPositionInfoSource : public QObject
-{
- Q_OBJECT
-
-public:
- enum UpdateTriggerMethod
- {
- StartUpdatesMethod,
- RequestUpdatesMethod
- };
-
- tst_QNmeaPositionInfoSource(QNmeaPositionInfoSource::UpdateMode mode, QObject *parent = 0);
-
-private:
- QList<QDateTime> createDateTimes(const QDateTime &dt, int count) const
- {
- QList<QDateTime> dateTimes;
- int interval = 100;
- for (int i=0; i<count; i++) {
- dateTimes << dt.addMSecs(interval);
- interval += 100;
- }
- return dateTimes;
- }
-
- QList<QDateTime> createDateTimes(int count) const
- {
- return createDateTimes(QDateTime::currentDateTime().toUTC(), count);
- }
-
-private slots:
- void initTestCase();
-
- void constructor();
-
- void supportedPositioningMethods();
-
- void minimumUpdateInterval();
-
- void userEquivalentRangeError();
-
- void setUpdateInterval_delayedUpdate();
-
- void lastKnownPosition();
-
- void beginWithBufferedData();
- void beginWithBufferedData_data();
-
- void startUpdates();
- void startUpdates_data();
-
- void startUpdates_withTimeout();
-
- void startUpdates_expectLatestUpdateOnly();
-
- void startUpdates_waitForValidDateTime();
- void startUpdates_waitForValidDateTime_data();
-
- void requestUpdate_waitForValidDateTime();
- void requestUpdate_waitForValidDateTime_data();
-
- void requestUpdate();
- void requestUpdate_after_start();
-
- void testWithBadNmea();
- void testWithBadNmea_data();
-
-private:
- QNmeaPositionInfoSource::UpdateMode m_mode;
-};
-
-Q_DECLARE_METATYPE(tst_QNmeaPositionInfoSource::UpdateTriggerMethod)
-
-//---------------------------------------------------
-
-class Feeder : public QObject
-{
- Q_OBJECT
-
-public:
- Feeder(QObject *parent)
- : QObject(parent)
- {
- }
-
- void start(QNmeaPositionInfoSourceProxy *proxy)
- {
- m_proxy = proxy;
- QTimer *timer = new QTimer(this);
- QObject::connect(timer, SIGNAL(timeout()), this, SLOT(timeout()));
- timer->setInterval(proxy->source()->minimumUpdateInterval()*2);
- timer->start();
- }
-
-public slots:
- void timeout()
- {
- m_proxy->feedBytes(QLocationTestUtils::createRmcSentence(QDateTime::currentDateTime()).toLatin1());
- }
-
-private:
- QNmeaPositionInfoSourceProxy *m_proxy;
-};
-
-//---------------------------------------------------
-
-
-class UnlimitedNmeaStream : public QIODevice
-{
- Q_OBJECT
-
-public:
- UnlimitedNmeaStream(QObject *parent) : QIODevice(parent) {}
-
-protected:
- qint64 readData(char *data, qint64 maxSize) override
- {
- QByteArray bytes = QLocationTestUtils::createRmcSentence(QDateTime::currentDateTime()).toLatin1();
- qint64 sz = qMin(qint64(bytes.size()), maxSize);
- memcpy(data, bytes.constData(), sz);
- return sz;
- }
-
- qint64 writeData(const char *, qint64) override
- {
- return -1;
- }
-
- qint64 bytesAvailable() const override
- {
- return 1024 + QIODevice::bytesAvailable();
- }
-};