summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorPaolo Angelelli <paolo.angelelli@qt.io>2017-07-18 11:26:29 +0200
committerPaolo Angelelli <paolo.angelelli@qt.io>2017-07-31 12:59:58 +0000
commit11da6dec6d47e7670482ed146cced92573cc0b85 (patch)
treedbfb0e3a4f48b1f5e827d48c2ffcf327d5cb3511 /tests
parenta4a8d12237c630017a0093823fa9dc9848620eed (diff)
downloadqtlocation-11da6dec6d47e7670482ed146cced92573cc0b85.tar.gz
Add camera capabilities + metadata to QGeoMapType/QDeclarativeGeoMapType
This patch enriches QGeoMapType/QDeclarativeGeoMapType embedding into this object the camera capabilities for this type, that are then exposed via a new QML Type, CameraCapabilities, and custom metadata in form of a QVariantMap, that can be accessed via the new metadata property. [ChangeLog][QtLocation][QDeclarativeGeoMapType] Added CameraCapabilities and metadata properties to QDeclarativeGeoMapType. Task-number: QTBUG-58931 Change-Id: I97a8852fbb3bbac88fdbf0d47e8247ea7ed1f31e Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/declarative_ui/tst_map.qml17
-rw-r--r--tests/auto/declarative_ui/tst_map_maptype.qml39
-rw-r--r--tests/auto/geotestplugin/qgeotiledmappingmanagerengine_test.h42
-rw-r--r--tests/auto/maptype/tst_maptype.cpp72
-rw-r--r--tests/auto/qgeocameratiles/tst_qgeocameratiles.cpp6
-rw-r--r--tests/auto/qgeotiledmap/tst_qgeotiledmap.cpp1
6 files changed, 129 insertions, 48 deletions
diff --git a/tests/auto/declarative_ui/tst_map.qml b/tests/auto/declarative_ui/tst_map.qml
index 846a621f..cd79952c 100644
--- a/tests/auto/declarative_ui/tst_map.qml
+++ b/tests/auto/declarative_ui/tst_map.qml
@@ -29,7 +29,7 @@
import QtQuick 2.0
import QtTest 1.0
import QtPositioning 5.5
-import QtLocation 5.9
+import QtLocation 5.10
Item {
width:100
@@ -237,6 +237,8 @@ Item {
//initial plugin values
compare(map.minimumZoomLevel, 0)
compare(map.maximumZoomLevel, 20)
+ compare(map.activeMapType.cameraCapabilities.minimumZoomLevel, 0)
+ compare(map.activeMapType.cameraCapabilities.maximumZoomLevel, 20)
//Higher min level than curr zoom, should change curr zoom
map.minimumZoomLevel = 5
@@ -260,6 +262,8 @@ Item {
map.zoomLevel = 18
map.maximumZoomLevel = 16
compare(map.zoomLevel, 16)
+ compare(map.activeMapType.cameraCapabilities.minimumZoomLevel, 0)
+ compare(map.activeMapType.cameraCapabilities.maximumZoomLevel, 20)
//reseting default
map.minimumZoomLevel = 0
@@ -275,6 +279,8 @@ Item {
//initial plugin values
compare(map.minimumTilt, 0)
compare(map.maximumTilt, 60)
+ compare(map.activeMapType.cameraCapabilities.minimumTilt, 0)
+ compare(map.activeMapType.cameraCapabilities.maximumTilt, 60)
//Higher min level than curr tilt, should change curr tilt
map.minimumTilt = 5
@@ -282,6 +288,9 @@ Item {
compare(map.tilt, 5)
compare(map.minimumTilt, 5)
compare(map.maximumTilt, 18)
+ // Capabilities remain the same
+ compare(map.activeMapType.cameraCapabilities.minimumTilt, 0)
+ compare(map.activeMapType.cameraCapabilities.maximumTilt, 60)
//Trying to set higher than max, max should be set.
map.maximumTilt = 61
@@ -315,6 +324,8 @@ Item {
//initial plugin values
compare(map.minimumFieldOfView, 45)
compare(map.maximumFieldOfView, 45)
+ compare(map.activeMapType.cameraCapabilities.minimumFieldOfView, 45)
+ compare(map.activeMapType.cameraCapabilities.maximumFieldOfView, 45)
map.minimumFieldOfView = 5
map.maximumFieldOfView = 18
@@ -327,6 +338,8 @@ Item {
// camera caps are [1-179], user previously asked for [5-18]
compare(map.minimumFieldOfView, 5)
compare(map.maximumFieldOfView, 18)
+ compare(map.activeMapType.cameraCapabilities.minimumFieldOfView, 1)
+ compare(map.activeMapType.cameraCapabilities.maximumFieldOfView, 179)
map.fieldOfView = 4
compare(map.fieldOfView, 5)
@@ -365,6 +378,8 @@ Item {
compare(map.minimumFieldOfView, 45)
compare(map.maximumFieldOfView, 45)
compare(map.fieldOfView, 45)
+ compare(map.activeMapType.cameraCapabilities.minimumFieldOfView, 45)
+ compare(map.activeMapType.cameraCapabilities.maximumFieldOfView, 45)
}
function test_zoom()
diff --git a/tests/auto/declarative_ui/tst_map_maptype.qml b/tests/auto/declarative_ui/tst_map_maptype.qml
index 1de30439..f4564ea6 100644
--- a/tests/auto/declarative_ui/tst_map_maptype.qml
+++ b/tests/auto/declarative_ui/tst_map_maptype.qml
@@ -28,7 +28,7 @@
import QtQuick 2.0
import QtTest 1.0
-import QtLocation 5.6
+import QtLocation 5.10
Item{
id: page
@@ -122,6 +122,13 @@ Item{
compare(map.minimumFieldOfView, 45)
compare(map.maximumFieldOfView, 45)
+ compare(map.activeMapType.cameraCapabilities.minimumZoomLevel, 0)
+ compare(map.activeMapType.cameraCapabilities.maximumZoomLevel, 20)
+ compare(map.activeMapType.cameraCapabilities.minimumTilt, 0)
+ compare(map.activeMapType.cameraCapabilities.maximumTilt, 60)
+ compare(map.activeMapType.cameraCapabilities.minimumFieldOfView, 45)
+ compare(map.activeMapType.cameraCapabilities.maximumFieldOfView, 45)
+
tryCompare(minimumZoomLevelChangedSpy, "count", 0)
tryCompare(maximumZoomLevelChangedSpy, "count", 0)
tryCompare(minimumTiltChangedSpy, "count", 0)
@@ -139,6 +146,13 @@ Item{
compare(map.minimumFieldOfView, 45)
compare(map.maximumFieldOfView, 45)
+ compare(map.activeMapType.cameraCapabilities.minimumZoomLevel, 0)
+ compare(map.activeMapType.cameraCapabilities.maximumZoomLevel, 20)
+ compare(map.activeMapType.cameraCapabilities.minimumTilt, 0)
+ compare(map.activeMapType.cameraCapabilities.maximumTilt, 60)
+ compare(map.activeMapType.cameraCapabilities.minimumFieldOfView, 45)
+ compare(map.activeMapType.cameraCapabilities.maximumFieldOfView, 45)
+
tryCompare(minimumZoomLevelChangedSpy, "count", 0)
tryCompare(maximumZoomLevelChangedSpy, "count", 0)
tryCompare(minimumTiltChangedSpy, "count", 0)
@@ -156,6 +170,13 @@ Item{
compare(map.minimumFieldOfView, 1)
compare(map.maximumFieldOfView, 179)
+ compare(map.activeMapType.cameraCapabilities.minimumZoomLevel, 0)
+ compare(map.activeMapType.cameraCapabilities.maximumZoomLevel, 19)
+ compare(map.activeMapType.cameraCapabilities.minimumTilt, 0)
+ compare(map.activeMapType.cameraCapabilities.maximumTilt, 80)
+ compare(map.activeMapType.cameraCapabilities.minimumFieldOfView, 1)
+ compare(map.activeMapType.cameraCapabilities.maximumFieldOfView, 179)
+
tryCompare(minimumZoomLevelChangedSpy, "count", 0)
tryCompare(maximumZoomLevelChangedSpy, "count", 1)
tryCompare(minimumTiltChangedSpy, "count", 0)
@@ -173,13 +194,29 @@ Item{
compare(map.minimumFieldOfView, 45)
compare(map.maximumFieldOfView, 45)
+ compare(map.activeMapType.cameraCapabilities.minimumZoomLevel, 0)
+ compare(map.activeMapType.cameraCapabilities.maximumZoomLevel, 20)
+ compare(map.activeMapType.cameraCapabilities.minimumTilt, 0)
+ compare(map.activeMapType.cameraCapabilities.maximumTilt, 60)
+ compare(map.activeMapType.cameraCapabilities.minimumFieldOfView, 45)
+ compare(map.activeMapType.cameraCapabilities.maximumFieldOfView, 45)
+
tryCompare(minimumZoomLevelChangedSpy, "count", 0)
tryCompare(maximumZoomLevelChangedSpy, "count", 2)
tryCompare(minimumTiltChangedSpy, "count", 0)
tryCompare(maximumTiltChangedSpy, "count", 2)
tryCompare(minimumFieldOfViewChangedSpy, "count", 2)
tryCompare(maximumFieldOfViewChangedSpy, "count", 2)
+ }
+ function test_maptype_metadata()
+ {
+ map.activeMapType = map.supportedMapTypes[0]
+ compare(Object.keys(map.activeMapType.metadata).length, 0)
+
+ map.activeMapType = map.supportedMapTypes[3]
+ compare(Object.keys(map.activeMapType.metadata).length, 1)
+ compare(map.activeMapType.metadata['foo'], 42)
}
}
}
diff --git a/tests/auto/geotestplugin/qgeotiledmappingmanagerengine_test.h b/tests/auto/geotestplugin/qgeotiledmappingmanagerengine_test.h
index 5f6f0116..0a7624ee 100644
--- a/tests/auto/geotestplugin/qgeotiledmappingmanagerengine_test.h
+++ b/tests/auto/geotestplugin/qgeotiledmappingmanagerengine_test.h
@@ -64,10 +64,22 @@ public:
const QByteArray pluginName = "qmlgeo.test.plugin";
QList<QGeoMapType> mapTypes;
- mapTypes << QGeoMapType(QGeoMapType::StreetMap, tr("StreetMap"), tr("StreetMap"), false, false, 1, pluginName);
- mapTypes << QGeoMapType(QGeoMapType::SatelliteMapDay, tr("SatelliteMapDay"), tr("SatelliteMapDay"), false, false, 2, pluginName);
- mapTypes << QGeoMapType(QGeoMapType::CycleMap, tr("CycleMap"), tr("CycleMap"), false, false, 3, pluginName);
- mapTypes << QGeoMapType(QGeoMapType::CustomMap, tr("AlternateCameraCapabilities"), tr("AlternateCameraCapabilities"), false, false, 4, pluginName);
+ mapTypes << QGeoMapType(QGeoMapType::StreetMap, tr("StreetMap"), tr("StreetMap"), false, false, 1, pluginName, capabilities);
+ mapTypes << QGeoMapType(QGeoMapType::SatelliteMapDay, tr("SatelliteMapDay"), tr("SatelliteMapDay"), false, false, 2, pluginName, capabilities);
+ mapTypes << QGeoMapType(QGeoMapType::CycleMap, tr("CycleMap"), tr("CycleMap"), false, false, 3, pluginName, capabilities);
+
+ QGeoCameraCapabilities capabilities4;
+ capabilities4.setMinimumZoomLevel(0.0);
+ capabilities4.setMaximumZoomLevel(19.0);
+ capabilities4.setSupportsBearing(true);
+ capabilities4.setSupportsTilting(true);
+ capabilities4.setMinimumTilt(0);
+ capabilities4.setMaximumTilt(80);
+ capabilities4.setMinimumFieldOfView(1);
+ capabilities4.setMaximumFieldOfView(179);
+ QVariantMap meta;
+ meta["foo"] = 42;
+ mapTypes << QGeoMapType(QGeoMapType::CustomMap, tr("AlternateCameraCapabilities"), tr("AlternateCameraCapabilities"), false, false, 4, pluginName, capabilities4, meta);
setSupportedMapTypes(mapTypes);
QGeoTileFetcherTest *fetcher = new QGeoTileFetcherTest(this);
@@ -91,28 +103,6 @@ public:
{
return new QGeoTiledMapTest(this);
}
-
- QGeoCameraCapabilities cameraCapabilities(int mapId) const Q_DECL_OVERRIDE
- {
- switch (mapId) {
- case 4:
- {
- QGeoCameraCapabilities capabilities;
- capabilities.setMinimumZoomLevel(0.0);
- capabilities.setMaximumZoomLevel(19.0);
- capabilities.setSupportsBearing(true);
- capabilities.setSupportsTilting(true);
- capabilities.setMinimumTilt(0);
- capabilities.setMaximumTilt(80);
- capabilities.setMinimumFieldOfView(1);
- capabilities.setMaximumFieldOfView(179);
- return capabilities;
- }
- default:
- return QGeoMappingManagerEngine::cameraCapabilities(mapId);
- }
- }
-
};
#endif
diff --git a/tests/auto/maptype/tst_maptype.cpp b/tests/auto/maptype/tst_maptype.cpp
index 43d3175c..f571158e 100644
--- a/tests/auto/maptype/tst_maptype.cpp
+++ b/tests/auto/maptype/tst_maptype.cpp
@@ -28,6 +28,7 @@
#include <QtCore/QString>
#include <QtTest/QtTest>
+#include <QVariantMap>
#include <QtLocation/private/qgeomaptype_p.h>
@@ -52,9 +53,18 @@ tst_MapType::tst_MapType() {}
void tst_MapType::constructorTest()
{
+ QGeoCameraCapabilities capabilities;
+ capabilities.setMinimumZoomLevel(0.0);
+ capabilities.setMaximumZoomLevel(20.0);
+ capabilities.setSupportsBearing(true);
+ capabilities.setSupportsTilting(true);
+ capabilities.setMinimumTilt(0);
+ capabilities.setMaximumTilt(60);
+ capabilities.setMinimumFieldOfView(20);
+ capabilities.setMaximumFieldOfView(90);
const QByteArray pluginName = "tst_MapType";
QGeoMapType *testObjPtr = new QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("street map"),
- QStringLiteral("map description"), true, true, 1, pluginName);
+ QStringLiteral("map description"), true, true, 1, pluginName, capabilities);
QVERIFY(testObjPtr);
QCOMPARE(testObjPtr->style(), QGeoMapType::StreetMap);
QCOMPARE(testObjPtr->name(), QStringLiteral("street map"));
@@ -63,6 +73,8 @@ void tst_MapType::constructorTest()
QVERIFY(testObjPtr->night());
QCOMPARE(testObjPtr->mapId(), 1);
QCOMPARE(testObjPtr->pluginName(), pluginName);
+ QCOMPARE(testObjPtr->cameraCapabilities(), capabilities);
+ QCOMPARE(testObjPtr->metadata(), QVariantMap());
delete testObjPtr;
testObjPtr = new QGeoMapType();
@@ -73,6 +85,7 @@ void tst_MapType::constructorTest()
QVERIFY2(!testObjPtr->night(), "Wrong default value");
QCOMPARE(testObjPtr->mapId(), 0);
QCOMPARE(testObjPtr->pluginName(), QByteArrayLiteral(""));
+ QCOMPARE(testObjPtr->cameraCapabilities(), QGeoCameraCapabilities());
delete testObjPtr;
}
@@ -83,57 +96,82 @@ void tst_MapType::comparison_data()
QTest::addColumn<bool>("expected");
const QByteArray pluginName = "tst_MapType";
+ QGeoCameraCapabilities capabilities;
+ capabilities.setMinimumZoomLevel(0.0);
+ capabilities.setMaximumZoomLevel(20.0);
+ capabilities.setSupportsBearing(true);
+ capabilities.setSupportsTilting(true);
+ capabilities.setMinimumTilt(0);
+ capabilities.setMaximumTilt(60);
+ capabilities.setMinimumFieldOfView(20);
+ capabilities.setMaximumFieldOfView(90);
+ QGeoCameraCapabilities capabilities2 = capabilities;
+ capabilities2.setMaximumFieldOfView(80);
QTest::newRow("null") << QGeoMapType() << QGeoMapType() << true;
QTest::newRow("equal") << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("street name"),
- QStringLiteral("street desc"), false, false, 42, pluginName)
+ QStringLiteral("street desc"), false, false, 42, pluginName, capabilities)
<< QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("street name"),
- QStringLiteral("street desc"), false, false, 42, pluginName)
+ QStringLiteral("street desc"), false, false, 42, pluginName, capabilities)
<< true;
QTest::newRow("style") << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("street name"),
- QStringLiteral("street desc"), false, false, 42, pluginName)
+ QStringLiteral("street desc"), false, false, 42, pluginName, capabilities)
<< QGeoMapType(QGeoMapType::TerrainMap, QStringLiteral("street name"),
- QStringLiteral("street desc"), false, false, 42, pluginName)
+ QStringLiteral("street desc"), false, false, 42, pluginName, capabilities)
<< false;
QTest::newRow("name") << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("street name"),
- QStringLiteral("street desc"), false, false, 42, pluginName)
+ QStringLiteral("street desc"), false, false, 42, pluginName, capabilities)
<< QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("different name"),
- QStringLiteral("street desc"), false, false, 42, pluginName)
+ QStringLiteral("street desc"), false, false, 42, pluginName, capabilities)
<< false;
QTest::newRow("description") << QGeoMapType(QGeoMapType::StreetMap,
QStringLiteral("street name"),
- QStringLiteral("street desc"), false, false, 42, pluginName)
+ QStringLiteral("street desc"), false, false, 42, pluginName, capabilities)
<< QGeoMapType(QGeoMapType::StreetMap,
QStringLiteral("street name"),
- QStringLiteral("different desc"), false, false, 42, pluginName)
+ QStringLiteral("different desc"), false, false, 42, pluginName, capabilities)
<< false;
QTest::newRow("mobile") << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("street name"),
- QStringLiteral("street desc"), false, false, 42, pluginName)
+ QStringLiteral("street desc"), false, false, 42, pluginName, capabilities)
<< QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("street name"),
- QStringLiteral("street desc"), true, false, 42, pluginName)
+ QStringLiteral("street desc"), true, false, 42, pluginName, capabilities)
<< false;
QTest::newRow("night") << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("street name"),
- QStringLiteral("street desc"), false, false, 42, pluginName)
+ QStringLiteral("street desc"), false, false, 42, pluginName, capabilities)
<< QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("street name"),
- QStringLiteral("street desc"), false, true, 42, pluginName)
+ QStringLiteral("street desc"), false, true, 42, pluginName, capabilities)
<< false;
QTest::newRow("id") << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("street name"),
- QStringLiteral("street desc"), false, false, 42, pluginName)
+ QStringLiteral("street desc"), false, false, 42, pluginName, capabilities)
<< QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("street name"),
- QStringLiteral("street desc"), false, false, 99, pluginName)
+ QStringLiteral("street desc"), false, false, 99, pluginName, capabilities)
<< false;
QTest::newRow("plugin_name") << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("street name"),
- QStringLiteral("street desc"), false, false, 42, pluginName)
+ QStringLiteral("street desc"), false, false, 42, pluginName, capabilities)
<< QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("street name"),
- QStringLiteral("street desc"), false, false, 42, QByteArrayLiteral("abc"))
+ QStringLiteral("street desc"), false, false, 42, QByteArrayLiteral("abc"), capabilities)
+ << false;
+
+ QTest::newRow("camera_capabilities") << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("street name"),
+ QStringLiteral("street desc"), false, false, 42, pluginName, capabilities)
+ << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("street name"),
+ QStringLiteral("street desc"), false, false, 42, pluginName, capabilities2)
+ << false;
+
+ QVariantMap metadata;
+ metadata["foo"] = 42;
+ QTest::newRow("metadata") << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("street name"),
+ QStringLiteral("street desc"), false, false, 42, pluginName, capabilities)
+ << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("street name"),
+ QStringLiteral("street desc"), false, false, 42, pluginName, capabilities, metadata)
<< false;
}
diff --git a/tests/auto/qgeocameratiles/tst_qgeocameratiles.cpp b/tests/auto/qgeocameratiles/tst_qgeocameratiles.cpp
index 0c664ba6..49c4657e 100644
--- a/tests/auto/qgeocameratiles/tst_qgeocameratiles.cpp
+++ b/tests/auto/qgeocameratiles/tst_qgeocameratiles.cpp
@@ -150,7 +150,7 @@ void tst_QGeoCameraTiles::tilesPlugin()
ct.setTileSize(16);
ct.setCameraData(camera);
ct.setScreenSize(QSize(32, 32));
- ct.setMapType(QGeoMapType(QGeoMapType::StreetMap, "street map", "street map", false, false, 1, QByteArrayLiteral("")));
+ ct.setMapType(QGeoMapType(QGeoMapType::StreetMap, "street map", "street map", false, false, 1, QByteArrayLiteral(""), QGeoCameraCapabilities()));
QSet<QGeoTileSpec> tiles1 = ct.createTiles();
@@ -202,7 +202,7 @@ void tst_QGeoCameraTiles::tilesMapType()
QSet<QGeoTileSpec> tiles1 = ct.createTiles();
- QGeoMapType mapType1 = QGeoMapType(QGeoMapType::StreetMap, "street map", "street map", false, false, 1, QByteArrayLiteral(""));
+ QGeoMapType mapType1 = QGeoMapType(QGeoMapType::StreetMap, "street map", "street map", false, false, 1, QByteArrayLiteral(""), QGeoCameraCapabilities());
ct.setMapType(mapType1);
QSet<QGeoTileSpec> tiles2 = ct.createTiles();
@@ -220,7 +220,7 @@ void tst_QGeoCameraTiles::tilesMapType()
QCOMPARE(tiles2, tiles2_check);
- QGeoMapType mapType2 = QGeoMapType(QGeoMapType::StreetMap, "satellite map", "satellite map", false, false, 2, QByteArrayLiteral(""));
+ QGeoMapType mapType2 = QGeoMapType(QGeoMapType::StreetMap, "satellite map", "satellite map", false, false, 2, QByteArrayLiteral(""), QGeoCameraCapabilities());
ct.setMapType(mapType2);
QSet<QGeoTileSpec> tiles3 = ct.createTiles();
diff --git a/tests/auto/qgeotiledmap/tst_qgeotiledmap.cpp b/tests/auto/qgeotiledmap/tst_qgeotiledmap.cpp
index ae0083ba..7eb1ed51 100644
--- a/tests/auto/qgeotiledmap/tst_qgeotiledmap.cpp
+++ b/tests/auto/qgeotiledmap/tst_qgeotiledmap.cpp
@@ -113,6 +113,7 @@ void tst_QGeoTiledMap::initTestCase()
m_map.reset(static_cast<QGeoTiledMapTest*>(mappingManager->createMap(this)));
QVERIFY(m_map);
m_map->setViewportSize(QSize(256, 256));
+ m_map->setActiveMapType(m_map->m_engine->supportedMapTypes().first());
m_fetcher = static_cast<QGeoTileFetcherTest*>(m_map->m_engine->tileFetcher());
m_tilesCounter.reset(new FetchTileCounter());
connect(m_fetcher, SIGNAL(tileFetched(const QGeoTileSpec&)), m_tilesCounter.data(), SLOT(tileFetched(const QGeoTileSpec&)));