]> git.openstreetmap.org Git - nominatim.git/blob - test/bdd/api/search/queries.feature
Merge remote-tracking branch 'upstream/master'
[nominatim.git] / test / bdd / api / search / queries.feature
1 @APIDB
2 Feature: Search queries
3     Generic search result correctness
4
5     Scenario: House number search for non-street address
6         When sending json search query "2 Steinwald, Austria" with address
7           | accept-language |
8           | en |
9         Then address of result 0 is
10           | type         | value |
11           | house_number | 2 |
12           | hamlet       | Steinwald |
13           | postcode     | 6811 |
14           | country      | Austria |
15           | country_code | at |
16
17     Scenario: House number interpolation even
18         When sending json search query "Schellingstr 86, Hamburg" with address
19           | accept-language |
20           | de |
21         Then address of result 0 is
22           | type          | value |
23           | house_number  | 86 |
24           | road          | Schellingstraße |
25           | neighbourhood | Auenviertel |
26           | suburb        | Eilbek |
27           | postcode      | 22089 |
28           | city_district | Wandsbek |
29           | country       | Deutschland |
30           | country_code  | de |
31
32     Scenario: House number interpolation odd
33         When sending json search query "Schellingstr 73, Hamburg" with address
34           | accept-language |
35           | de |
36         Then address of result 0 is
37           | type          | value |
38           | house_number  | 73 |
39           | road          | Schellingstraße |
40           | neighbourhood | Auenviertel |
41           | suburb        | Eilbek |
42           | postcode      | 22089 |
43           | city_district | Wandsbek |
44           | country       | Deutschland |
45           | country_code  | de |
46
47     Scenario: With missing housenumber search falls back to road
48         When sending json search query "342 rocha, santa lucia" with address
49         Then address of result 0 is
50           | type         | value |
51           | road         | Rocha |
52           | city         | Santa Lucía |
53           | state        | Canelones |
54           | postcode     | 90700 |
55           | country      | Uruguay |
56           | country_code | uy |
57
58     Scenario Outline: Housenumber 0 can be found
59         When sending <format> search query "Pham Hung Road 0" with address
60         Then results contain
61           | display_name |
62           | ^.*, 0,.* |
63         And result addresses contain
64           | house_number |
65           | 0     |
66
67     Examples:
68         | format |
69         | xml |
70         | json |
71         | jsonv2 |
72         | geojson |
73
74     @Tiger
75     Scenario: TIGER house number
76         When sending json search query "323 22nd Street Southwest, Huron"
77         Then results contain
78          | osm_type |
79          | way |
80
81     Scenario: Search with class-type feature
82         When sending jsonv2 search query "Hotel in California"
83         Then results contain
84           | place_rank |
85           | 30 |
86
87     Scenario: Search with specific amenity
88         When sending json search query "[restaurant] Vaduz" with address
89         Then result addresses contain
90           | country |
91           | Liechtenstein |
92         And  results contain
93           | class   | type |
94           | amenity | restaurant |
95
96     Scenario: Search with key-value amenity
97         When sending json search query "[shop=hifi] hamburg"
98         Then results contain
99           | class | type |
100           | shop  | hifi |
101
102     Scenario: With multiple amenity search only the first is used
103         When sending json search query "[shop=hifi] [church] hamburg"
104         Then results contain
105           | class | type |
106           | shop  | hifi |
107
108     Scenario: With multiple amenity search only the first is used
109         When sending json search query "[church] [restaurant] hamburg"
110         Then results contain
111           | class   | type |
112           | amenity | place_of_worship |
113
114     Scenario: POI search near given coordinate
115         When sending json search query "restaurant near 47.16712,9.51100"
116         Then results contain
117           | class   | type |
118           | amenity | restaurant |
119
120     Scenario: Arbitrary key/value search near given coordinate
121         When sending json search query "[man_made=mast]  47.15739° N 9.61264° E"
122         Then results contain
123           | class    | type |
124           | man_made | mast |
125
126     Scenario: Arbitrary key/value search near given coordinate and named place
127         When sending json search query "[man_made=mast] amerlugalpe  47° 9′ 26″ N 9° 36′ 45″ E"
128         Then results contain
129           | class    | type |
130           | man_made | mast |
131
132     Scenario: Name search near given coordinate
133         When sending json search query "amerlugalpe, N 47.15739° E 9.61264°"
134         Then exactly 1 result is returned
135
136     Scenario: Name search near given coordinate without result
137         When sending json search query "amerlugalpe, N 47 15 7 W 9 61 26"
138         Then exactly 0 results are returned
139
140     Scenario: Arbitrary key/value search near a road
141         When sending json search query "[leisure=table_soccer_table] immenbusch"
142         Then results contain
143           | class   | type |
144           | leisure | table_soccer_table |
145
146     Scenario: Ignore other country codes in structured search with country
147         When sending json search query ""
148             | city | country |
149             | li   | de      |
150         Then exactly 0 results are returned
151
152     Scenario: Ignore country searches when query is restricted to countries
153         When sending json search query "de"
154             | countrycodes |
155             | li  |
156         Then exactly 0 results are returned
157
158     # https://trac.openstreetmap.org/ticket/5094
159     Scenario: housenumbers are ordered by complete match first
160         When sending json search query "6395 geminis, montevideo" with address
161         Then result addresses contain
162           | ID | house_number |
163           | 0  | 6395 |
164           | 1  | 6395 BIS |
165