summaryrefslogtreecommitdiff
path: root/tests/auto/qgeopositioninfosource
diff options
context:
space:
mode:
authorAaron McCarthy <aaron.mccarthy@nokia.com>2012-06-04 12:54:27 +1000
committerQt by Nokia <qt-info@nokia.com>2012-06-05 03:12:41 +0200
commit2d9ed0b2ad942cc73f305b2e5907216bcc2c8be3 (patch)
treed804dd8c227d0c484198d1fa41e16350ac21bb39 /tests/auto/qgeopositioninfosource
parent9c7a832910923c1f3aeca61076a1d6866b3ddb9b (diff)
downloadqtlocation-2d9ed0b2ad942cc73f305b2e5907216bcc2c8be3.tar.gz
Improve QGeoPositionInfoSource test a bit.
No need to cast enum test data to an int. The last known position way be invalid if non-satellite based positioning is being used and we ask for the last known position from satellite methods. Change-Id: Ibe7474473d5525d8e2429b70802313c428639222 Reviewed-by: Ian Chen <ian.1.chen@nokia.com> Reviewed-by: Alex Wilson <alex.wilson@nokia.com>
Diffstat (limited to 'tests/auto/qgeopositioninfosource')
-rw-r--r--tests/auto/qgeopositioninfosource/testqgeopositioninfosource.cpp113
1 files changed, 54 insertions, 59 deletions
diff --git a/tests/auto/qgeopositioninfosource/testqgeopositioninfosource.cpp b/tests/auto/qgeopositioninfosource/testqgeopositioninfosource.cpp
index c6170ce9..f5e3f9bf 100644
--- a/tests/auto/qgeopositioninfosource/testqgeopositioninfosource.cpp
+++ b/tests/auto/qgeopositioninfosource/testqgeopositioninfosource.cpp
@@ -204,63 +204,60 @@ void TestQGeoPositionInfoSource::updateInterval()
void TestQGeoPositionInfoSource::setPreferredPositioningMethods()
{
- QFETCH(int, supported);
- QFETCH(int, preferred);
- QFETCH(int, resulting);
+ QFETCH(QGeoPositionInfoSource::PositioningMethod, supported);
+ QFETCH(QGeoPositionInfoSource::PositioningMethod, preferred);
+ QFETCH(QGeoPositionInfoSource::PositioningMethod, resulting);
MyPositionSource s;
- s.setSupportedPositioningMethods(
- static_cast<QGeoPositionInfoSource::PositioningMethods>(supported));
- s.setPreferredPositioningMethods(
- static_cast<QGeoPositionInfoSource::PositioningMethods>(preferred));
- QCOMPARE(s.preferredPositioningMethods(),
- static_cast<QGeoPositionInfoSource::PositioningMethods>(resulting));
+ s.setSupportedPositioningMethods(supported);
+ s.setPreferredPositioningMethods(preferred);
+ QCOMPARE(s.preferredPositioningMethods(), resulting);
}
void TestQGeoPositionInfoSource::setPreferredPositioningMethods_data()
{
- QTest::addColumn<int>("supported");
- QTest::addColumn<int>("preferred");
- QTest::addColumn<int>("resulting");
+ QTest::addColumn<QGeoPositionInfoSource::PositioningMethod>("supported");
+ QTest::addColumn<QGeoPositionInfoSource::PositioningMethod>("preferred");
+ QTest::addColumn<QGeoPositionInfoSource::PositioningMethod>("resulting");
QTest::newRow("Sat supported, Sat preferred")
- << int(QGeoPositionInfoSource::SatellitePositioningMethods)
- << int(QGeoPositionInfoSource::SatellitePositioningMethods)
- << int(QGeoPositionInfoSource::SatellitePositioningMethods);
+ << QGeoPositionInfoSource::SatellitePositioningMethods
+ << QGeoPositionInfoSource::SatellitePositioningMethods
+ << QGeoPositionInfoSource::SatellitePositioningMethods;
QTest::newRow("Sat supported, Non-Sat preferred")
- << int(QGeoPositionInfoSource::SatellitePositioningMethods)
- << int(QGeoPositionInfoSource::NonSatellitePositioningMethods)
- << int(QGeoPositionInfoSource::SatellitePositioningMethods);
+ << QGeoPositionInfoSource::SatellitePositioningMethods
+ << QGeoPositionInfoSource::NonSatellitePositioningMethods
+ << QGeoPositionInfoSource::SatellitePositioningMethods;
QTest::newRow("Sat supported, All preferred")
- << int(QGeoPositionInfoSource::SatellitePositioningMethods)
- << int(QGeoPositionInfoSource::AllPositioningMethods)
- << int(QGeoPositionInfoSource::SatellitePositioningMethods);
+ << QGeoPositionInfoSource::SatellitePositioningMethods
+ << QGeoPositionInfoSource::AllPositioningMethods
+ << QGeoPositionInfoSource::SatellitePositioningMethods;
QTest::newRow("Non-Sat supported, Sat preferred")
- << int(QGeoPositionInfoSource::NonSatellitePositioningMethods)
- << int(QGeoPositionInfoSource::SatellitePositioningMethods)
- << int(QGeoPositionInfoSource::NonSatellitePositioningMethods);
+ << QGeoPositionInfoSource::NonSatellitePositioningMethods
+ << QGeoPositionInfoSource::SatellitePositioningMethods
+ << QGeoPositionInfoSource::NonSatellitePositioningMethods;
QTest::newRow("Non-Sat supported, Non-Sat preferred")
- << int(QGeoPositionInfoSource::NonSatellitePositioningMethods)
- << int(QGeoPositionInfoSource::NonSatellitePositioningMethods)
- << int(QGeoPositionInfoSource::NonSatellitePositioningMethods);
+ << QGeoPositionInfoSource::NonSatellitePositioningMethods
+ << QGeoPositionInfoSource::NonSatellitePositioningMethods
+ << QGeoPositionInfoSource::NonSatellitePositioningMethods;
QTest::newRow("Non-Sat supported, All preferred")
- << int(QGeoPositionInfoSource::NonSatellitePositioningMethods)
- << int(QGeoPositionInfoSource::AllPositioningMethods)
- << int(QGeoPositionInfoSource::NonSatellitePositioningMethods);
+ << QGeoPositionInfoSource::NonSatellitePositioningMethods
+ << QGeoPositionInfoSource::AllPositioningMethods
+ << QGeoPositionInfoSource::NonSatellitePositioningMethods;
QTest::newRow("All supported, Sat preferred")
- << int(QGeoPositionInfoSource::AllPositioningMethods)
- << int(QGeoPositionInfoSource::SatellitePositioningMethods)
- << int(QGeoPositionInfoSource::SatellitePositioningMethods);
+ << QGeoPositionInfoSource::AllPositioningMethods
+ << QGeoPositionInfoSource::SatellitePositioningMethods
+ << QGeoPositionInfoSource::SatellitePositioningMethods;
QTest::newRow("All supported, Non-Sat preferred")
- << int(QGeoPositionInfoSource::AllPositioningMethods)
- << int(QGeoPositionInfoSource::NonSatellitePositioningMethods)
- << int(QGeoPositionInfoSource::NonSatellitePositioningMethods);
+ << QGeoPositionInfoSource::AllPositioningMethods
+ << QGeoPositionInfoSource::NonSatellitePositioningMethods
+ << QGeoPositionInfoSource::NonSatellitePositioningMethods;
QTest::newRow("All supported, All preferred")
- << int(QGeoPositionInfoSource::AllPositioningMethods)
- << int(QGeoPositionInfoSource::AllPositioningMethods)
- << int(QGeoPositionInfoSource::AllPositioningMethods);
+ << QGeoPositionInfoSource::AllPositioningMethods
+ << QGeoPositionInfoSource::AllPositioningMethods
+ << QGeoPositionInfoSource::AllPositioningMethods;
}
void TestQGeoPositionInfoSource::preferredPositioningMethods()
@@ -322,17 +319,13 @@ void TestQGeoPositionInfoSource::setUpdateInterval_data()
void TestQGeoPositionInfoSource::lastKnownPosition()
{
CHECK_SOURCE_VALID;
- QFETCH(int, positioningMethod);
+ QFETCH(QGeoPositionInfoSource::PositioningMethod, positioningMethod);
QFETCH(bool, lastKnownPositionArgument);
- QFETCH(bool, positionValid);
- QGeoPositionInfoSource::PositioningMethods method
- = static_cast<QGeoPositionInfoSource::PositioningMethods>(positioningMethod);
-
- if ((m_source->supportedPositioningMethods() & method) == 0)
+ if ((m_source->supportedPositioningMethods() & positioningMethod) == 0)
QSKIP("Not a supported positioning method for this position source");
- m_source->setPreferredPositioningMethods(method);
+ m_source->setPreferredPositioningMethods(positioningMethod);
QSignalSpy spy(m_source, SIGNAL(positionUpdated(const QGeoPositionInfo&)));
QSignalSpy timeout(m_source, SIGNAL(updateTimeout()));
@@ -357,14 +350,17 @@ void TestQGeoPositionInfoSource::lastKnownPosition()
QVERIFY((spy.count() > 0) && (timeout.count() == 0));
QList<QVariant> list = spy.takeFirst();
- QGeoPositionInfo info;
- info = list.at(0).value<QGeoPositionInfo>();
- QGeoPositionInfo lastPositioninfo;
- lastPositioninfo = m_source->lastKnownPosition(lastKnownPositionArgument);
-
- QCOMPARE(lastPositioninfo.isValid(), positionValid);
+ QGeoPositionInfo info = list.at(0).value<QGeoPositionInfo>();
+ QGeoPositionInfo lastPositioninfo = m_source->lastKnownPosition(lastKnownPositionArgument);
+
+ // lastPositioninfo is only gauranteed to be valid in all cases when only using satelite
+ // positioning methods or when lastKnownPositionArgument is false
+ if (!lastKnownPositionArgument ||
+ positioningMethod == QGeoPositionInfoSource::SatellitePositioningMethods) {
+ QVERIFY(lastPositioninfo.isValid());
+ }
- if (positionValid) {
+ if (lastPositioninfo.isValid()) {
QCOMPARE(info.coordinate(), lastPositioninfo.coordinate());
// On some CI machines the above evenloop code is not sufficient as positionUpdated
// still fires causing last know position and last update to be out of sync.
@@ -406,16 +402,15 @@ void TestQGeoPositionInfoSource::lastKnownPosition()
void TestQGeoPositionInfoSource::lastKnownPosition_data()
{
- QTest::addColumn<int>("positioningMethod");
+ QTest::addColumn<QGeoPositionInfoSource::PositioningMethod>("positioningMethod");
QTest::addColumn<bool>("lastKnownPositionArgument");
- QTest::addColumn<bool>("positionValid");
// no good way to determine on MeeGo what are supported. If we ask for all or non-satellites, we
// typically get geoclue-example provider, which is not suitable for this test.
- QTest::newRow("all - false") << int(QGeoPositionInfoSource::AllPositioningMethods) << false << true;
- QTest::newRow("all - true") << int(QGeoPositionInfoSource::AllPositioningMethods) << true << true;
- QTest::newRow("satellite - false") << int(QGeoPositionInfoSource::SatellitePositioningMethods) << false << true;
- QTest::newRow("satellite - true") << int(QGeoPositionInfoSource::SatellitePositioningMethods) << true << true;
+ QTest::newRow("all - false") << QGeoPositionInfoSource::AllPositioningMethods << false;
+ QTest::newRow("all - true") << QGeoPositionInfoSource::AllPositioningMethods << true;
+ QTest::newRow("satellite - false") << QGeoPositionInfoSource::SatellitePositioningMethods << false;
+ QTest::newRow("satellite - true") << QGeoPositionInfoSource::SatellitePositioningMethods << true;
}
void TestQGeoPositionInfoSource::minimumUpdateInterval()