summaryrefslogtreecommitdiff
path: root/tests/auto/qgeosatelliteinfosource/testqgeosatelliteinfosource.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/qgeosatelliteinfosource/testqgeosatelliteinfosource.cpp')
-rw-r--r--tests/auto/qgeosatelliteinfosource/testqgeosatelliteinfosource.cpp117
1 files changed, 105 insertions, 12 deletions
diff --git a/tests/auto/qgeosatelliteinfosource/testqgeosatelliteinfosource.cpp b/tests/auto/qgeosatelliteinfosource/testqgeosatelliteinfosource.cpp
index c825cdad..d80385c8 100644
--- a/tests/auto/qgeosatelliteinfosource/testqgeosatelliteinfosource.cpp
+++ b/tests/auto/qgeosatelliteinfosource/testqgeosatelliteinfosource.cpp
@@ -46,6 +46,7 @@
#include "../utils/qlocationtestutils_p.h"
Q_DECLARE_METATYPE(QList<QGeoSatelliteInfo>)
+Q_DECLARE_METATYPE(QGeoSatelliteInfoSource::Error)
#define MAX_WAITING_TIME 50000
@@ -90,6 +91,8 @@ protected:
TestQGeoSatelliteInfoSource::TestQGeoSatelliteInfoSource(QObject *parent)
: QObject(parent)
{
+ qRegisterMetaType<QGeoSatelliteInfoSource::Error>();
+
m_testingDefaultSource = false;
}
@@ -167,23 +170,26 @@ void TestQGeoSatelliteInfoSource::createDefaultSource()
{
QObject *parent = new QObject;
QGeoSatelliteInfoSource *source = QGeoSatelliteInfoSource::createDefaultSource(parent);
- // Satellite sources are available when SATELLITE_SOURCE_AVAILABLE is defined
-#if defined(SATELLITE_SOURCE_AVAILABLE)
- QVERIFY(source != 0);
-#else
- QVERIFY(source == 0);
-#endif
+
+ // Check that default satellite source is successfully created.
+ if (!QGeoSatelliteInfoSource::availableSources().isEmpty())
+ QVERIFY(source);
+ else
+ QVERIFY(!source);
+
delete parent;
}
void TestQGeoSatelliteInfoSource::createDefaultSource_noParent()
{
QGeoSatelliteInfoSource *source = QGeoSatelliteInfoSource::createDefaultSource(0);
-#if defined(SATELLITE_SOURCE_AVAILABLE)
- QVERIFY(source != 0);
-#else
- QVERIFY(source == 0);
-#endif
+
+ // Check that default satellite source is successfully created.
+ if (!QGeoSatelliteInfoSource::availableSources().isEmpty())
+ QVERIFY(source);
+ else
+ QVERIFY(!source);
+
delete source;
}
@@ -246,10 +252,16 @@ void TestQGeoSatelliteInfoSource::startUpdates_testIntervals()
QSignalSpy spyUse(m_source,
SIGNAL(satellitesInUseUpdated(QList<QGeoSatelliteInfo>)));
QSignalSpy timeout(m_source, SIGNAL(requestTimeout()));
+ QSignalSpy errorSpy(m_source, SIGNAL(error(QGeoSatelliteInfoSource::Error)));
+
m_source->setUpdateInterval(7000);
int interval = m_source->updateInterval();
m_source->startUpdates();
+
+ if (!errorSpy.isEmpty())
+ QSKIP("Error starting satellite updates.");
+
QTRY_VERIFY_WITH_TIMEOUT((spyView.count() == 1) && (spyUse.count() == 1), 9500);
for (int i = 0; i < 6; i++) {
QTRY_VERIFY_WITH_TIMEOUT((spyView.count() == 1) && (spyUse.count() == 1) && (timeout.count() == 0), (interval*2));
@@ -275,10 +287,15 @@ void TestQGeoSatelliteInfoSource::startUpdates_testIntervalChangesWhileRunning()
QSignalSpy spyUse(m_source,
SIGNAL(satellitesInUseUpdated(QList<QGeoSatelliteInfo>)));
QSignalSpy timeout(m_source, SIGNAL(requestTimeout()));
+ QSignalSpy errorSpy(m_source, SIGNAL(error(QGeoSatelliteInfoSource::Error)));
+
m_source->setUpdateInterval(0);
m_source->startUpdates();
m_source->setUpdateInterval(0);
+ if (!errorSpy.isEmpty())
+ QSKIP("Error starting satellite updates.");
+
QTRY_VERIFY_WITH_TIMEOUT((spyView.count() > 0) && (spyUse.count() > 0), 7000);
QCOMPARE(timeout.count(), 0);
spyView.clear();
@@ -330,7 +347,13 @@ void TestQGeoSatelliteInfoSource::startUpdates_testDefaultInterval()
QSignalSpy spyUse(m_source,
SIGNAL(satellitesInUseUpdated(QList<QGeoSatelliteInfo>)));
QSignalSpy timeout(m_source, SIGNAL(requestTimeout()));
+ QSignalSpy errorSpy(m_source, SIGNAL(error(QGeoSatelliteInfoSource::Error)));
+
m_source->startUpdates();
+
+ if (!errorSpy.isEmpty())
+ QSKIP("Error starting satellite updates.");
+
for (int i = 0; i < 3; i++) {
QTRY_VERIFY_WITH_TIMEOUT( (spyView.count() > 0 ) && (spyUse.count() > 0) && (timeout.count() == 0), 7000);
spyView.clear();
@@ -347,9 +370,14 @@ void TestQGeoSatelliteInfoSource::startUpdates_testZeroInterval()
QSignalSpy spyUse(m_source,
SIGNAL(satellitesInUseUpdated(QList<QGeoSatelliteInfo>)));
QSignalSpy timeout(m_source, SIGNAL(requestTimeout()));
+ QSignalSpy errorSpy(m_source, SIGNAL(error(QGeoSatelliteInfoSource::Error)));
m_source->setUpdateInterval(0);
m_source->startUpdates();
+
+ if (!errorSpy.isEmpty())
+ QSKIP("Error starting satellite updates.");
+
for (int i = 0; i < 3; i++) {
QTRY_VERIFY_WITH_TIMEOUT( (spyView.count() > 0 ) && (spyUse.count() > 0) && (timeout.count() == 0), 7000);
spyView.clear();
@@ -365,9 +393,14 @@ void TestQGeoSatelliteInfoSource::startUpdates_moreThanOnce()
SIGNAL(satellitesInViewUpdated(QList<QGeoSatelliteInfo>)));
QSignalSpy spyUse(m_source,
SIGNAL(satellitesInUseUpdated(QList<QGeoSatelliteInfo>)));
+ QSignalSpy errorSpy(m_source, SIGNAL(error(QGeoSatelliteInfoSource::Error)));
+
m_source->setUpdateInterval(0);
m_source->startUpdates();
+ if (!errorSpy.isEmpty())
+ QSKIP("Error starting satellite updates.");
+
m_source->startUpdates(); // check there is no crash
QTRY_VERIFY_WITH_TIMEOUT((spyView.count() > 0) && (spyUse.count() > 0), MAX_WAITING_TIME);
@@ -379,16 +412,20 @@ void TestQGeoSatelliteInfoSource::startUpdates_moreThanOnce()
void TestQGeoSatelliteInfoSource::stopUpdates()
{
-
CHECK_SOURCE_VALID;
QSignalSpy spyView(m_source,
SIGNAL(satellitesInViewUpdated(QList<QGeoSatelliteInfo>)));
QSignalSpy spyUse(m_source,
SIGNAL(satellitesInUseUpdated(QList<QGeoSatelliteInfo>)));
+ QSignalSpy errorSpy(m_source, SIGNAL(error(QGeoSatelliteInfoSource::Error)));
+
m_source->setUpdateInterval(10000);
m_source->startUpdates();
+ if (!errorSpy.isEmpty())
+ QSKIP("Error starting satellite updates.");
+
for (int i = 0; i < 2; i++) {
QTRY_VERIFY_WITH_TIMEOUT((spyView.count() == 1) && (spyUse.count() == 1), 12000);
spyView.clear();
@@ -415,7 +452,13 @@ void TestQGeoSatelliteInfoSource::requestUpdate()
QSignalSpy spy(m_source, SIGNAL(requestTimeout()));
QSignalSpy spyView(m_source,
SIGNAL(satellitesInViewUpdated(QList<QGeoSatelliteInfo>)));
+ QSignalSpy errorSpy(m_source, SIGNAL(error(QGeoSatelliteInfoSource::Error)));
+
m_source->requestUpdate(timeout);
+
+ if (!errorSpy.isEmpty())
+ QSKIP("Error starting satellite updates.");
+
// Geoclue may deliver update instantly if there is a satellite fix
QTRY_VERIFY_WITH_TIMEOUT(!spy.isEmpty() || !spyView.isEmpty(), 10);
}
@@ -436,9 +479,13 @@ void TestQGeoSatelliteInfoSource::requestUpdate_validTimeout()
QSignalSpy spyUse(m_source,
SIGNAL(satellitesInUseUpdated(QList<QGeoSatelliteInfo>)));
QSignalSpy spyTimeout(m_source, SIGNAL(requestTimeout()));
+ QSignalSpy errorSpy(m_source, SIGNAL(error(QGeoSatelliteInfoSource::Error)));
m_source->requestUpdate(7000);
+ if (!errorSpy.isEmpty())
+ QSKIP("Error starting satellite updates.");
+
QTRY_VERIFY_WITH_TIMEOUT(
(spyView.count() == 1) && (spyUse.count() == 1 && (spyTimeout.count()) == 0), 7000);
}
@@ -452,9 +499,13 @@ void TestQGeoSatelliteInfoSource::requestUpdate_defaultTimeout()
QSignalSpy spyUse(m_source,
SIGNAL(satellitesInUseUpdated(QList<QGeoSatelliteInfo>)));
QSignalSpy spyTimeout(m_source, SIGNAL(requestTimeout()));
+ QSignalSpy errorSpy(m_source, SIGNAL(error(QGeoSatelliteInfoSource::Error)));
m_source->requestUpdate(0);
+ if (!errorSpy.isEmpty())
+ QSKIP("Error starting satellite updates.");
+
QTRY_VERIFY_WITH_TIMEOUT(
(spyView.count() == 1) && (spyUse.count() == 1 && (spyTimeout.count()) == 0),
MAX_WAITING_TIME);
@@ -465,8 +516,13 @@ void TestQGeoSatelliteInfoSource::requestUpdate_timeoutLessThanMinimumInterval()
CHECK_SOURCE_VALID;
QSignalSpy spyTimeout(m_source, SIGNAL(requestTimeout()));
+ QSignalSpy errorSpy(m_source, SIGNAL(error(QGeoSatelliteInfoSource::Error)));
+
m_source->requestUpdate(1);
+ if (!errorSpy.isEmpty())
+ QSKIP("Error starting satellite updates.");
+
QTRY_COMPARE_WITH_TIMEOUT(spyTimeout.count(), 1, 1000);
}
@@ -478,9 +534,13 @@ void TestQGeoSatelliteInfoSource::requestUpdate_repeatedCalls()
SIGNAL(satellitesInViewUpdated(QList<QGeoSatelliteInfo>)));
QSignalSpy spyUse(m_source,
SIGNAL(satellitesInUseUpdated(QList<QGeoSatelliteInfo>)));
+ QSignalSpy errorSpy(m_source, SIGNAL(error(QGeoSatelliteInfoSource::Error)));
m_source->requestUpdate(7000);
+ if (!errorSpy.isEmpty())
+ QSKIP("Error starting satellite updates.");
+
QTRY_VERIFY_WITH_TIMEOUT((spyView.count() == 1) && (spyUse.count() == 1), 7000);
spyView.clear();
spyUse.clear();
@@ -498,8 +558,13 @@ void TestQGeoSatelliteInfoSource::requestUpdate_overlappingCalls()
SIGNAL(satellitesInViewUpdated(QList<QGeoSatelliteInfo>)));
QSignalSpy spyUse(m_source,
SIGNAL(satellitesInUseUpdated(QList<QGeoSatelliteInfo>)));
+ QSignalSpy errorSpy(m_source, SIGNAL(error(QGeoSatelliteInfoSource::Error)));
m_source->requestUpdate(7000);
+
+ if (!errorSpy.isEmpty())
+ QSKIP("Error starting satellite updates.");
+
m_source->requestUpdate(7000);
QTRY_VERIFY_WITH_TIMEOUT((spyView.count() == 1) && (spyUse.count() == 1), 7000);
@@ -515,8 +580,13 @@ void TestQGeoSatelliteInfoSource::requestUpdate_overlappingCallsWithTimeout()
SIGNAL(satellitesInUseUpdated(QList<QGeoSatelliteInfo>)));
QSignalSpy spyTimeout(m_source,
SIGNAL(requestTimeout()));
+ QSignalSpy errorSpy(m_source, SIGNAL(error(QGeoSatelliteInfoSource::Error)));
m_source->requestUpdate(0);
+
+ if (!errorSpy.isEmpty())
+ QSKIP("Error starting satellite updates.");
+
m_source->requestUpdate(1);
QTRY_COMPARE_WITH_TIMEOUT(spyTimeout.count(), 0, 7000);
@@ -533,10 +603,14 @@ void TestQGeoSatelliteInfoSource::requestUpdateAfterStartUpdates_ZeroInterval()
QSignalSpy spyUse(m_source,
SIGNAL(satellitesInUseUpdated(QList<QGeoSatelliteInfo>)));
QSignalSpy spyTimeout(m_source, SIGNAL(requestTimeout()));
+ QSignalSpy errorSpy(m_source, SIGNAL(error(QGeoSatelliteInfoSource::Error)));
m_source->setUpdateInterval(0);
m_source->startUpdates();
+ if (!errorSpy.isEmpty())
+ QSKIP("Error starting satellite updates.");
+
QTRY_VERIFY_WITH_TIMEOUT((spyView.count() == 1) && (spyUse.count() == 1), MAX_WAITING_TIME);
spyView.clear();
spyUse.clear();
@@ -563,9 +637,14 @@ void TestQGeoSatelliteInfoSource::requestUpdateAfterStartUpdates_SmallInterval()
QSignalSpy spyUse(m_source,
SIGNAL(satellitesInUseUpdated(QList<QGeoSatelliteInfo>)));
QSignalSpy spyTimeout(m_source, SIGNAL(requestTimeout()));
+ QSignalSpy errorSpy(m_source, SIGNAL(error(QGeoSatelliteInfoSource::Error)));
+
m_source->setUpdateInterval(10000);
m_source->requestUpdate(7000);
+ if (!errorSpy.isEmpty())
+ QSKIP("Error starting satellite updates.");
+
m_source->startUpdates();
QTRY_VERIFY_WITH_TIMEOUT((spyView.count() > 0) && (spyUse.count() > 0)
@@ -587,9 +666,13 @@ void TestQGeoSatelliteInfoSource::requestUpdateBeforeStartUpdates_ZeroInterval()
QSignalSpy spyUse(m_source,
SIGNAL(satellitesInUseUpdated(QList<QGeoSatelliteInfo>)));
QSignalSpy timeout(m_source, SIGNAL(requestTimeout()));
+ QSignalSpy errorSpy(m_source, SIGNAL(error(QGeoSatelliteInfoSource::Error)));
m_source->requestUpdate(7000);
+ if (!errorSpy.isEmpty())
+ QSKIP("Error starting satellite updates.");
+
m_source->setUpdateInterval(0);
m_source->startUpdates();
@@ -612,9 +695,13 @@ void TestQGeoSatelliteInfoSource::requestUpdateBeforeStartUpdates_SmallInterval(
QSignalSpy spyUse(m_source,
SIGNAL(satellitesInUseUpdated(QList<QGeoSatelliteInfo>)));
QSignalSpy timeout(m_source, SIGNAL(requestTimeout()));
+ QSignalSpy errorSpy(m_source, SIGNAL(error(QGeoSatelliteInfoSource::Error)));
m_source->requestUpdate(7000);
+ if (!errorSpy.isEmpty())
+ QSKIP("Error starting satellite updates.");
+
m_source->setUpdateInterval(10000);
m_source->startUpdates();
@@ -657,6 +744,9 @@ void TestQGeoSatelliteInfoSource::removeSlotForSatellitesInUseUpdated()
m_source->requestUpdate(7000);
+ if (m_source->error() != QGeoSatelliteInfoSource::NoError)
+ QSKIP("Error starting satellite updates.");
+
QTRY_VERIFY_WITH_TIMEOUT((m_testSlot2Called == true), 7000);
}
@@ -673,6 +763,9 @@ void TestQGeoSatelliteInfoSource::removeSlotForSatellitesInViewUpdated()
m_source->requestUpdate(7000);
+ if (m_source->error() != QGeoSatelliteInfoSource::NoError)
+ QSKIP("Error starting satellite updates.");
+
QTRY_VERIFY_WITH_TIMEOUT((m_testSlot2Called == true), 7000);
}