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