]> git.openstreetmap.org Git - nominatim.git/blob - test/bdd/api/reverse/v1_params.feature
Merge remote-tracking branch 'upstream/master'
[nominatim.git] / test / bdd / api / reverse / v1_params.feature
1 @SQLITE
2 @APIDB
3 Feature: v1/reverse Parameter Tests
4     Tests for parameter inputs for the v1 reverse endpoint.
5     This file contains mostly bad parameter input. Valid parameters
6     are tested in the format tests.
7
8     Scenario: Bad format
9         When sending v1/reverse at 47.14122383,9.52169581334 with format sdf
10         Then a HTTP 400 is returned
11
12     Scenario: Missing lon parameter
13         When sending v1/reverse at 52.52,
14         Then a HTTP 400 is returned
15
16
17     Scenario: Missing lat parameter
18         When sending v1/reverse at ,52.52
19         Then a HTTP 400 is returned
20
21
22     Scenario Outline: Bad format for lat or lon
23         When sending v1/reverse at ,
24           | lat   | lon   |
25           | <lat> | <lon> |
26         Then a HTTP 400 is returned
27
28         Examples:
29           | lat      | lon |
30           | 48.9660  | 8,4482 |
31           | 48,9660  | 8.4482 |
32           | 48,9660  | 8,4482 |
33           | 48.966.0 | 8.4482 |
34           | 48.966   | 8.448.2 |
35           | Nan      | 8.448  |
36           | 48.966   | Nan    |
37           | Inf      | 5.6    |
38           | 5.6      | -Inf   |
39           | <script></script> | 3.4 |
40           | 3.4 | <script></script> |
41           | -45.3    | ;      |
42           | gkjd     | 50     |
43
44
45     Scenario: Non-numerical zoom levels return an error
46         When sending v1/reverse at 47.14122383,9.52169581334
47           | zoom |
48           | adfe |
49         Then a HTTP 400 is returned
50
51
52     Scenario Outline: Truthy values for boolean parameters
53         When sending v1/reverse at 47.14122383,9.52169581334
54           | addressdetails |
55           | <value> |
56         Then exactly 1 result is returned
57         And result has attributes address
58
59         When sending v1/reverse at 47.14122383,9.52169581334
60           | extratags |
61           | <value> |
62         Then exactly 1 result is returned
63         And result has attributes extratags
64
65         When sending v1/reverse at 47.14122383,9.52169581334
66           | namedetails |
67           | <value> |
68         Then exactly 1 result is returned
69         And result has attributes namedetails
70
71         When sending v1/reverse at 47.14122383,9.52169581334
72           | polygon_geojson |
73           | <value> |
74         Then exactly 1 result is returned
75         And result has attributes geojson
76
77         When sending v1/reverse at 47.14122383,9.52169581334
78           | polygon_kml |
79           | <value> |
80         Then exactly 1 result is returned
81         And result has attributes geokml
82
83         When sending v1/reverse at 47.14122383,9.52169581334
84           | polygon_svg |
85           | <value> |
86         Then exactly 1 result is returned
87         And result has attributes svg
88
89         When sending v1/reverse at 47.14122383,9.52169581334
90           | polygon_text |
91           | <value> |
92         Then exactly 1 result is returned
93         And result has attributes geotext
94
95         Examples:
96           | value |
97           | yes   |
98           | no    |
99           | -1    |
100           | 100   |
101           | false |
102           | 00    |
103
104
105     Scenario: Only one geometry can be requested
106         When sending v1/reverse at 47.165989816710066,9.515774846076965
107           | polygon_text | polygon_svg |
108           | 1            | 1           |
109         Then a HTTP 400 is returned
110
111
112     Scenario Outline: Wrapping of legal jsonp requests
113         When sending v1/reverse at 67.3245,0.456 with format <format>
114           | json_callback |
115           | foo |
116         Then the result is valid <outformat>
117
118         Examples:
119           | format      | outformat   |
120           | json        | json        |
121           | jsonv2      | json        |
122           | geojson     | geojson     |
123           | geocodejson | geocodejson |
124
125
126     Scenario Outline: Illegal jsonp are not allowed
127         When sending v1/reverse at 47.165989816710066,9.515774846076965
128           | param        | value |
129           |json_callback | <data> |
130         Then a HTTP 400 is returned
131
132         Examples:
133           | data |
134           | 1asd |
135           | bar(foo) |
136           | XXX['bad'] |
137           | foo; evil |
138
139
140     Scenario Outline: Reverse debug mode produces valid HTML
141         When sending v1/reverse at , with format debug
142           | lat   | lon   |
143           | <lat> | <lon> |
144         Then the result is valid html
145
146         Examples:
147           | lat      | lon     |
148           | 0.0      | 0.0     |
149           | 47.06645 | 9.56601 |
150           | 47.14081 | 9.52267 |
151
152
153     Scenario Outline: Full address display for city housenumber-level address with street
154         When sending v1/reverse at 47.1068011,9.52810091 with format <format>
155         Then address of result 0 is
156           | type           | value     |
157           | house_number   | 8         |
158           | road           | Im Winkel |
159           | neighbourhood  | Oberdorf  |
160           | village        | Triesen   |
161           | ISO3166-2-lvl8 | LI-09     |
162           | county         | Oberland  |
163           | postcode       | 9495      |
164           | country        | Liechtenstein |
165           | country_code   | li        |
166
167         Examples:
168           | format  |
169           | json    |
170           | jsonv2  |
171           | geojson |
172           | xml     |
173
174
175     Scenario Outline: Results with name details
176         When sending v1/reverse at 47.14052,9.52202 with format <format>
177           | zoom | namedetails |
178           | 14   | 1           |
179         Then results contain in field namedetails
180           | name     |
181           | Ebenholz |
182
183         Examples:
184           | format  |
185           | json    |
186           | jsonv2  |
187           | xml     |
188           | geojson |
189
190
191     Scenario Outline: Results with extratags
192         When sending v1/reverse at 47.14052,9.52202 with format <format>
193           | zoom | extratags |
194           | 14   | 1         |
195         Then results contain in field extratags
196           | wikidata |
197           | Q4529531 |
198
199         Examples:
200           | format |
201           | json   |
202           | jsonv2 |
203           | xml    |
204           | geojson |
205
206