diff options
Diffstat (limited to 'tests/auto/qgeoroute/tst_qgeoroute.cpp')
-rw-r--r-- | tests/auto/qgeoroute/tst_qgeoroute.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/tests/auto/qgeoroute/tst_qgeoroute.cpp b/tests/auto/qgeoroute/tst_qgeoroute.cpp index 6cef9862..709597f8 100644 --- a/tests/auto/qgeoroute/tst_qgeoroute.cpp +++ b/tests/auto/qgeoroute/tst_qgeoroute.cpp @@ -27,6 +27,7 @@ ****************************************************************************/ #include "tst_qgeoroute.h" +#include "../geotestplugin/qgeoroutingmanagerengine_test.h" tst_QGeoRoute::tst_QGeoRoute() @@ -71,6 +72,13 @@ void tst_QGeoRoute::copy_constructor() { QGeoRoute *qgeoroutecopy = new QGeoRoute(*qgeoroute); QCOMPARE(*qgeoroute, *qgeoroutecopy); + + // CoW + qreal distance = qgeoroute->distance(); + qgeoroutecopy->setDistance(distance + 10.0); + + QVERIFY(*qgeoroute == *qgeoroutecopy); // QGeoRoute uses a QExplicitlySharedDataPointer. no implicit detach() + delete qgeoroutecopy; } @@ -263,7 +271,7 @@ void tst_QGeoRoute::operators() QVERIFY(qgeoroute->operator ==(*qgeoroutecopy)); QVERIFY(!qgeoroute->operator !=(*qgeoroutecopy)); - qgeoroute->setDistance(543.324); + qgeoroute->setDistance(543.324); // QExplicitlySharedDataPointer does not detach implicitly. qgeoroute->setRouteId("RouteId 111"); qgeoroute->setTravelMode(QGeoRouteRequest::PedestrianTravel); qgeoroute->setTravelTime(10); @@ -282,6 +290,14 @@ void tst_QGeoRoute::operators() QVERIFY(qgeoroute->operator ==(*qgeoroutecopy)); QVERIFY(!qgeoroute->operator !=(*qgeoroutecopy)); + + QGeoRouteAlt rAlt; + QGeoRoute r; + QCOMPARE(rAlt.travelTime(), 123456); + QCOMPARE(r.travelTime(), 0); + r = rAlt; + QCOMPARE(r.travelTime(), 123456); + delete qgeoroutecopy; } |