]> git.openstreetmap.org Git - nominatim.git/blob - tests/features/api/search_simple.feature
Merge remote-tracking branch 'upstream/master'
[nominatim.git] / tests / features / api / search_simple.feature
1 Feature: Simple Tests
2     Simple tests for internal server errors and response format.
3     These tests should pass on any Nominatim installation.
4
5     Scenario Outline: Testing different parameters
6         Given the request parameters
7           | <parameter>
8           | <value>
9         When sending search query "Manchester"
10         Then the result is valid html
11         Given the request parameters
12           | <parameter>
13           | <value>
14         When sending html search query "Manchester"
15         Then the result is valid html
16         Given the request parameters
17           | <parameter>
18           | <value>
19         When sending xml search query "Manchester"
20         Then the result is valid xml
21         Given the request parameters
22           | <parameter>
23           | <value>
24         When sending json search query "Manchester"
25         Then the result is valid json
26         Given the request parameters
27           | <parameter>
28           | <value>
29         When sending jsonv2 search query "Manchester"
30         Then the result is valid json
31
32     Examples:
33      | parameter        | value
34      | addressdetails   | 1
35      | addressdetails   | 0
36      | polygon          | 1
37      | polygon          | 0
38      | polygon_text     | 1
39      | polygon_text     | 0
40      | polygon_kml      | 1
41      | polygon_kml      | 0
42      | polygon_geojson  | 1
43      | polygon_geojson  | 0
44      | polygon_svg      | 1
45      | polygon_svg      | 0
46      | accept-language  | de,en
47      | countrycodes     | uk,ir
48      | bounded          | 1
49      | bounded          | 0
50      | exclude_place_ids| 385252,1234515
51      | limit            | 1000
52      | dedupe           | 1
53      | dedupe           | 0
54
55     Scenario: Search with invalid output format
56         Given the request parameters
57           | format
58           | fd$#
59         When sending search query "Berlin"
60         Then the result is valid html
61
62     Scenario Outline: Simple Searches
63         When sending search query "<query>"
64         Then the result is valid html
65         When sending html search query "<query>"
66         Then the result is valid html
67         When sending xml search query "<query>"
68         Then the result is valid xml
69         When sending json search query "<query>"
70         Then the result is valid json
71         When sending jsonv2 search query "<query>"
72         Then the result is valid json
73
74     Examples:
75      | query
76      | New York, New York
77      | France
78      | 12, Main Street, Houston
79      | München
80      | 東京都
81      | hotels in nantes
82      | xywxkrf
83      | gh; foo()
84      | %#$@*&l;der#$!
85      | 234
86      | 47.4,8.3
87
88     Scenario: Empty XML search
89         When sending xml search query "xnznxvcx"
90         Then result header contains
91           | attr        | value
92           | querystring | xnznxvcx
93           | polygon     | false
94           | more_url    | .*format=xml.*q=xnznxvcx.*
95
96     Scenario: Empty XML search with special XML characters
97         When sending xml search query "xfdghn&zxn"xvbyx<vxx>cssdex"
98         Then result header contains
99           | attr        | value
100           | querystring | xfdghn&zxn"xvbyx<vxx>cssdex
101           | polygon     | false
102           | more_url    | .*format=xml.*q=xfdghn&zxn"xvbyx<vxx>cssdex.*
103
104     Scenario: Empty XML search with viewbox
105         Given the request parameters
106           | viewbox
107           | 12,45.13,13,44
108         When sending xml search query "xnznxvcx"
109         Then result header contains
110           | attr        | value
111           | querystring | xnznxvcx
112           | polygon     | false
113           | viewbox     | 12,45.13,13,44
114
115     Scenario: Empty XML search with viewboxlbrt
116         Given the request parameters
117           | viewboxlbrt
118           | 12,34.13,13,35
119         When sending xml search query "xnznxvcx"
120         Then result header contains
121           | attr        | value
122           | querystring | xnznxvcx
123           | polygon     | false
124           | viewbox     | 12,34.13,13,35
125
126     Scenario: Empty XML search with viewboxlbrt and viewbox
127         Given the request parameters
128           | viewbox          | viewboxblrt
129           | 12,45.13,13.5,44 | 1,0,2,1
130         When sending xml search query "pub"
131         Then result header contains
132           | attr        | value
133           | querystring | pub
134           | polygon     | false
135           | viewbox     | 12,45.13,13.5,44
136
137
138     Scenario Outline: Empty XML search with polygon values
139         Given the request parameters
140           | polygon
141           | <polyval>
142         When sending xml search query "xnznxvcx"
143         Then result header contains
144           | attr        | value
145           | polygon     | <result>
146
147     Examples:
148      | result | polyval
149      | false  | 0
150      | true   | 1
151      | true   | True
152      | true   | true
153      | true   | false
154      | true   | FALSE
155      | true   | yes
156      | true   | no
157      | true   | '; delete from foobar; select '
158
159
160     Scenario: Empty XML search with exluded place ids
161         Given the request parameters
162           | exclude_place_ids
163           | 123,76,342565
164         When sending xml search query "jghrleoxsbwjer"
165         Then result header contains
166           | attr              | value
167           | exclude_place_ids | 123,76,342565
168
169     Scenario: Empty XML search with bad exluded place ids
170         Given the request parameters
171           | exclude_place_ids
172           | ,
173         When sending xml search query "jghrleoxsbwjer"
174         Then result header has no attribute exclude_place_ids
175
176     Scenario Outline: Wrapping of legal jsonp search requests
177         Given the request parameters
178           | json_callback
179           | <data>
180         When sending json search query "Tokyo"
181         Then there is a json wrapper "<data>"
182
183     Examples:
184      | data
185      | foo
186      | FOO
187      | __world
188      | $me
189      | m1[4]
190      | d_r[$d]
191
192     Scenario Outline: Wrapping of illegal jsonp search requests
193         Given the request parameters
194           | json_callback
195           | <data>
196         When sending json search query "Tokyo"
197         Then a HTTP 400 is returned
198
199     Examples:
200       | data
201       | 1asd
202       | bar(foo)
203       | XXX['bad']
204       | foo; evil
205
206     Scenario Outline: Ignore jsonp parameter for anything but json
207         Given the request parameters
208           | json_callback
209           | 234
210         When sending json search query "Malibu"
211         Then a HTTP 400 is returned
212         Given the request parameters
213           | json_callback
214           | 234
215         When sending xml search query "Malibu"
216         Then the result is valid xml
217         Given the request parameters
218           | json_callback
219           | 234
220         When sending html search query "Malibu"
221         Then the result is valid html
222
223      Scenario: Empty JSON search
224         When sending json search query "YHlERzzx"
225         Then exactly 0 results are returned
226
227      Scenario: Empty JSONv2 search
228         When sending jsonv2 search query "Flubb XdfESSaZx"
229         Then exactly 0 results are returned
230
231      Scenario: Search for non-existing coordinates
232         When sending json search query "-21.0,-33.0"
233         Then exactly 0 results are returned
234