X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/c13094acfdfb6f39e265a04ef6aa636ba64a78ea..a338ba695b67a65aaa5102a0cfe2bd7da398a0b3:/test/bdd/api/search/queries.feature diff --git a/test/bdd/api/search/queries.feature b/test/bdd/api/search/queries.feature index 638177fd..fea4da41 100644 --- a/test/bdd/api/search/queries.feature +++ b/test/bdd/api/search/queries.feature @@ -10,6 +10,7 @@ Feature: Search queries | type | value | | house_number | 2 | | hamlet | Steinwald | + | village | Göfis | | postcode | 6811 | | country | Austria | | country_code | at | @@ -18,31 +19,54 @@ Feature: Search queries When sending json search query "Schellingstr 86, Hamburg" with address | accept-language | | de | - Then address of result 0 is - | type | value | - | house_number | 86 | - | road | Schellingstraße | - | suburb | Eilbek | - | postcode | 22089 | - | city_district | Wandsbek | - | state | Hamburg | - | country | Deutschland | - | country_code | de | + Then address of result 0 contains + | type | value | + | house_number | 86 | + | road | Schellingstraße | + | postcode | 22089 | + | city | Hamburg | + | country | Deutschland | + | country_code | de | Scenario: House number interpolation odd When sending json search query "Schellingstr 73, Hamburg" with address | accept-language | | de | + Then address of result 0 contains + | type | value | + | house_number | 73 | + | road | Schellingstraße | + | postcode | 22089 | + | city | Hamburg | + | country | Deutschland | + | country_code | de | + + Scenario: With missing housenumber search falls back to road + When sending json search query "342 rocha, santa lucia" with address Then address of result 0 is | type | value | - | house_number | 73 | - | road | Schellingstraße | - | suburb | Eilbek | - | postcode | 22089 | - | city_district | Wandsbek | - | state | Hamburg | - | country | Deutschland | - | country_code | de | + | road | Rocha | + | city | Santa Lucía | + | state | Canelones | + | postcode | 90700 | + | country | Uruguay | + | country_code | uy | + + Scenario Outline: Housenumber 0 can be found + When sending search query "Pham Hung Road 0" with address + Then results contain + | display_name | + | ^.*, 0,.* | + And result addresses contain + | house_number | + | 0 | + + Examples: + | format | + | xml | + | json | + | jsonv2 | + | geojson | @Tiger Scenario: TIGER house number @@ -57,6 +81,77 @@ Feature: Search queries | place_rank | | 30 | + Scenario: Search with specific amenity + When sending json search query "[restaurant] Vaduz" with address + Then result addresses contain + | country | + | Liechtenstein | + And results contain + | class | type | + | amenity | restaurant | + + Scenario: Search with key-value amenity + When sending json search query "[shop=hifi] hamburg" + Then results contain + | class | type | + | shop | hifi | + + Scenario: With multiple amenity search only the first is used + When sending json search query "[shop=hifi] [church] hamburg" + Then results contain + | class | type | + | shop | hifi | + + Scenario: With multiple amenity search only the first is used + When sending json search query "[church] [restaurant] hamburg" + Then results contain + | class | type | + | amenity | place_of_worship | + + Scenario: POI search near given coordinate + When sending json search query "restaurant near 47.16712,9.51100" + Then results contain + | class | type | + | amenity | restaurant | + + Scenario: Arbitrary key/value search near given coordinate + When sending json search query "[man_made=mast] 47.15739° N 9.61264° E" + Then results contain + | class | type | + | man_made | mast | + + Scenario: Arbitrary key/value search near given coordinate and named place + When sending json search query "[man_made=mast] amerlugalpe 47° 9′ 26″ N 9° 36′ 45″ E" + Then results contain + | class | type | + | man_made | mast | + + Scenario: Name search near given coordinate + When sending json search query "amerlugalpe, N 47.15739° E 9.61264°" + Then exactly 1 result is returned + + Scenario: Name search near given coordinate without result + When sending json search query "amerlugalpe, N 47 15 7 W 9 61 26" + Then exactly 0 results are returned + + Scenario: Arbitrary key/value search near a road + When sending json search query "[leisure=table_soccer_table] immenbusch" + Then results contain + | class | type | + | leisure | table_soccer_table | + + Scenario: Ignore other country codes in structured search with country + When sending json search query "" + | city | country | + | li | de | + Then exactly 0 results are returned + + Scenario: Ignore country searches when query is restricted to countries + When sending json search query "de" + | countrycodes | + | li | + Then exactly 0 results are returned + # https://trac.openstreetmap.org/ticket/5094 Scenario: housenumbers are ordered by complete match first When sending json search query "6395 geminis, montevideo" with address @@ -65,3 +160,31 @@ Feature: Search queries | 0 | 6395 | | 1 | 6395 BIS | + Scenario Outline: Same Searches with white spaces + When sending json search query "" + Then exactly 1 result is returned + And results contain + | class | + | building | + + Examples: + | data | + | amerlugalpe, N 47.15739° E 9.61264° | + | amerlugalpe, N 47.15739° E 9.61264° | + | amerlugalpe , N 47.15739° E 9.61264° | + | amerlugalpe, N 47.15739° E 9.61264° | + | amerlugalpe , N 47.15739° E 9.61264° | + + Scenario: Searched with white spaces + When sending json search query "22nd Street Southwest , Huron" + Then results contain + | class | type | + | highway | residential | + + + # github #1949 + Scenario: Addressdetails always return the place type + When sending json search query "Rotherbaum" with address + Then result addresses contain + | ID | suburb | + | 0 | Rotherbaum |