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