summaryrefslogtreecommitdiff
path: root/tests/auto/positionplugin/plugin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/positionplugin/plugin.cpp')
-rw-r--r--tests/auto/positionplugin/plugin.cpp47
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 &parameters, QObject *parent=0);
~DummySource();
void startUpdates();
@@ -65,13 +65,19 @@ private slots:
void doTimeout();
};
-DummySource::DummySource(QObject *parent) :
+DummySource::DummySource(const QVariantMap &parameters, 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 &parameters);
+ QGeoSatelliteInfoSource *satelliteInfoSourceWithParameters(QObject *parent, const QVariantMap &parameters);
+ QGeoAreaMonitorSource *areaMonitorWithParameters(QObject *parent, const QVariantMap &parameters);
};
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 &parameters)
+{
+ return new DummySource(parameters, parent);
+}
+
+QGeoSatelliteInfoSource *QGeoPositionInfoSourceFactoryTest::satelliteInfoSourceWithParameters(QObject *parent, const QVariantMap &parameters)
+{
+ Q_UNUSED(parent);
+ Q_UNUSED(parameters)
+ return nullptr;
+}
+
+QGeoAreaMonitorSource *QGeoPositionInfoSourceFactoryTest::areaMonitorWithParameters(QObject *parent, const QVariantMap &parameters)
+{
Q_UNUSED(parent);
- return 0;
+ Q_UNUSED(parameters)
+ return nullptr;
}
#include "plugin.moc"