X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/28810e6ce0411870a8fff3ffc00d5abefe556390..89baa8445425ab9f1ac9e57eab336091d6458eaf:/test/bdd/api/search/params.feature diff --git a/test/bdd/api/search/params.feature b/test/bdd/api/search/params.feature index b184fd86..053dbbcd 100644 --- a/test/bdd/api/search/params.feature +++ b/test/bdd/api/search/params.feature @@ -7,13 +7,13 @@ Feature: Search queries Then result 0 has attributes place_id,osm_type,osm_id And result 0 has attributes place_rank,boundingbox And result 0 has attributes lat,lon,display_name - And result 0 has attributes class,type,importance,icon + And result 0 has attributes class,type,importance And result 0 has not attributes address And result 0 has bounding box in 46.5,47.5,9,10 Scenario: Simple JSON search When sending json search query "Vaduz" - Then result 0 has attributes place_id,licence,icon,class,type + Then result 0 has attributes place_id,licence,class,type And result 0 has attributes osm_type,osm_id,boundingbox And result 0 has attributes lat,lon,display_name,importance And result 0 has not attributes address @@ -25,74 +25,79 @@ Feature: Search queries | x45 | Then a HTTP 400 is returned - Scenario: JSON search with addressdetails - When sending json search query "Montevideo" with address + Scenario Outline: Search with addressdetails + When sending search query "Triesen" with address Then address of result 0 is | type | value | - | city | Montevideo | - | state | Montevideo | - | country | Uruguay | - | country_code | uy | + | village | Triesen | + | county | Oberland | + | postcode | 9495 | + | country | Liechtenstein | + | country_code | li | + | ISO3166-2-lvl8 | LI-09 | - Scenario: XML search with addressdetails - When sending xml search query "Aleg" with address - | accept-language | - | en | - Then address of result 0 is - | type | value | - | city | Aleg | - | state | Brakna | - | country | Mauritania | - | country_code | mr | + Examples: + | format | + | json | + | jsonv2 | + | geojson | + | xml | - Scenario: coordinate search with addressdetails - When sending json search query "14.271104294939,107.69828796387" + Scenario: Coordinate search with addressdetails + When sending json search query "47.12400621,9.6047552" | accept-language | | en | Then results contain | display_name | - | Plei Ya Rê, Kon Tum province, Vietnam | + | Guschg, Valorschstrasse, Balzers, Oberland, 9497, Liechtenstein | Scenario: Address details with unknown class types - When sending json search query "Hundeauslauf, Hamburg" with address + When sending json search query "Kloster St. Elisabeth" with address Then results contain | ID | class | type | - | 0 | leisure | dog_park | + | 0 | amenity | monastery | And result addresses contain - | ID | address29 | - | 0 | Hundeauslauf | - And address of result 0 has no types leisure,dog_park + | ID | amenity | + | 0 | Kloster St. Elisabeth | Scenario: Disabling deduplication - When sending json search query "Sievekingsallee, Hamburg" + When sending json search query "Malbunstr" Then there are no duplicates - When sending json search query "Sievekingsallee, Hamburg" + When sending json search query "Malbunstr" | dedupe | | 0 | Then there are duplicates + @fail-legacy Scenario: Search with bounded viewbox in right area - When sending json search query "bar" with address + When sending json search query "post" with address | bounded | viewbox | - | 1 | -56.16786,-34.84061,-56.12525,-34.86526 | + | 1 | 9,47,10,48 | Then result addresses contain - | city | - | Montevideo | + | ID | town | + | 0 | Vaduz | + When sending json search query "post" with address + | bounded | viewbox | + | 1 | 9.49712,47.17122,9.52605,47.16242 | + Then result addresses contain + | town | + | Schaan | Scenario: Country search with bounded viewbox remain in the area When sending json search query "" with address | bounded | viewbox | country | - | 1 | -56.16786,-34.84061,-56.12525,-34.86526 | de | + | 1 | 9.49712,47.17122,9.52605,47.16242 | de | Then less than 1 result is returned Scenario: Search with bounded viewboxlbrt in right area When sending json search query "bar" with address | bounded | viewboxlbrt | - | 1 | -56.16786,-34.86526,-56.12525,-34.84061 | + | 1 | 9.49712,47.16242,9.52605,47.17122 | Then result addresses contain - | city | - | Montevideo | + | town | + | Schaan | + @Fail Scenario: No POI search with unbounded viewbox When sending json search query "restaurant" | viewbox | @@ -110,22 +115,22 @@ Feature: Search queries Scenario: bounded search remains within viewbox with results When sending json search query "restaurant" | bounded | viewbox | - | 1 | 9.93027,53.61634,10.10073,53.54500 | - Then result has bounding box in 53.54500,53.61634,9.93027,10.10073 + | 1 | 9.49712,47.17122,9.52605,47.16242 | + Then result has centroid in 9.49712,47.16242,9.52605,47.17122 Scenario: Prefer results within viewbox - When sending json search query "25 de Mayo" with address - | accept-language | - | en | + When sending json search query "Gässle" with address + | accept-language | viewbox | + | en | 9.52413,47.10759,9.53140,47.10539 | Then result addresses contain - | ID | state | - | 0 | Salto | - When sending json search query "25 de Mayo" with address + | ID | village | + | 0 | Triesen | + When sending json search query "Gässle" with address | accept-language | viewbox | - | en | -56.35879,-34.18330,-56.31618,-34.20815 | + | en | 9.45949,47.08421,9.54094,47.05466 | Then result addresses contain - | ID | state | - | 0 | Florida | + | ID | town | + | 0 | Balzers | Scenario: viewboxes cannot be points When sending json search query "foo" @@ -166,9 +171,13 @@ Feature: Search queries Then at most 50 results are returned Scenario: Limit number of search results - When sending json search query "restaurant" - | limit | - | 4 | + When sending json search query "landstr" + | dedupe | + | 0 | + Then more than 4 results are returned + When sending json search query "landstr" + | limit | dedupe | + | 4 | 0 | Then exactly 4 results are returned Scenario: Limit parameter must be a number @@ -178,11 +187,11 @@ Feature: Search queries Then a HTTP 400 is returned Scenario: Restrict to feature type country - When sending xml search query "Uruguay" + When sending xml search query "fürstentum" Then results contain - | ID | place_rank | - | 1 | 16 | - When sending xml search query "Uruguay" + | ID | class | + | 1 | building | + When sending xml search query "fürstentum" | featureType | | country | Then results contain @@ -190,16 +199,12 @@ Feature: Search queries | 4 | Scenario: Restrict to feature type state - When sending xml search query "Dakota" - Then results contain - | place_rank | - | 12 | - When sending xml search query "Dakota" + When sending xml search query "Wangerberg" + Then more than 1 result is returned + When sending xml search query "Wangerberg" | featureType | | state | - Then results contain - | place_rank | - | 8 | + Then exactly 0 results are returned Scenario: Restrict to feature type city When sending xml search query "vaduz" @@ -214,19 +219,19 @@ Feature: Search queries | 16 | Scenario: Restrict to feature type settlement - When sending json search query "Burg" + When sending json search query "Malbun" Then results contain | ID | class | - | 1 | amenity | - When sending json search query "Burg" + | 1 | landuse | + When sending json search query "Malbun" | featureType | | settlement | Then results contain - | class | type | - | boundary | administrative | + | class | type | + | place | village | Scenario Outline: Search with polygon threshold (json) - When sending json search query "switzerland" + When sending json search query "triesenberg" | polygon_geojson | polygon_threshold | | 1 | | Then at least 1 result is returned @@ -240,7 +245,7 @@ Feature: Search queries | 999 | Scenario Outline: Search with polygon threshold (xml) - When sending xml search query "switzerland" + When sending xml search query "triesenberg" | polygon_geojson | polygon_threshold | | 1 | | Then at least 1 result is returned @@ -254,7 +259,7 @@ Feature: Search queries | 999 | Scenario Outline: Search with invalid polygon threshold (xml) - When sending xml search query "switzerland" + When sending xml search query "triesenberg" | polygon_geojson | polygon_threshold | | 1 | | Then a HTTP 400 is returned @@ -266,7 +271,7 @@ Feature: Search queries | 1m | Scenario Outline: Search with extratags - When sending search query "Hauptstr" + When sending search query "Landstr" | extratags | | 1 | Then result has attributes extratags @@ -276,9 +281,10 @@ Feature: Search queries | xml | | json | | jsonv2 | + | geojson | Scenario Outline: Search with namedetails - When sending search query "Hauptstr" + When sending search query "Landstr" | namedetails | | 1 | Then result has attributes namedetails @@ -288,9 +294,10 @@ Feature: Search queries | xml | | json | | jsonv2 | + | geojson | Scenario Outline: Search result with contains TEXT geometry - When sending search query "Highmore" + When sending search query "triesenberg" | polygon_text | | 1 | Then result has attributes @@ -301,20 +308,8 @@ Feature: Search queries | json | geotext | | jsonv2 | geotext | - Scenario Outline: Search result contains polygon-as-points geometry - When sending search query "Highmore" - | polygon | - | 1 | - Then result has attributes - - Examples: - | format | response_attribute | - | xml | polygonpoints | - | json | polygonpoints | - | jsonv2 | polygonpoints | - Scenario Outline: Search result contains SVG geometry - When sending search query "Highmore" + When sending search query "triesenberg" | polygon_svg | | 1 | Then result has attributes @@ -326,7 +321,7 @@ Feature: Search queries | jsonv2 | svg | Scenario Outline: Search result contains KML geometry - When sending search query "Highmore" + When sending search query "triesenberg" | polygon_kml | | 1 | Then result has attributes @@ -338,7 +333,7 @@ Feature: Search queries | jsonv2 | geokml | Scenario Outline: Search result contains GEOJSON geometry - When sending search query "Highmore" + When sending search query "triesenberg" | polygon_geojson | | 1 | Then result has attributes @@ -348,11 +343,38 @@ Feature: Search queries | xml | geojson | | json | geojson | | jsonv2 | geojson | + | geojson | geojson | + + Scenario Outline: Search result in geojson format contains no non-geojson geometry + When sending geojson search query "triesenberg" + | polygon_text | polygon_svg | polygon_geokml | + | 1 | 1 | 1 | + Then result 0 has not attributes + + Examples: + | response_attribute | + | geotext | + | polygonpoints | + | svg | + | geokml | Scenario: Search along a route - When sending json search query "restaurant" with address - | bounded | routewidth | route | - | 1 | 0.1 | -103.23255,44.08198,-103.22516,44.08079 | + When sending json search query "rathaus" with address Then result addresses contain - | city | - | Rapid City | + | ID | town | + | 0 | Schaan | + When sending json search query "rathaus" with address + | bounded | routewidth | route | + | 1 | 0.1 | 9.54353,47.11772,9.54314,47.11894 | + Then result addresses contain + | town | + | Triesenberg | + + + Scenario: Array parameters are ignored + When sending json search query "Vaduz" with address + | countrycodes[] | polygon_svg[] | limit[] | polygon_threshold[] | + | IT | 1 | 3 | 3.4 | + Then result addresses contain + | ID | country_code | + | 0 | li |