| /**************************************************************************** |
| ** |
| ** Copyright (C) 2016 The Qt Company Ltd. |
| ** Contact: https://www.qt.io/licensing/ |
| ** |
| ** This file is part of the test suite of the Qt Toolkit. |
| ** |
| ** $QT_BEGIN_LICENSE:GPL-EXCEPT$ |
| ** Commercial License Usage |
| ** Licensees holding valid commercial Qt licenses may use this file in |
| ** accordance with the commercial license agreement provided with the |
| ** Software or, alternatively, in accordance with the terms contained in |
| ** a written agreement between you and The Qt Company. For licensing terms |
| ** and conditions see https://www.qt.io/terms-conditions. For further |
| ** information use the contact form at https://www.qt.io/contact-us. |
| ** |
| ** GNU General Public License Usage |
| ** Alternatively, this file may be used under the terms of the GNU |
| ** General Public License version 3 as published by the Free Software |
| ** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT |
| ** included in the packaging of this file. Please review the following |
| ** information to ensure the GNU General Public License requirements will |
| ** be met: https://www.gnu.org/licenses/gpl-3.0.html. |
| ** |
| ** $QT_END_LICENSE$ |
| ** |
| ****************************************************************************/ |
| |
| import QtQuick 2.0 |
| import QtTest 1.0 |
| import QtLocation 5.6 |
| import QtPositioning 5.5 |
| |
| Item { |
| id: page |
| x: 0; y: 0; |
| 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 !"} |
| ] |
| } |
| |
| Map { |
| id: map_error_plugin; |
| property alias mouseClickedSpy: mouseClickedSpy1 |
| x: 0; y: 0; width: 100; height: 100; plugin: errorPlugin; |
| |
| MouseArea { |
| id: mouseArea1 |
| objectName: "mouseArea" |
| x: 25; y: 25; width: 50; height: 50; |
| preventStealing: true |
| } |
| |
| SignalSpy {id: mouseClickedSpy1; target: mouseArea1; 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: "MapErrorHandling" |
| when: windowShown |
| |
| 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) |
| tryCompare(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(Qt.point(50,50)).isValid,false) |
| map_error_plugin.center = coordinate |
| compare(map_error_plugin.toCoordinate(Qt.point(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_setVisibleRegion() |
| { |
| map_no_plugin.visibleRegion = QtPositioning.circle(coordinate,1000) |
| verify(map_no_plugin.center != coordinate) |
| verify(map_no_plugin.visibleRegion.contains(coordinate.atDistanceAndAzimuth(1000,0)) == true) |
| verify(map_no_plugin.visibleRegion.contains(coordinate.atDistanceAndAzimuth(1000,90)) == true) |
| verify(map_no_plugin.visibleRegion.contains(coordinate.atDistanceAndAzimuth(1000,180)) == true) |
| verify(map_no_plugin.visibleRegion.contains(coordinate.atDistanceAndAzimuth(1000,270)) == true) |
| map_error_plugin.visibleRegion = QtPositioning.circle(coordinate,1000) |
| verify(map_error_plugin.center != coordinate) |
| verify(map_error_plugin.visibleRegion.contains(coordinate.atDistanceAndAzimuth(1000,0)) == true) |
| verify(map_error_plugin.visibleRegion.contains(coordinate.atDistanceAndAzimuth(1000,90)) == true) |
| verify(map_error_plugin.visibleRegion.contains(coordinate.atDistanceAndAzimuth(1000,180)) == true) |
| verify(map_error_plugin.visibleRegion.contains(coordinate.atDistanceAndAzimuth(1000,270)) == true) |
| } |
| |
| function test_map_activeMapType() |
| { |
| compare(map_no_plugin.supportedMapTypes.length, 0) |
| compare(map_no_plugin.activeMapType.style, MapType.NoMap) |
| compare(map_error_plugin.supportedMapTypes.length, 0) |
| compare(map_error_plugin.activeMapType.style, MapType.NoMap) |
| } |
| } |
| } |