]> git.openstreetmap.org Git - nominatim.git/blob - test/bdd/api/search/simple.feature
Merge remote-tracking branch 'upstream/master'
[nominatim.git] / test / bdd / api / search / simple.feature
1 @APIDB
2 Feature: Simple Tests
3     Simple tests for internal server errors and response format.
4
5     Scenario Outline: Testing different parameters
6         When sending search query "Vaduz"
7           | param       | value   |
8           | <parameter> | <value> |
9         Then at least 1 result is returned
10         When sending xml search query "Vaduz"
11           | param       | value   |
12           | <parameter> | <value> |
13         Then at least 1 result is returned
14         When sending json search query "Vaduz"
15           | param       | value   |
16           | <parameter> | <value> |
17         Then at least 1 result is returned
18         When sending jsonv2 search query "Vaduz"
19           | param       | value   |
20           | <parameter> | <value> |
21         Then at least 1 result is returned
22         When sending geojson search query "Vaduz"
23           | param       | value   |
24           | <parameter> | <value> |
25         Then at least 1 result is returned
26         When sending geocodejson search query "Vaduz"
27           | param       | value   |
28           | <parameter> | <value> |
29         Then at least 1 result is returned
30
31     Examples:
32      | parameter        | value |
33      | addressdetails   | 0 |
34      | polygon_text     | 0 |
35      | polygon_kml      | 0 |
36      | polygon_geojson  | 0 |
37      | polygon_svg      | 0 |
38      | accept-language  | de,en |
39      | countrycodes     | li |
40      | bounded          | 1 |
41      | bounded          | 0 |
42      | exclude_place_ids| 385252,1234515 |
43      | limit            | 1000 |
44      | dedupe           | 1 |
45      | dedupe           | 0 |
46      | extratags        | 0 |
47      | namedetails      | 0 |
48
49     Scenario: Search with invalid output format
50         When sending search query "Berlin"
51           | format |
52           | fd$# |
53         Then a HTTP 400 is returned
54
55     Scenario Outline: Simple Searches
56         When sending search query "<query>"
57         Then the result is valid json
58         When sending xml search query "<query>"
59         Then the result is valid xml
60         When sending json search query "<query>"
61         Then the result is valid json
62         When sending jsonv2 search query "<query>"
63         Then the result is valid json
64         When sending geojson search query "<query>"
65         Then the result is valid geojson
66
67     Examples:
68      | query |
69      | New York, New York |
70      | France |
71      | 12, Main Street, Houston |
72      | München |
73      | 東京都 |
74      | hotels in nantes |
75      | xywxkrf |
76      | gh; foo() |
77      | %#$@*&l;der#$! |
78      | 234 |
79      | 47.4,8.3 |
80
81     Scenario: Empty XML search
82         When sending xml search query "xnznxvcx"
83         Then result header contains
84           | attr        | value |
85           | querystring | xnznxvcx |
86           | more_url    | .*q=xnznxvcx.*format=xml |
87
88     Scenario: Empty XML search with special XML characters
89         When sending xml search query "xfdghn&zxn"xvbyx<vxx>cssdex"
90         Then result header contains
91           | attr        | value |
92           | querystring | xfdghn&zxn"xvbyx<vxx>cssdex |
93           | more_url    | .*q=xfdghn%26zxn%22xvbyx%3Cvxx%3Ecssdex.*format=xml |
94
95     Scenario: Empty XML search with viewbox
96         When sending xml search query "xnznxvcx"
97           | viewbox |
98           | 12,33,77,45.13 |
99         Then result header contains
100           | attr        | value |
101           | querystring | xnznxvcx |
102           | viewbox     | 12,33,77,45.13 |
103
104     Scenario: Empty XML search with viewboxlbrt
105         When sending xml search query "xnznxvcx"
106           | viewboxlbrt |
107           | 12,34.13,77,45 |
108         Then result header contains
109           | attr        | value |
110           | querystring | xnznxvcx |
111           | viewbox     | 12,34.13,77,45 |
112
113     Scenario: Empty XML search with viewboxlbrt and viewbox
114         When sending xml search query "pub"
115           | viewbox        | viewboxblrt |
116           | 12,33,77,45.13 | 1,2,3,4 |
117         Then result header contains
118           | attr        | value |
119           | querystring | pub |
120           | viewbox     | 12,33,77,45.13 |
121
122     Scenario: Empty XML search with exluded place ids
123         When sending xml search query "jghrleoxsbwjer"
124           | exclude_place_ids |
125           | 123,76,342565 |
126         Then result header contains
127           | attr              | value |
128           | exclude_place_ids | 123,76,342565 |
129
130     Scenario: Empty XML search with bad exluded place ids
131         When sending xml search query "jghrleoxsbwjer"
132           | exclude_place_ids |
133           | , |
134         Then result header has not attributes exclude_place_ids
135
136     Scenario Outline: Wrapping of legal jsonp search requests
137         When sending json search query "Tokyo"
138             | param        | value |
139             |json_callback | <data> |
140         Then result header contains
141             | attr         | value |
142             | json_func    | <result> |
143
144     Examples:
145      | data    | result |
146      | foo     | foo |
147      | FOO     | FOO |
148      | __world | __world |
149
150     Scenario Outline: Wrapping of illegal jsonp search requests
151         When sending json search query "Tokyo"
152             | param        | value |
153             |json_callback | <data> |
154         Then a json user error is returned
155
156     Examples:
157       | data |
158       | 1asd |
159       | bar(foo) |
160       | XXX['bad'] |
161       | foo; evil |
162
163     Scenario: Ignore jsonp parameter for anything but json
164         When sending json search query "Malibu"
165           | json_callback |
166           | 234 |
167         Then a HTTP 400 is returned
168         When sending xml search query "Malibu"
169           | json_callback |
170           | 234 |
171         Then the result is valid xml
172
173     Scenario Outline: Empty search
174         When sending <format> search query "YHlERzzx"
175         Then exactly 0 results are returned
176
177     Examples:
178         | format |
179         | json |
180         | jsonv2 |
181         | geojson |
182         | geocodejson |
183
184     Scenario: Search for non-existing coordinates
185         When sending json search query "-21.0,-33.0"
186         Then exactly 0 results are returned
187
188     Scenario: Country code selection is retained in more URL (#596)
189         When sending xml search query "Vaduz"
190           | countrycodes |
191           | pl,1,,invalid,undefined,%3Cb%3E,bo,, |
192         Then result header contains
193           | attr     | value |
194           | more_url | .*&countrycodes=pl%2Cbo&.* |
195
196     Scenario Outline: Search debug output does not return errors
197         When sending debug search query "<query>"
198         Then a HTTP 200 is returned
199
200     Examples:
201         | query |
202         | Liechtenstein |
203         | Triesen |
204         | Pfarrkirche |
205         | Landstr 27 Steinort, Triesenberg, 9495 |
206         | 9497 |
207         | restaurant in triesen |