From ad7bcebc575922fc7c5654c118794e5758d347d2 Mon Sep 17 00:00:00 2001 From: Paolo Angelelli Date: Tue, 5 Feb 2019 19:42:22 +0100 Subject: Add departure time attribute to route queries So that it can be used to improve the route calculation based on traffic information or other time-based information (ferries etc.) Change-Id: I8bdc81046484cc4f0ebfaffbdf6f034c555d7781 Fixes: QTBUG-70503 Reviewed-by: BogDan Vatra --- tests/auto/declarative_core/tst_routing.qml | 13 +++++++++++++ tests/auto/geotestplugin/qgeoroutingmanagerengine_test.h | 6 ++++++ tests/auto/qgeorouterequest/tst_qgeorouterequest.cpp | 16 ++++++++++++++++ tests/auto/qgeorouterequest/tst_qgeorouterequest.h | 2 ++ 4 files changed, 37 insertions(+) (limited to 'tests') diff --git a/tests/auto/declarative_core/tst_routing.qml b/tests/auto/declarative_core/tst_routing.qml index f5204f26..1d7c1e37 100644 --- a/tests/auto/declarative_core/tst_routing.qml +++ b/tests/auto/declarative_core/tst_routing.qml @@ -929,6 +929,19 @@ Item { compare (spy.count, 21) compare(model.get(0).path.length, 3); + // departure time + verify(!model.get(0).extendedAttributes["tst_departureTime"]) + var invalidDate = new Date("abc"); // to create an invalid date + var validDate = new Date("2011-02-07T11:05:00"); + + filledRouteQuery2.departureTime = validDate + tryCompare(spy, "count", 22) + compare(model.get(0).extendedAttributes["tst_departureTime"], validDate) + + filledRouteQuery2.departureTime = invalidDate + tryCompare (spy, "count", 23) + verify(!model.get(0).extendedAttributes["tst_departureTime"]) + // ReSetting filledRouteQuery.numberAlternativeRoutes = 0 filledRouteQuery2.numberAlternativeRoutes = 0 diff --git a/tests/auto/geotestplugin/qgeoroutingmanagerengine_test.h b/tests/auto/geotestplugin/qgeoroutingmanagerengine_test.h index 7a6d6cec..daf7a87d 100644 --- a/tests/auto/geotestplugin/qgeoroutingmanagerengine_test.h +++ b/tests/auto/geotestplugin/qgeoroutingmanagerengine_test.h @@ -187,6 +187,12 @@ public: } } + if (request.departureTime().isValid()) { + QVariantMap extendedAttributes = route.extendedAttributes(); + extendedAttributes["tst_departureTime"] = request.departureTime(); + route.setExtendedAttributes(extendedAttributes); + } + routes.append(route); } reply->callSetRoutes(routes); diff --git a/tests/auto/qgeorouterequest/tst_qgeorouterequest.cpp b/tests/auto/qgeorouterequest/tst_qgeorouterequest.cpp index d29e3d49..7f56689c 100644 --- a/tests/auto/qgeorouterequest/tst_qgeorouterequest.cpp +++ b/tests/auto/qgeorouterequest/tst_qgeorouterequest.cpp @@ -348,4 +348,20 @@ void tst_QGeoRouteRequest::extraParameters() QCOMPARE(qgeorouterequest->extraParameters(), emptyParams); } +void tst_QGeoRouteRequest::departureTime_data() +{ + QTest::addColumn("departureTime"); + + QTest::newRow("Invalid") << QDateTime(); + QTest::newRow("date1") << QDateTime(QDate(2012, 7, 6), QTime(23, 55, 0)); + QTest::newRow("date2") << QDateTime(QDate(2012, 7, 7), QTime(0, 5, 0)); +} + +void tst_QGeoRouteRequest::departureTime() +{ + QFETCH(QDateTime , departureTime); + qgeorouterequest->setDepartureTime(departureTime); + QCOMPARE(qgeorouterequest->departureTime(), departureTime); +} + QTEST_APPLESS_MAIN(tst_QGeoRouteRequest); diff --git a/tests/auto/qgeorouterequest/tst_qgeorouterequest.h b/tests/auto/qgeorouterequest/tst_qgeorouterequest.h index 12506cf6..ee10233d 100644 --- a/tests/auto/qgeorouterequest/tst_qgeorouterequest.h +++ b/tests/auto/qgeorouterequest/tst_qgeorouterequest.h @@ -74,6 +74,8 @@ private Q_SLOTS: void featureWeight_data(); void extraParameters(); void extraParameters_data(); + void departureTime(); + void departureTime_data(); //End Unit Test for QGeoRouteRequest private: -- cgit v1.2.3