X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/81922fc057b5a89fb41d05d3a31dab629ff0558a..731c620e314e61a958f99a14556983e73ed914be:/test/bdd/api/search/queries.feature diff --git a/test/bdd/api/search/queries.feature b/test/bdd/api/search/queries.feature index 78669c4f..e5040f1e 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 | @@ -19,30 +20,55 @@ Feature: Search queries | 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 | + | type | value | + | house_number | 86 | + | road | Schellingstraße | + | suburb | Eilbek | + | 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 is + | type | value | + | house_number | 73 | + | road | Schellingstraße | + | suburb | Eilbek | + | 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 @@ -52,7 +78,115 @@ Feature: Search queries | way | Scenario: Search with class-type feature - When sending jsonv2 search query "Hotel California" + When sending jsonv2 search query "Hotel in California" Then results contain | 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 + Then result addresses contain + | ID | house_number | + | 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 |