diff options
Diffstat (limited to 'tests/auto/positionplugin/plugin.cpp')
-rw-r--r-- | tests/auto/positionplugin/plugin.cpp | 47 |
1 files changed, 37 insertions, 10 deletions
diff --git a/tests/auto/positionplugin/plugin.cpp b/tests/auto/positionplugin/plugin.cpp index a15a89a5..b6016b95 100644 --- a/tests/auto/positionplugin/plugin.cpp +++ b/tests/auto/positionplugin/plugin.cpp @@ -39,7 +39,7 @@ class DummySource : public QGeoPositionInfoSource Q_OBJECT public: - DummySource(QObject *parent=0); + DummySource(const QVariantMap ¶meters, QObject *parent=0); ~DummySource(); void startUpdates(); @@ -65,13 +65,19 @@ private slots: void doTimeout(); }; -DummySource::DummySource(QObject *parent) : +DummySource::DummySource(const QVariantMap ¶meters, QObject *parent) : QGeoPositionInfoSource(parent), timer(new QTimer(this)), timeoutTimer(new QTimer(this)), singleTimer(new QTimer(this)), lastPosition(QGeoCoordinate(0,0), QDateTime::currentDateTime()) { + if (parameters.contains(QStringLiteral("test.source.altitude"))) { + const qreal alti = parameters.value(QStringLiteral("test.source.altitude")).toReal(); + QGeoCoordinate crd = lastPosition.coordinate(); + crd.setAltitude(alti); + lastPosition.setCoordinate(crd); + } timer->setInterval(1000); connect(timer, SIGNAL(timeout()), this, SLOT(updatePosition())); @@ -157,7 +163,8 @@ void DummySource::updatePosition() const QDateTime now = QDateTime::currentDateTime(); QGeoCoordinate coord(lastPosition.coordinate().latitude() + 0.1, - lastPosition.coordinate().longitude() + 0.1); + lastPosition.coordinate().longitude() + 0.1, + lastPosition.coordinate().altitude()); QGeoPositionInfo info(coord, now); info.setAttribute(QGeoPositionInfo::Direction, lastPosition.coordinate().azimuthTo(coord)); @@ -179,35 +186,55 @@ void DummySource::doTimeout() } -class QGeoPositionInfoSourceFactoryTest : public QObject, public QGeoPositionInfoSourceFactory +class QGeoPositionInfoSourceFactoryTest : public QObject, public QGeoPositionInfoSourceFactoryV2 { Q_OBJECT Q_PLUGIN_METADATA(IID "org.qt-project.qt.position.sourcefactory/5.0" FILE "plugin.json") - Q_INTERFACES(QGeoPositionInfoSourceFactory) + Q_INTERFACES(QGeoPositionInfoSourceFactoryV2) public: QGeoPositionInfoSource *positionInfoSource(QObject *parent); QGeoSatelliteInfoSource *satelliteInfoSource(QObject *parent); QGeoAreaMonitorSource *areaMonitor(QObject *parent); + + QGeoPositionInfoSource *positionInfoSourceWithParameters(QObject *parent, const QVariantMap ¶meters); + QGeoSatelliteInfoSource *satelliteInfoSourceWithParameters(QObject *parent, const QVariantMap ¶meters); + QGeoAreaMonitorSource *areaMonitorWithParameters(QObject *parent, const QVariantMap ¶meters); }; QGeoPositionInfoSource *QGeoPositionInfoSourceFactoryTest::positionInfoSource(QObject *parent) { - return new DummySource(parent); + return new DummySource(QVariantMap(), parent); } QGeoSatelliteInfoSource *QGeoPositionInfoSourceFactoryTest::satelliteInfoSource(QObject *parent) { - Q_UNUSED(parent); - // not implemented - return 0; + return satelliteInfoSourceWithParameters(parent, QVariantMap()); } QGeoAreaMonitorSource *QGeoPositionInfoSourceFactoryTest::areaMonitor(QObject* parent) { + return areaMonitorWithParameters(parent, QVariantMap()); +} + +QGeoPositionInfoSource *QGeoPositionInfoSourceFactoryTest::positionInfoSourceWithParameters(QObject *parent, const QVariantMap ¶meters) +{ + return new DummySource(parameters, parent); +} + +QGeoSatelliteInfoSource *QGeoPositionInfoSourceFactoryTest::satelliteInfoSourceWithParameters(QObject *parent, const QVariantMap ¶meters) +{ + Q_UNUSED(parent); + Q_UNUSED(parameters) + return nullptr; +} + +QGeoAreaMonitorSource *QGeoPositionInfoSourceFactoryTest::areaMonitorWithParameters(QObject *parent, const QVariantMap ¶meters) +{ Q_UNUSED(parent); - return 0; + Q_UNUSED(parameters) + return nullptr; } #include "plugin.moc" |