void TestQGeoPositionInfoSource::requestUpdateBeforeStartUpdates_ZeroInterval() { CHECK_SOURCE_VALID; #if defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN) QSKIP("Real GPS not suitable for autotesting, skipping the test.", SkipAll); #endif QSignalSpy spyUpdate(m_source, SIGNAL(positionUpdated(const QGeoPositionInfo&))); QSignalSpy spyTimeout(m_source, SIGNAL(updateTimeout())); m_source->requestUpdate(7000); m_source->setUpdateInterval(0); m_source->startUpdates(); EXPECT_FAIL_WINCE_SEE_MOBILITY_337; QTRY_VERIFY_WITH_TIMEOUT((spyUpdate.count() >= 2) && (spyTimeout.count() == 0), 14000); spyUpdate.clear(); QTest::qWait(7000); EXPECT_FAIL_WINCE_SEE_MOBILITY_337; QCOMPARE(spyTimeout.count(), 0); m_source->stopUpdates(); }
//TC_ID_3_x_1 void TestQGeoPositionInfoSource::stopUpdates() { CHECK_SOURCE_VALID; #if defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN) QSKIP("Real GPS not suitable for autotesting, skipping the test.", SkipAll); #endif QSignalSpy spy(m_source, SIGNAL(positionUpdated(const QGeoPositionInfo&))); QSignalSpy timeout(m_source, SIGNAL(updateTimeout())); m_source->setUpdateInterval(7000); m_source->startUpdates(); for (int i = 0; i < 2; i++) { EXPECT_FAIL_WINCE_SEE_MOBILITY_337; QTRY_VERIFY_WITH_TIMEOUT((spy.count() > 0) && (timeout.count() == 0), 9500); spy.clear(); } m_source->stopUpdates(); QTest::qWait(9500); QCOMPARE(spy.count(), 0); spy.clear(); m_source->setUpdateInterval(0); m_source->startUpdates(); m_source->stopUpdates(); QTRY_COMPARE_WITH_TIMEOUT(spy.count(), 0, 9500); }
void TestQGeoPositionInfoSource::requestUpdateBeforeStartUpdates_ZeroInterval() { CHECK_SOURCE_VALID; QSignalSpy spyUpdate(m_source, SIGNAL(positionUpdated(const QGeoPositionInfo&))); QSignalSpy spyTimeout(m_source, SIGNAL(updateTimeout())); m_source->requestUpdate(7000); m_source->setUpdateInterval(0); m_source->startUpdates(); EXPECT_FAIL_WINCE_SEE_MOBILITY_337; QTRY_VERIFY_WITH_TIMEOUT((spyUpdate.count() >= 2) && (spyTimeout.count() == 0), 14000); spyUpdate.clear(); QTest::qWait(7000); EXPECT_FAIL_WINCE_SEE_MOBILITY_337; QCOMPARE(spyTimeout.count(), 0); m_source->stopUpdates(); }
void TestQGeoSatelliteInfoSource::requestUpdate_repeatedCalls() { CHECK_SOURCE_VALID; QSignalSpy spyView(m_source, SIGNAL(satellitesInViewUpdated(const QList<QGeoSatelliteInfo> &))); QSignalSpy spyUse(m_source, SIGNAL(satellitesInUseUpdated(const QList<QGeoSatelliteInfo> &))); m_source->requestUpdate(7000); QTRY_VERIFY_WITH_TIMEOUT((spyView.count() == 1) && (spyUse.count() == 1), 7000); spyView.clear(); spyUse.clear(); m_source->requestUpdate(7000); QTRY_VERIFY_WITH_TIMEOUT((spyView.count() == 1) && (spyUse.count() == 1), 7000); }
// TC_ID_3_x_3 : Call requestUpdate() with same value repeatedly void TestQGeoPositionInfoSource::requestUpdate_repeatedCalls() { CHECK_SOURCE_VALID; QSignalSpy spyUpdate(m_source, SIGNAL(positionUpdated(const QGeoPositionInfo&))); QSignalSpy spyTimeout(m_source, SIGNAL(updateTimeout())); m_source->requestUpdate(7000); EXPECT_FAIL_WINCE_SEE_MOBILITY_337; QTRY_VERIFY_WITH_TIMEOUT((spyUpdate.count() > 0) && (spyTimeout.count() == 0), 7000); spyUpdate.clear(); m_source->requestUpdate(7000); EXPECT_FAIL_WINCE_SEE_MOBILITY_337; QTRY_VERIFY_WITH_TIMEOUT((spyUpdate.count() > 0) && (spyTimeout.count() == 0), 7000); }
void TestQGeoSatelliteInfoSource::startUpdates_testIntervals() { CHECK_SOURCE_VALID; QSignalSpy spyView(m_source, SIGNAL(satellitesInViewUpdated(const QList<QGeoSatelliteInfo> &))); QSignalSpy spyUse(m_source, SIGNAL(satellitesInUseUpdated(const QList<QGeoSatelliteInfo> &))); QSignalSpy timeout(m_source, SIGNAL(requestTimeout())); m_source->setUpdateInterval(7000); int interval = m_source->updateInterval(); m_source->startUpdates(); 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)); spyView.clear(); spyUse.clear(); } m_source->stopUpdates(); }
void PlaceManagerUtils::doSavePlaces(QPlaceManager *manager, QList<QPlace> &places) { QPlaceIdReply *saveReply; foreach (QPlace place, places) { saveReply = manager->savePlace(place); QSignalSpy saveSpy(saveReply, SIGNAL(finished())); QTRY_VERIFY_WITH_TIMEOUT(saveSpy.count() == 1, Timeout); QCOMPARE(saveReply->error(), QPlaceReply::NoError); saveSpy.clear(); }
void TestQGeoSatelliteInfoSource::requestUpdate() { CHECK_SOURCE_VALID; QFETCH(int, timeout); QSignalSpy spy(m_source, SIGNAL(requestTimeout())); QSignalSpy spyView(m_source, SIGNAL(satellitesInViewUpdated(const QList<QGeoSatelliteInfo> &))); m_source->requestUpdate(timeout); // Geoclue may deliver update instantly if there is a satellite fix QTRY_VERIFY_WITH_TIMEOUT(!spy.isEmpty() || !spyView.isEmpty(), 10); }
void tst_QNetworkConfiguration::comparison() { //test copy constructor and assignment operator //compare invalid connection points QNetworkConfiguration pt1; QVERIFY(!pt1.isValid()); QVERIFY(pt1.type() == QNetworkConfiguration::Invalid); QNetworkConfiguration pt2(pt1); QVERIFY(pt1==pt2); QVERIFY(!(pt1!=pt2)); QVERIFY(pt1.name() == pt2.name()); QVERIFY(pt1.isValid() == pt2.isValid()); QVERIFY(pt1.type() == pt2.type()); QVERIFY(pt1.state() == pt2.state()); QVERIFY(pt1.purpose() == pt2.purpose()); QNetworkConfiguration pt3; pt3 = pt1; QVERIFY(pt1==pt3); QVERIFY(!(pt1!=pt3)); QVERIFY(pt1.name() == pt3.name()); QVERIFY(pt1.isValid() == pt3.isValid()); QVERIFY(pt1.type() == pt3.type()); QVERIFY(pt1.state() == pt3.state()); QVERIFY(pt1.purpose() == pt3.purpose()); //test case must run on machine that has valid connection points QNetworkConfigurationManager manager; QList<QNetworkConfiguration> preScanConfigs = manager.allConfigurations(); QSignalSpy spy(&manager, SIGNAL(updateCompleted())); manager.updateConfigurations(); //initiate scans QTRY_VERIFY_WITH_TIMEOUT(spy.count() == 1, TestTimeOut); //wait for scan to complete QList<QNetworkConfiguration> configs = manager.allConfigurations(QNetworkConfiguration::Discovered); QVERIFY(configs.count()); QNetworkConfiguration defaultConfig = manager.defaultConfiguration(); QVERIFY(defaultConfig.isValid()); QVERIFY(defaultConfig.type() != QNetworkConfiguration::Invalid); QVERIFY(!defaultConfig.name().isEmpty()); pt3 = defaultConfig; QVERIFY(defaultConfig==pt3); QVERIFY(!(defaultConfig!=pt3)); QVERIFY(defaultConfig.name() == pt3.name()); QVERIFY(defaultConfig.isValid() == pt3.isValid()); QVERIFY(defaultConfig.type() == pt3.type()); QVERIFY(defaultConfig.state() == pt3.state()); QVERIFY(defaultConfig.purpose() == pt3.purpose()); }
// TC_ID_3_x_3 : Call requestUpdate() with same value repeatedly void TestQGeoPositionInfoSource::requestUpdate_repeatedCalls() { CHECK_SOURCE_VALID; #if defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN) QSKIP("Real GPS not suitable for autotesting, skipping the test.", SkipAll); #endif QSignalSpy spyUpdate(m_source, SIGNAL(positionUpdated(const QGeoPositionInfo&))); QSignalSpy spyTimeout(m_source, SIGNAL(updateTimeout())); m_source->requestUpdate(7000); EXPECT_FAIL_WINCE_SEE_MOBILITY_337; QTRY_VERIFY_WITH_TIMEOUT((spyUpdate.count() > 0) && (spyTimeout.count() == 0), 7000); spyUpdate.clear(); m_source->requestUpdate(7000); EXPECT_FAIL_WINCE_SEE_MOBILITY_337; QTRY_VERIFY_WITH_TIMEOUT((spyUpdate.count() > 0) && (spyTimeout.count() == 0), 7000); }
void TestQGeoSatelliteInfoSource::stopUpdates() { CHECK_SOURCE_VALID; QSignalSpy spyView(m_source, SIGNAL(satellitesInViewUpdated(const QList<QGeoSatelliteInfo> &))); QSignalSpy spyUse(m_source, SIGNAL(satellitesInUseUpdated(const QList<QGeoSatelliteInfo> &))); m_source->setUpdateInterval(10000); m_source->startUpdates(); for (int i = 0; i < 2; i++) { QTRY_VERIFY_WITH_TIMEOUT((spyView.count() == 1) && (spyUse.count() == 1), 12000); spyView.clear(); spyUse.clear(); } m_source->stopUpdates(); QTRY_VERIFY_WITH_TIMEOUT((spyView.count() == 0) && (spyUse.count() == 0), 12000); }
void TestQGeoSatelliteInfoSource::requestUpdateBeforeStartUpdates_SmallInterval() { CHECK_SOURCE_VALID; QSignalSpy spyView(m_source, SIGNAL(satellitesInViewUpdated(const QList<QGeoSatelliteInfo> &))); QSignalSpy spyUse(m_source, SIGNAL(satellitesInUseUpdated(const QList<QGeoSatelliteInfo> &))); QSignalSpy timeout(m_source, SIGNAL(requestTimeout())); m_source->requestUpdate(7000); m_source->setUpdateInterval(10000); m_source->startUpdates(); QTRY_VERIFY_WITH_TIMEOUT((spyView.count() > 0) && (spyUse.count() > 0) && (timeout.count() == 0), 7000); spyView.clear(); spyUse.clear(); QTRY_VERIFY_WITH_TIMEOUT((spyView.count() > 0) && (spyUse.count() > 0) && (timeout.count() == 0), 20000); m_source->stopUpdates(); }
void TestQGeoPositionInfoSource::requestUpdate_defaultTimeout() { CHECK_SOURCE_VALID; QSignalSpy spyUpdate(m_source, SIGNAL(positionUpdated(const QGeoPositionInfo&))); QSignalSpy spyTimeout(m_source, SIGNAL(updateTimeout())); m_source->requestUpdate(0); EXPECT_FAIL_WINCE_SEE_MOBILITY_337; // S60 emulator fail QTRY_VERIFY_WITH_TIMEOUT((spyUpdate.count() > 0) && (spyTimeout.count() == 0), 7000); }
void TestQGeoSatelliteInfoSource::removeSlotForRequestTimeout() { CHECK_SOURCE_VALID; bool i = connect(m_source, SIGNAL(requestTimeout()), this, SLOT(test_slot1())); QVERIFY(i==true); i = connect(m_source, SIGNAL(requestTimeout()), this, SLOT(test_slot2())); QVERIFY(i==true); i = disconnect(m_source, SIGNAL(requestTimeout()), this, SLOT(test_slot1())); QVERIFY(i==true); m_source->requestUpdate(-1); QTRY_VERIFY_WITH_TIMEOUT((m_testSlot2Called == true), 1000); }
//TC_ID_3_x_2 void TestQGeoPositionInfoSource::startUpdates_testDefaultInterval() { CHECK_SOURCE_VALID; QSignalSpy spy(m_source, SIGNAL(positionUpdated(const QGeoPositionInfo&))); QSignalSpy timeout(m_source, SIGNAL(updateTimeout())); m_source->startUpdates(); for (int i = 0; i < 3; i++) { EXPECT_FAIL_WINCE_SEE_MOBILITY_337; QTRY_VERIFY_WITH_TIMEOUT((spy.count() > 0) && (timeout.count() == 0), 7000); spy.clear(); } m_source->stopUpdates(); }
void TestQGeoSatelliteInfoSource::removeSlotForSatellitesInViewUpdated() { CHECK_SOURCE_VALID; bool i = connect(m_source, SIGNAL(satellitesInViewUpdated(const QList<QGeoSatelliteInfo> &)), this, SLOT(test_slot1())); QVERIFY(i == true); i = connect(m_source, SIGNAL(satellitesInViewUpdated(const QList<QGeoSatelliteInfo> &)), this, SLOT(test_slot2())); QVERIFY(i == true); i = disconnect(m_source, SIGNAL(satellitesInViewUpdated(const QList<QGeoSatelliteInfo> &)), this, SLOT(test_slot1())); QVERIFY(i == true); m_source->requestUpdate(7000); QTRY_VERIFY_WITH_TIMEOUT((m_testSlot2Called == true), 7000); }
void TestQGeoSatelliteInfoSource::requestUpdate_validTimeout() { CHECK_SOURCE_VALID; QSignalSpy spyView(m_source, SIGNAL(satellitesInViewUpdated(const QList<QGeoSatelliteInfo> &))); QSignalSpy spyUse(m_source, SIGNAL(satellitesInUseUpdated(const QList<QGeoSatelliteInfo> &))); QSignalSpy spyTimeout(m_source, SIGNAL(requestTimeout())); m_source->requestUpdate(7000); QTRY_VERIFY_WITH_TIMEOUT( (spyView.count() == 1) && (spyUse.count() == 1 && (spyTimeout.count()) == 0), 7000); }
void TestQGeoPositionInfoSource::removeSlotForPositionUpdated() { CHECK_SOURCE_VALID; bool i = connect(m_source, SIGNAL(positionUpdated(const QGeoPositionInfo &)), this, SLOT(test_slot1())); QVERIFY(i == true); i = connect(m_source, SIGNAL(positionUpdated(const QGeoPositionInfo &)), this, SLOT(test_slot2())); QVERIFY(i == true); i = disconnect(m_source, SIGNAL(positionUpdated(const QGeoPositionInfo &)), this, SLOT(test_slot1())); QVERIFY(i == true); m_source->requestUpdate(7000); EXPECT_FAIL_WINCE_SEE_MOBILITY_337; QTRY_VERIFY_WITH_TIMEOUT((m_testSlot2Called == true), 7000); }
void TestQGeoPositionInfoSource::removeSlotForRequestTimeout() { CHECK_SOURCE_VALID; #if defined(Q_WS_MAEMO_6) QSKIP("Real GPS not suitable for autotesting, skipping the test.", SkipAll); #endif bool i = connect(m_source, SIGNAL(updateTimeout()), this, SLOT(test_slot1())); QVERIFY(i == true); i = connect(m_source, SIGNAL(updateTimeout()), this, SLOT(test_slot2())); QVERIFY(i == true); i = disconnect(m_source, SIGNAL(updateTimeout()), this, SLOT(test_slot1())); QVERIFY(i == true); m_source->requestUpdate(-1); QTRY_VERIFY_WITH_TIMEOUT((m_testSlot2Called == true), 1000); }
void TestQGeoSatelliteInfoSource::requestUpdate_overlappingCallsWithTimeout() { CHECK_SOURCE_VALID; QSignalSpy spyView(m_source, SIGNAL(satellitesInViewUpdated(const QList<QGeoSatelliteInfo> &))); QSignalSpy spyUse(m_source, SIGNAL(satellitesInUseUpdated(const QList<QGeoSatelliteInfo> &))); QSignalSpy spyTimeout(m_source, SIGNAL(requestTimeout())); m_source->requestUpdate(0); m_source->requestUpdate(1); QTRY_COMPARE_WITH_TIMEOUT(spyTimeout.count(), 0, 7000); QTRY_VERIFY_WITH_TIMEOUT((spyView.count() == 1) && (spyUse.count() == 1), 7000); }
void TestQGeoSatelliteInfoSource::startUpdates_moreThanOnce() { CHECK_SOURCE_VALID; QSignalSpy spyView(m_source, SIGNAL(satellitesInViewUpdated(const QList<QGeoSatelliteInfo> &))); QSignalSpy spyUse(m_source, SIGNAL(satellitesInUseUpdated(const QList<QGeoSatelliteInfo> &))); m_source->setUpdateInterval(0); m_source->startUpdates(); m_source->startUpdates(); // check there is no crash QTRY_VERIFY_WITH_TIMEOUT((spyView.count() > 0) && (spyUse.count() > 0), MAX_WAITING_TIME); m_source->startUpdates(); // check there is no crash m_source->stopUpdates(); }
void TestQGeoPositionInfoSource::startUpdates_moreThanOnce() { CHECK_SOURCE_VALID; QSignalSpy spy(m_source, SIGNAL(positionUpdated(const QGeoPositionInfo&))); QSignalSpy timeout(m_source, SIGNAL(updateTimeout())); m_source->setUpdateInterval(0); m_source->startUpdates(); m_source->startUpdates(); // check there is no crash EXPECT_FAIL_WINCE_SEE_MOBILITY_337; QTRY_VERIFY_WITH_TIMEOUT((spy.count() > 0) && (timeout.count() == 0), 7000); m_source->startUpdates(); // check there is no crash m_source->stopUpdates(); }
void TestQGeoPositionInfoSource::removeSlotForPositionUpdated() { CHECK_SOURCE_VALID; #if defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN) QSKIP("Real GPS not suitable for autotesting, skipping the test.", SkipAll); #endif bool i = connect(m_source, SIGNAL(positionUpdated(const QGeoPositionInfo &)), this, SLOT(test_slot1())); QVERIFY(i == true); i = connect(m_source, SIGNAL(positionUpdated(const QGeoPositionInfo &)), this, SLOT(test_slot2())); QVERIFY(i == true); i = disconnect(m_source, SIGNAL(positionUpdated(const QGeoPositionInfo &)), this, SLOT(test_slot1())); QVERIFY(i == true); m_source->requestUpdate(7000); EXPECT_FAIL_WINCE_SEE_MOBILITY_337; QTRY_VERIFY_WITH_TIMEOUT((m_testSlot2Called == true), 7000); }
void TestQGeoPositionInfoSource::startUpdates_moreThanOnce() { CHECK_SOURCE_VALID; #if defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN) QSKIP("Real GPS not suitable for autotesting, skipping the test.", SkipAll); #endif QSignalSpy spy(m_source, SIGNAL(positionUpdated(const QGeoPositionInfo&))); QSignalSpy timeout(m_source, SIGNAL(updateTimeout())); m_source->setUpdateInterval(0); m_source->startUpdates(); m_source->startUpdates(); // check there is no crash EXPECT_FAIL_WINCE_SEE_MOBILITY_337; QTRY_VERIFY_WITH_TIMEOUT((spy.count() > 0) && (timeout.count() == 0), 7000); m_source->startUpdates(); // check there is no crash m_source->stopUpdates(); }
// Testcase to check that values are passed correctly void TestQGeoPositionInfoSource::updateValues() { CHECK_SOURCE_VALID; QSignalSpy spy(m_source, SIGNAL(positionUpdated(const QGeoPositionInfo&))); m_source->startUpdates(); QTRY_VERIFY_WITH_TIMEOUT(!spy.isEmpty(), 2000); QList<QVariant> list = spy.takeFirst(); QGeoPositionInfo info; info = list.at(0).value<QGeoPositionInfo>(); QCOMPARE(qFuzzyCompare(info.coordinate().latitude(), 21), TRUE ); QCOMPARE(qFuzzyCompare(info.coordinate().longitude(), 31), TRUE ); QCOMPARE(qFuzzyCompare(info.coordinate().altitude(), 5.1), TRUE ); QCOMPARE(qFuzzyCompare(info.attribute(QGeoPositionInfo::HorizontalAccuracy), 8), TRUE ); QCOMPARE(qFuzzyCompare(info.attribute(QGeoPositionInfo::VerticalAccuracy), 9), TRUE ); QDateTime dateTime; dateTime.setTime_t(99998); // there is some rounding difference impacting at sec level // hence don't compare directly QCOMPARE(info.timestamp().date(),dateTime.date()); QCOMPARE(info.timestamp().time().hour(),dateTime.time().hour()); }
//TC_ID_3_x_1 void TestQGeoPositionInfoSource::startUpdates_testIntervals() { CHECK_SOURCE_VALID; QSignalSpy spy(m_source, SIGNAL(positionUpdated(const QGeoPositionInfo&))); QSignalSpy timeout(m_source, SIGNAL(updateTimeout())); m_source->setUpdateInterval(7000); int interval = m_source->updateInterval(); m_source->startUpdates(); EXPECT_FAIL_WINCE_SEE_MOBILITY_337; QTRY_COMPARE_WITH_TIMEOUT(spy.count(), 1, 9500); for (int i = 0; i < 6; i++) { EXPECT_FAIL_WINCE_SEE_MOBILITY_337; QTRY_VERIFY_WITH_TIMEOUT((spy.count() == 1) && (timeout.count() == 0), (interval*2)); spy.clear(); } m_source->stopUpdates(); }
void TestQGeoPositionInfoSource::robustness() { // Perform uneducated API calls and make sure it behaves QVERIFY(m_source); QGeoPositionInfo info = m_source->lastKnownPosition(true); QVERIFY(!info.isValid()); info = m_source->lastKnownPosition(false); QVERIFY(!info.isValid()); m_source->stopUpdates(); // Have changing source fail and check interface works. geocluemock_set_gcmaster_get_default(false); m_source->setPreferredPositioningMethods(QGeoPositionInfoSource::NonSatellitePositioningMethods); m_source->setUpdateInterval(1000); m_source->startUpdates(); m_source->requestUpdate(1000); m_source->stopUpdates(); info = m_source->lastKnownPosition(false); QVERIFY(!info.isValid()); geocluemock_set_gcmaster_get_default(true); // Check that the source is able to recover m_source->setPreferredPositioningMethods(QGeoPositionInfoSource::SatellitePositioningMethods); QSignalSpy updateSpy(m_source, SIGNAL(positionUpdated(const QGeoPositionInfo&))); QSignalSpy timeoutSpy(m_source, SIGNAL(updateTimeout())); m_source->startUpdates(); QTRY_VERIFY_WITH_TIMEOUT(!updateSpy.isEmpty(), 3000); info = updateSpy.takeLast().at(0).value<QGeoPositionInfo>(); QVERIFY(info.isValid()); QVERIFY(timeoutSpy.isEmpty()); // Successfully change source during active updates and check updates continue m_source->setPreferredPositioningMethods(QGeoPositionInfoSource::NonSatellitePositioningMethods); updateSpy.clear(); timeoutSpy.clear(); QTRY_VERIFY_WITH_TIMEOUT(!updateSpy.isEmpty(), 3000); info = updateSpy.takeLast().at(0).value<QGeoPositionInfo>(); QVERIFY(info.isValid()); QVERIFY(timeoutSpy.isEmpty()); // Change again successfully the source and check that the requestUpdate is delivered m_source->stopUpdates(); m_source->requestUpdate(2000); updateSpy.clear(); timeoutSpy.clear(); m_source->setPreferredPositioningMethods(QGeoPositionInfoSource::SatellitePositioningMethods); QTRY_VERIFY_WITH_TIMEOUT(!updateSpy.isEmpty(), 3000); info = updateSpy.takeLast().at(0).value<QGeoPositionInfo>(); QVERIFY(info.isValid()); QVERIFY(timeoutSpy.isEmpty()); // Change the source unsuccessfully and expect timeout m_source->startUpdates(); geocluemock_set_gcmaster_get_default(false); updateSpy.clear(); timeoutSpy.clear(); m_source->setPreferredPositioningMethods(QGeoPositionInfoSource::NonSatellitePositioningMethods); QTRY_VERIFY_WITH_TIMEOUT(!timeoutSpy.isEmpty(), 3000); QVERIFY(updateSpy.isEmpty()); geocluemock_set_gcmaster_get_default(true); // Issue a start to unsuccessfully changed source and expect timeout updateSpy.clear(); timeoutSpy.clear(); m_source->requestUpdate(2000); QTRY_VERIFY_WITH_TIMEOUT(!timeoutSpy.isEmpty(), 3000); QVERIFY(updateSpy.isEmpty()); // Set unknown preferred method and check it has no impact (first set successful method) m_source->setPreferredPositioningMethods(QGeoPositionInfoSource::SatellitePositioningMethods); updateSpy.clear(); timeoutSpy.clear(); m_source->startUpdates(); QTRY_VERIFY_WITH_TIMEOUT(!updateSpy.isEmpty(), 3000); m_source->setPreferredPositioningMethods((QGeoPositionInfoSource::PositioningMethods)555); updateSpy.clear(); timeoutSpy.clear(); QTRY_VERIFY_WITH_TIMEOUT(!updateSpy.isEmpty(), 3000); // Successfully change preferred method but without velocity geocluemock_set_geoclue_velocity_new(false); geocluemock_set_suppress_velocity_update(true); m_source->setPreferredPositioningMethods(QGeoPositionInfoSource::NonSatellitePositioningMethods); updateSpy.clear(); timeoutSpy.clear(); QTRY_VERIFY_WITH_TIMEOUT(!updateSpy.isEmpty(), 3000); info = updateSpy.takeLast().at(0).value<QGeoPositionInfo>(); QVERIFY(info.isValid()); QVERIFY(!info.hasAttribute(QGeoPositionInfo::GroundSpeed)); geocluemock_set_geoclue_velocity_new(true); geocluemock_set_suppress_velocity_update(false); // Unsuccessfully change source during active requestUpdate() m_source->stopUpdates(); geocluemock_set_suppress_single_update(true); // Justin Case m_source->requestUpdate(1000); geocluemock_set_gcmaster_get_default(false); updateSpy.clear(); timeoutSpy.clear(); m_source->setPreferredPositioningMethods(QGeoPositionInfoSource::NonSatellitePositioningMethods); QTRY_VERIFY_WITH_TIMEOUT(!timeoutSpy.isEmpty(), 3000); QVERIFY(updateSpy.isEmpty()); geocluemock_set_gcmaster_get_default(true); geocluemock_set_suppress_single_update(false); // Check that setting same positioning method does nothing. // First setup successful and check updates are received m_source->setPreferredPositioningMethods(QGeoPositionInfoSource::NonSatellitePositioningMethods); m_source->startUpdates(); updateSpy.clear(); timeoutSpy.clear(); QTRY_VERIFY_WITH_TIMEOUT(!updateSpy.isEmpty(), 3000); // then set creation to fail. however should not impact because // methods are the same geocluemock_set_gcmaster_get_default(false); m_source->setPreferredPositioningMethods(QGeoPositionInfoSource::NonSatellitePositioningMethods); updateSpy.clear(); timeoutSpy.clear(); QTRY_VERIFY_WITH_TIMEOUT(!updateSpy.isEmpty(), 3000); }
void TestQGeoPositionInfoSource::startUpdates_testIntervalChangesWhileRunning() { // There are two ways of dealing with an interval change, and we have left it system dependent. // The interval can be changed will running or after the next update. // WinCE uses the first method, S60 uses the second method. // The minimum interval on the symbian emulator is 5000 msecs, which is why the times in // this test are as high as they are. CHECK_SOURCE_VALID; #if defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN) QSKIP("Real GPS not suitable for autotesting, skipping the test.", SkipAll); #endif QSignalSpy spy(m_source, SIGNAL(positionUpdated(const QGeoPositionInfo&))); QSignalSpy timeout(m_source, SIGNAL(updateTimeout())); m_source->setUpdateInterval(0); m_source->startUpdates(); m_source->setUpdateInterval(0); EXPECT_FAIL_WINCE_SEE_MOBILITY_337; QTRY_VERIFY_WITH_TIMEOUT(spy.count() > 0, 7000); QCOMPARE(timeout.count(), 0); spy.clear(); m_source->setUpdateInterval(5000); EXPECT_FAIL_WINCE_SEE_MOBILITY_337; QTRY_VERIFY_WITH_TIMEOUT((spy.count() == 2) && (timeout.count() == 0), 15000); spy.clear(); m_source->setUpdateInterval(10000); EXPECT_FAIL_WINCE_SEE_MOBILITY_337; QTRY_VERIFY_WITH_TIMEOUT((spy.count() == 2) && (timeout.count() == 0), 30000); spy.clear(); m_source->setUpdateInterval(5000); EXPECT_FAIL_WINCE_SEE_MOBILITY_337; QTRY_VERIFY_WITH_TIMEOUT((spy.count() == 2) && (timeout.count() == 0), 15000); spy.clear(); m_source->setUpdateInterval(5000); EXPECT_FAIL_WINCE_SEE_MOBILITY_337; QTRY_VERIFY_WITH_TIMEOUT((spy.count() == 2) && (timeout.count() == 0), 15000); spy.clear(); m_source->setUpdateInterval(0); EXPECT_FAIL_WINCE_SEE_MOBILITY_337; QTRY_VERIFY_WITH_TIMEOUT((spy.count() == 1) && (timeout.count() == 0), 7000); spy.clear(); m_source->setUpdateInterval(0); EXPECT_FAIL_WINCE_SEE_MOBILITY_337; QTRY_VERIFY_WITH_TIMEOUT((spy.count() == 1) && (timeout.count() == 0), 7000); spy.clear(); m_source->stopUpdates(); }
void TestQGeoSatelliteInfoSource::startUpdates_testIntervalChangesWhileRunning() { // There are two ways of dealing with an interval change, and we have left it system dependent. // The interval can be changed will running or after the next update. // WinCE uses the first method, S60 uses the second method. // The minimum interval on the symbian emulator is 5000 msecs, which is why the times in // this test are as high as they are. CHECK_SOURCE_VALID; QSignalSpy spyView(m_source, SIGNAL(satellitesInViewUpdated(const QList<QGeoSatelliteInfo> &))); QSignalSpy spyUse(m_source, SIGNAL(satellitesInUseUpdated(const QList<QGeoSatelliteInfo> &))); QSignalSpy timeout(m_source, SIGNAL(requestTimeout())); m_source->setUpdateInterval(0); m_source->startUpdates(); m_source->setUpdateInterval(0); QTRY_VERIFY_WITH_TIMEOUT((spyView.count() > 0) && (spyUse.count() > 0), 7000); QCOMPARE(timeout.count(), 0); spyView.clear(); spyUse.clear(); m_source->setUpdateInterval(5000); QTRY_VERIFY_WITH_TIMEOUT((spyView.count() == 2) && (spyUse.count() == 2) && (timeout.count() == 0), 15000); spyView.clear(); spyUse.clear(); m_source->setUpdateInterval(10000); QTRY_VERIFY_WITH_TIMEOUT((spyView.count() == 2) && (spyUse.count() == 2) && (timeout.count() == 0), 30000); spyView.clear(); spyUse.clear(); m_source->setUpdateInterval(5000); QTRY_VERIFY_WITH_TIMEOUT((spyView.count() == 2) && (spyUse.count() == 2) && (timeout.count() == 0), 15000); spyView.clear(); spyUse.clear(); m_source->setUpdateInterval(5000); QTRY_VERIFY_WITH_TIMEOUT( (spyView.count() == 2) && (spyUse.count() == 2) && (timeout.count() == 0), 15000); spyView.clear(); spyUse.clear(); m_source->setUpdateInterval(0); QTRY_VERIFY_WITH_TIMEOUT( (spyView.count() > 0 ) && (spyUse.count() > 0) && (timeout.count() == 0), 7000); spyView.clear(); spyUse.clear(); m_source->setUpdateInterval(0); QTRY_VERIFY_WITH_TIMEOUT( (spyView.count() > 0 ) && (spyUse.count() > 0) && (timeout.count() == 0), 7000); spyView.clear(); spyUse.clear(); m_source->stopUpdates(); }
void LocalQmlProfilerRunnerTest::testRunner() { Debugger::AnalyzerConnection connection; LocalQmlProfilerRunner::Configuration configuration; configuration.debuggee.executable = "\\-/|\\-/"; configuration.debuggee.environment = Utils::Environment::systemEnvironment(); // should not be used anywhere but cannot be empty configuration.socket = connection.analyzerSocket = QString("invalid"); Debugger::AnalyzerRunControl *rc = Debugger::createAnalyzerRunControl( nullptr, ProjectExplorer::Constants::QML_PROFILER_RUN_MODE); rc->setConnection(connection); auto runner = new LocalQmlProfilerRunner(configuration, rc); bool running = false; int runCount = 0; auto connectRunner = [&]() { connect(runner, &LocalQmlProfilerRunner::started, this, [&running, &runCount](){ QVERIFY(!running); ++runCount; running = true; }); connect(runner, &LocalQmlProfilerRunner::stopped, this, [&running](){ QVERIFY(running); running = false; }); }; connectRunner(); rc->start(); QTRY_COMPARE_WITH_TIMEOUT(runCount, 1, 10000); QTRY_VERIFY_WITH_TIMEOUT(!running, 10000); configuration.socket = connection.analyzerSocket = LocalQmlProfilerRunner::findFreeSocket(); configuration.debuggee.executable = qApp->applicationFilePath(); // comma is used to specify a test function. In this case, an invalid one. configuration.debuggee.commandLineArguments = QString("-test QmlProfiler,"); delete rc; rc = Debugger::createAnalyzerRunControl( nullptr, ProjectExplorer::Constants::QML_PROFILER_RUN_MODE); rc->setConnection(connection); runner = new LocalQmlProfilerRunner(configuration, rc); connectRunner(); rc->start(); QTRY_COMPARE_WITH_TIMEOUT(runCount, 2, 10000); QTRY_VERIFY_WITH_TIMEOUT(!running, 10000); delete rc; configuration.debuggee.commandLineArguments.clear(); configuration.socket.clear(); connection.analyzerSocket.clear(); configuration.port = connection.analyzerPort = LocalQmlProfilerRunner::findFreePort(connection.analyzerHost); rc = Debugger::createAnalyzerRunControl( nullptr, ProjectExplorer::Constants::QML_PROFILER_RUN_MODE); rc->setConnection(connection); runner = new LocalQmlProfilerRunner(configuration, rc); connectRunner(); rc->start(); QTRY_COMPARE_WITH_TIMEOUT(runCount, 3, 10000); rc->stop(); QTRY_VERIFY_WITH_TIMEOUT(!running, 10000); delete rc; }