diff options
author | alex <alex.blasche@nokia.com> | 2011-12-14 15:28:15 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-12-19 02:09:38 +0100 |
commit | 98cf93c08e33aad4dd617d20e02c845cf053036a (patch) | |
tree | 965709029bab49ceb1a09063e054165806882f3e /tests/auto/qgeoroutingmanagerplugins | |
parent | 24a7188845f36eebab208ab626803663d8168ac2 (diff) | |
download | qtlocation-98cf93c08e33aad4dd617d20e02c845cf053036a.tar.gz |
Add unit tests for QGeoRouteSegment and QGeoRoutingManager
This includes a plug-in for testing the routing manager.
Change-Id: I8c8da33bf04831ffc3a20304293c338285b73e96
Reviewed-by: David Laing <david.laing@nokia.com>
Diffstat (limited to 'tests/auto/qgeoroutingmanagerplugins')
4 files changed, 248 insertions, 0 deletions
diff --git a/tests/auto/qgeoroutingmanagerplugins/qgeoroutingmanagerengine_test.h b/tests/auto/qgeoroutingmanagerplugins/qgeoroutingmanagerengine_test.h new file mode 100644 index 00000000..9128cebe --- /dev/null +++ b/tests/auto/qgeoroutingmanagerplugins/qgeoroutingmanagerengine_test.h @@ -0,0 +1,89 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QGEOROUTINGMANAGERENGINE_TEST_H +#define QGEOROUTINGMANAGERENGINE_TEST_H + +#include <qgeoserviceprovider.h> +#include <qgeoroutingmanagerengine.h> +#include <qgeocoordinate.h> +#include <qgeoroutereply.h> +#include <qgeorouterequest.h> + +QT_USE_NAMESPACE + +class QGeoRoutingManagerEngineTest: public QGeoRoutingManagerEngine + +{ +Q_OBJECT +public: + QGeoRoutingManagerEngineTest(const QMap<QString, QVariant> ¶meters, + QGeoServiceProvider::Error *error, QString *errorString) : + QGeoRoutingManagerEngine(parameters) + { + Q_UNUSED(error) + Q_UNUSED(errorString) + setSupportsRouteUpdates(true); + setSupportsAlternativeRoutes(true); + setSupportsExcludeAreas(true); + setSupportedTravelModes(QGeoRouteRequest::PedestrianTravel); + setSupportedFeatureTypes(QGeoRouteRequest::TollFeature); + setSupportedFeatureWeights(QGeoRouteRequest::PreferFeatureWeight); + setSupportedRouteOptimizations(QGeoRouteRequest::FastestRoute); + setSupportedSegmentDetails(QGeoRouteRequest::BasicSegmentData); + setSupportedManeuverDetails(QGeoRouteRequest::BasicManeuvers); + } + + QGeoRouteReply* calculateRoute(const QGeoRouteRequest& request) + { + return new QGeoRouteReply(QGeoRouteReply::NoError,"no error"); + } + + QGeoRouteReply* updateRoute(const QGeoRoute &route, const QGeoCoordinate &position) + { + return new QGeoRouteReply(QGeoRouteReply::CommunicationError,"no error"); + + } + + +}; + +#endif diff --git a/tests/auto/qgeoroutingmanagerplugins/qgeoroutingmanagerplugins.pro b/tests/auto/qgeoroutingmanagerplugins/qgeoroutingmanagerplugins.pro new file mode 100644 index 00000000..c5a39d3e --- /dev/null +++ b/tests/auto/qgeoroutingmanagerplugins/qgeoroutingmanagerplugins.pro @@ -0,0 +1,14 @@ +load(qt_plugin) + +TARGET = qtgeoservices_routingplugin +QT += location + +DESTDIR = $$QT.location.plugins/geoservices + +HEADERS += qgeoroutingmanagerengine_test.h \ + qgeoserviceproviderplugin_test.h + +SOURCES += qgeoserviceproviderplugin_test.cpp + +target.path += $$[QT_INSTALL_PLUGINS]/geoservices +INSTALLS += target diff --git a/tests/auto/qgeoroutingmanagerplugins/qgeoserviceproviderplugin_test.cpp b/tests/auto/qgeoroutingmanagerplugins/qgeoserviceproviderplugin_test.cpp new file mode 100644 index 00000000..bae893e9 --- /dev/null +++ b/tests/auto/qgeoroutingmanagerplugins/qgeoserviceproviderplugin_test.cpp @@ -0,0 +1,76 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qgeoserviceproviderplugin_test.h" +#include "qgeoroutingmanagerengine_test.h" + +#include <QtPlugin> + +QGeoServiceProviderFactoryTest::QGeoServiceProviderFactoryTest() +{ +} + +QGeoServiceProviderFactoryTest::~QGeoServiceProviderFactoryTest() +{ +} + +QString QGeoServiceProviderFactoryTest::providerName() const +{ + return "static.georoute.test.plugin"; +} + +QStringList QGeoServiceProviderFactoryTest::keys() const +{ + return QStringList() << QLatin1String("static.georoute.test.plugin"); +} + +int QGeoServiceProviderFactoryTest::providerVersion() const +{ + return 2; +} + +QGeoRoutingManagerEngine* QGeoServiceProviderFactoryTest::createRoutingManagerEngine(const QMap< + QString, QVariant> ¶meters, QGeoServiceProvider::Error *error, QString *errorString) const +{ + return new QGeoRoutingManagerEngineTest(parameters, error, errorString); +} + +Q_EXPORT_PLUGIN2(qtgeoservices_staticroutingplugin, QGeoServiceProviderFactoryTest) diff --git a/tests/auto/qgeoroutingmanagerplugins/qgeoserviceproviderplugin_test.h b/tests/auto/qgeoroutingmanagerplugins/qgeoserviceproviderplugin_test.h new file mode 100644 index 00000000..8ce4abdf --- /dev/null +++ b/tests/auto/qgeoroutingmanagerplugins/qgeoserviceproviderplugin_test.h @@ -0,0 +1,69 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QGEOSERVICEPROVIDER_TEST_H +#define QGEOSERVICEPROVIDER_TEST_H + +#include <qgeoserviceproviderfactory.h> +#include <QObject> + +QT_USE_NAMESPACE + +class QGeoServiceProviderFactoryTest: public QObject, public QGeoServiceProviderFactory +{ + Q_OBJECT + Q_INTERFACES(QGeoServiceProviderFactory:QFactoryInterface) +public: + QGeoServiceProviderFactoryTest(); + ~QGeoServiceProviderFactoryTest(); + + QString providerName() const; + int providerVersion() const; + QStringList keys() const; + + QGeoRoutingManagerEngine* createRoutingManagerEngine(const QMap<QString, QVariant> ¶meters, + QGeoServiceProvider::Error *error, QString *errorString) const; + +}; + +#endif + + |