diff options
Diffstat (limited to 'tests/auto/positionplugin')
-rw-r--r-- | tests/auto/positionplugin/plugin.cpp | 29 | ||||
-rw-r--r-- | tests/auto/positionplugin/positionplugin.pro | 2 |
2 files changed, 28 insertions, 3 deletions
diff --git a/tests/auto/positionplugin/plugin.cpp b/tests/auto/positionplugin/plugin.cpp index b6016b95..9d5c7dd5 100644 --- a/tests/auto/positionplugin/plugin.cpp +++ b/tests/auto/positionplugin/plugin.cpp @@ -27,6 +27,7 @@ ****************************************************************************/ #include <QtPositioning/qgeopositioninfosource.h> +#include <QtPositioning/private/qgeopositioninfosource_p.h> #include <QtPositioning/qgeopositioninfosourcefactory.h> #include <QObject> #include <QtPlugin> @@ -65,15 +66,38 @@ private slots: void doTimeout(); }; +class DummySourcePrivate : public QGeoPositionInfoSourcePrivate +{ +public: + bool setBackendProperty(const QString &name, QVariant value) override + { + if (name == QStringLiteral("altitude")) { + m_altitude = value.toReal(); + return true; + } + return false; + } + QVariant backendProperty(const QString &name) const override + { + if (name == QStringLiteral("altitude")) + return m_altitude; + return QVariant(); + } + + qreal m_altitude = 0.0; +}; + DummySource::DummySource(const QVariantMap ¶meters, QObject *parent) : - QGeoPositionInfoSource(parent), + QGeoPositionInfoSource(*new DummySourcePrivate, parent), timer(new QTimer(this)), timeoutTimer(new QTimer(this)), singleTimer(new QTimer(this)), lastPosition(QGeoCoordinate(0,0), QDateTime::currentDateTime()) { + DummySourcePrivate *dd = static_cast<DummySourcePrivate *>(QGeoPositionInfoSourcePrivate::get(*this)); if (parameters.contains(QStringLiteral("test.source.altitude"))) { const qreal alti = parameters.value(QStringLiteral("test.source.altitude")).toReal(); + dd->m_altitude = alti; QGeoCoordinate crd = lastPosition.coordinate(); crd.setAltitude(alti); lastPosition.setCoordinate(crd); @@ -157,6 +181,7 @@ DummySource::~DummySource() void DummySource::updatePosition() { + DummySourcePrivate *dd = static_cast<DummySourcePrivate *>(QGeoPositionInfoSourcePrivate::get(*this)); timeoutTimer->stop(); singleTimer->stop(); @@ -164,7 +189,7 @@ void DummySource::updatePosition() QGeoCoordinate coord(lastPosition.coordinate().latitude() + 0.1, lastPosition.coordinate().longitude() + 0.1, - lastPosition.coordinate().altitude()); + dd->m_altitude); QGeoPositionInfo info(coord, now); info.setAttribute(QGeoPositionInfo::Direction, lastPosition.coordinate().azimuthTo(coord)); diff --git a/tests/auto/positionplugin/positionplugin.pro b/tests/auto/positionplugin/positionplugin.pro index 9ccd030f..84d08ac0 100644 --- a/tests/auto/positionplugin/positionplugin.pro +++ b/tests/auto/positionplugin/positionplugin.pro @@ -1,5 +1,5 @@ TARGET = qtposition_testplugin -QT += positioning +QT += positioning-private PLUGIN_TYPE = position PLUGIN_CLASS_NAME = QGeoPositionInfoSourceFactoryTest |