diff options
author | Michal Klocek <michal.klocek@theqtcompany.com> | 2015-06-04 15:16:06 +0200 |
---|---|---|
committer | Michal Klocek <michal.klocek@theqtcompany.com> | 2015-06-09 15:33:56 +0000 |
commit | e8b225cbcc2249f545a98e94ba36b7aa159a4aba (patch) | |
tree | 38b1d06346c336a8a40a030b9889166459a4bf6b /tests | |
parent | 374077292b4be4a03eb8ca9a6eaae41e4de6f942 (diff) | |
download | qtlocation-e8b225cbcc2249f545a98e94ba36b7aa159a4aba.tar.gz |
Fix crash when calling setVisibleRegion and no plugin
Change-Id: I60824dc63f723c1d3fae00920f627fc66357f72c
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/declarative_ui/tst_map_error.qml | 180 |
1 files changed, 154 insertions, 26 deletions
diff --git a/tests/auto/declarative_ui/tst_map_error.qml b/tests/auto/declarative_ui/tst_map_error.qml index 96ce127f..1c5f4342 100644 --- a/tests/auto/declarative_ui/tst_map_error.qml +++ b/tests/auto/declarative_ui/tst_map_error.qml @@ -33,54 +33,182 @@ import QtQuick 2.0 import QtTest 1.0 -import QtLocation 5.3 -import QtPositioning 5.2 +import QtLocation 5.5 +import QtPositioning 5.5 import QtLocation.test 5.0 Item { id: page x: 0; y: 0; - width: 120 - height: 120 + width: 200 + height: 100 + + property variant coordinate: QtPositioning.coordinate(20, 20) Plugin { id: errorPlugin; - name: "qmlgeo.test.plugin" - allowExperimental: true - parameters: [ - PluginParameter { name: "error"; value: "1"}, - PluginParameter { name: "errorString"; value: "This error was expected. No worries !"} - ] - } + name: "qmlgeo.test.plugin" + allowExperimental: true + parameters: [ + PluginParameter { name: "error"; value: "1"}, + PluginParameter { name: "errorString"; value: "This error was expected. No worries !"} + ] + } Map { - id: map; + id: map_error_plugin; + property alias mouseClickedSpy: mouseClickedSpy1 x: 0; y: 0; width: 100; height: 100; plugin: errorPlugin; - center { - latitude: 20 - longitude: 20 - } MouseArea { - id: mouseArea + id: mouseArea1 objectName: "mouseArea" - x: 0; y: 0; width: 100; height: 100 + x: 25; y: 25; width: 50; height: 50; preventStealing: true } + + SignalSpy {id: mouseClickedSpy1; target: mouseArea1; signalName: "clicked"} } - SignalSpy {id: mouseClickedSpy; target: mouseArea; signalName: "clicked"} + Map { + id: map_no_plugin; + property alias mouseClickedSpy: mouseClickedSpy2 + x: 100; y: 0; width: 100; height: 100; + + MouseArea { + id: mouseArea2 + objectName: "mouseArea" + x: 25; y: 25; width: 50; height: 50; + preventStealing: true + } + + SignalSpy {id: mouseClickedSpy2; target: mouseArea2; signalName: "clicked"} + } TestCase { - name: "MouseAreaWithoutInitializedMap" + name: "MapErrorHandling" when: windowShown - function test_basic_click() { - wait(50); - mouseClick(map, 5, 25) - mouseClick(map, 5, 25) - mouseClick(map, 5, 25) - compare(mouseClickedSpy.count, 3) + function init() { + map_error_plugin.zoomLevel = 0 + map_no_plugin.zoomLevel = 0 + map_error_plugin.center = QtPositioning.coordinate(0, 0) + map_no_plugin.center = QtPositioning.coordinate(0, 0) + map_error_plugin.mouseClickedSpy.clear() + map_no_plugin.mouseClickedSpy.clear() + } + + function map_clicked(map) { + mouseClick(map, 5, 5) + mouseClick(map, 50, 50) + mouseClick(map, 50, 50) + mouseClick(map, 50, 50) + compare(map.mouseClickedSpy.count, 3) + } + + function test_map_clicked_wiht_no_plugin() { + map_clicked(map_no_plugin) + } + + function test_map_clicked_with_error_plugin() { + map_clicked(map_error_plugin) + } + + function test_map_no_supportedMapTypes() { + compare(map_no_plugin.supportedMapTypes.length , 0) + compare(map_error_plugin.supportedMapTypes.length , 0) + } + + function test_map_set_zoom_level() + { + map_no_plugin.zoomLevel = 9 + compare(map_no_plugin.zoomLevel,9) + map_error_plugin.zoomLevel = 9 + compare(map_error_plugin.zoomLevel,9) + } + + function test_map_set_center() + { + map_no_plugin.center = coordinate + verify(map_no_plugin.center === coordinate) + map_error_plugin.center = coordinate + verify(map_error_plugin.center === coordinate) + } + + function test_map_no_mapItems() + { + compare(map_no_plugin.mapItems.length , 0) + compare(map_error_plugin.mapItems.length , 0) + } + + function test_map_error() + { + compare(map_no_plugin.error , 0) + compare(map_no_plugin.errorString , "") + compare(map_error_plugin.error , 1) + compare(map_error_plugin.errorString ,"This error was expected. No worries !") + } + + function test_map_toCoordinate() + { + map_no_plugin.center = coordinate + compare(map_no_plugin.toCoordinate(50,50).isValid,false) + map_error_plugin.center = coordinate + compare(map_error_plugin.toCoordinate(50,50).isValid,false) + } + + function test_map_fromCoordinate() + { + verify(isNaN(map_error_plugin.fromCoordinate(coordinate).x)) + verify(isNaN(map_error_plugin.fromCoordinate(coordinate).y)) + verify(isNaN(map_no_plugin.fromCoordinate(coordinate).x)) + verify(isNaN(map_no_plugin.fromCoordinate(coordinate).y)) + } + + function test_map_gesture_enabled() + { + verify(map_error_plugin.gesture.enabled) + verify(map_no_plugin.gesture.enabled) + } + + function test_map_pan() + { + map_no_plugin.center = coordinate + map_no_plugin.pan(20,20) + verify(map_no_plugin.center === coordinate) + map_error_plugin.center = coordinate + map_error_plugin.pan(20,20) + verify(map_error_plugin.center === coordinate) + } + + function test_map_prefetchData() + { + map_error_plugin.prefetchData() + map_no_plugin.prefetchData() + } + + function test_map_fitViewportToMapItems() + { + map_error_plugin.fitViewportToMapItems() + map_no_plugin.fitViewportToMapItems() + } + + function test_map_fitViewportToGeoShape() + { + map_no_plugin.fitViewportToGeoShape(QtPositioning.circle(coordinate,1000)) + verify(map_no_plugin.center != coordinate) + map_error_plugin.fitViewportToGeoShape(QtPositioning.circle(coordinate,1000)) + verify(map_error_plugin.center != coordinate) + } + + function test_map_setVisibleRegion() + { + map_no_plugin.visibleRegion = QtPositioning.circle(coordinate,1000) + verify(map_no_plugin.center != coordinate) + verify(map_no_plugin.visibleRegion == QtPositioning.circle(coordinate,1000)) + map_error_plugin.visibleRegion = QtPositioning.circle(coordinate,1000) + verify(map_error_plugin.center != coordinate) + verify(map_no_plugin.visibleRegion == QtPositioning.circle(coordinate,1000)) } } } |