summaryrefslogtreecommitdiff
path: root/tests/auto/declarative_ui/tst_map_maptype.qml
blob: f75a4e94915e6c9708c758c9d18a666587c90199 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0

import QtQuick
import QtTest
import QtLocation

Item{
    id: page
    x: 0; y: 0;
    width: 100
    height: 100

    Plugin { id: testPlugin; name: "qmlgeo.test.plugin"; allowExperimental: true }
    Map { id: map; anchors.fill: parent }
    SignalSpy { id: supportedMapTypesSpy; target: map; signalName: "supportedMapTypesChanged" }
    SignalSpy { id: activeMapTypeChangedSpy; target: map; signalName: "activeMapTypeChanged" }
    SignalSpy { id: minimumZoomLevelChangedSpy; target: map; signalName: "minimumZoomLevelChanged" }
    SignalSpy { id: maximumZoomLevelChangedSpy; target: map; signalName: "maximumZoomLevelChanged" }
    SignalSpy { id: minimumTiltChangedSpy; target: map; signalName: "minimumTiltChanged" }
    SignalSpy { id: maximumTiltChangedSpy; target: map; signalName: "maximumTiltChanged" }
    SignalSpy { id: minimumFieldOfViewChangedSpy; target: map; signalName: "minimumFieldOfViewChanged" }
    SignalSpy { id: maximumFieldOfViewChangedSpy; target: map; signalName: "maximumFieldOfViewChanged" }

    TestCase {
        id: testCase
        name: "MapType"
        when: windowShown

        function initTestCase()
        {
            compare(map.supportedMapTypes.length, 0)
            compare(map.activeMapType.style, MapType.NoMap)
            map.plugin = testPlugin
            tryCompare(supportedMapTypesSpy, "count", 1)
            compare(map.supportedMapTypes.length, 4)
            compare(map.supportedMapTypes[0].style, MapType.StreetMap)
            compare(map.supportedMapTypes[0].name, "StreetMap")
            compare(map.supportedMapTypes[0].description, "StreetMap")
            compare(map.supportedMapTypes[1].style, MapType.SatelliteMapDay)
            compare(map.supportedMapTypes[1].name, "SatelliteMapDay")
            compare(map.supportedMapTypes[1].description, "SatelliteMapDay")
            compare(map.supportedMapTypes[2].style, MapType.CycleMap)
            compare(map.supportedMapTypes[2].name, "CycleMap")
            compare(map.supportedMapTypes[2].description, "CycleMap")
            compare(map.supportedMapTypes[3].style, MapType.CustomMap)
            compare(map.supportedMapTypes[3].name, "AlternateCameraCapabilities")
            compare(map.supportedMapTypes[3].description, "AlternateCameraCapabilities")
            //default
            compare(map.activeMapType.style, MapType.StreetMap)
        }

        function init()
        {
            map.activeMapType = map.supportedMapTypes[0]

            supportedMapTypesSpy.clear()
            activeMapTypeChangedSpy.clear()
            minimumZoomLevelChangedSpy.clear();
            maximumZoomLevelChangedSpy.clear();
            minimumTiltChangedSpy.clear();
            maximumTiltChangedSpy.clear();
            minimumFieldOfViewChangedSpy.clear();
            maximumFieldOfViewChangedSpy.clear();
        }

        function test_setting_types()
        {
            // resetting it first
            map.activeMapType = map.supportedMapTypes[0]
            tryCompare(activeMapTypeChangedSpy, "count", 0)

            map.activeMapType = map.supportedMapTypes[1]
            tryCompare(activeMapTypeChangedSpy, "count", 1)
            compare(map.supportedMapTypes[1].name, map.activeMapType.name)
            compare(map.supportedMapTypes[1].style, map.activeMapType.style)

            map.activeMapType = map.supportedMapTypes[2]
            tryCompare(activeMapTypeChangedSpy, "count", 2)
            compare(map.supportedMapTypes[2].name, map.activeMapType.name)
            compare(map.supportedMapTypes[2].style, map.activeMapType.style)

            map.activeMapType = map.supportedMapTypes[3]
            tryCompare(activeMapTypeChangedSpy, "count", 3)
            compare(map.supportedMapTypes[3].name, map.activeMapType.name)
            compare(map.supportedMapTypes[3].style, map.activeMapType.style)
        }

        function test_maptype_capabilities()
        {
            map.activeMapType = map.supportedMapTypes[0]

            compare(map.minimumZoomLevel, 0)
            compare(map.maximumZoomLevel, 20)
            compare(map.minimumTilt, 0)
            compare(map.maximumTilt, 60)
            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)
            tryCompare(maximumTiltChangedSpy, "count", 0)
            tryCompare(minimumFieldOfViewChangedSpy, "count", 0)
            tryCompare(maximumFieldOfViewChangedSpy, "count", 0)


            map.activeMapType = map.supportedMapTypes[1]

            compare(map.minimumZoomLevel, 0)
            compare(map.maximumZoomLevel, 20)
            compare(map.minimumTilt, 0)
            compare(map.maximumTilt, 60)
            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)
            tryCompare(maximumTiltChangedSpy, "count", 0)
            tryCompare(minimumFieldOfViewChangedSpy, "count", 0)
            tryCompare(maximumFieldOfViewChangedSpy, "count", 0)


            map.activeMapType = map.supportedMapTypes[3]

            compare(map.minimumZoomLevel, 0)
            compare(map.maximumZoomLevel, 19)
            compare(map.minimumTilt, 0)
            compare(map.maximumTilt, 80)
            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) // TODO enforce maximum from the plugin and test accordingly
            tryCompare(minimumTiltChangedSpy, "count", 0)
            tryCompare(maximumTiltChangedSpy, "count", 1)
            tryCompare(minimumFieldOfViewChangedSpy, "count", 1)
            tryCompare(maximumFieldOfViewChangedSpy, "count", 1)


            map.activeMapType = map.supportedMapTypes[0]

            compare(map.minimumZoomLevel, 0)
            compare(map.maximumZoomLevel, 20)
            compare(map.minimumTilt, 0)
            compare(map.maximumTilt, 60)
            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) // TODO enforce maximum from the plugin and test accordingly
            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)
        }
    }
}