X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/2ab9e4acd3a2ceb5ff871b6b6afc786377e8739f..d856788bf5cf7b4b3e2b4de10f37cf3002ae6826:/test/bdd/api/search/params.feature?ds=sidebyside diff --git a/test/bdd/api/search/params.feature b/test/bdd/api/search/params.feature index 6ba22d03..e77a00d2 100644 --- a/test/bdd/api/search/params.feature +++ b/test/bdd/api/search/params.feature @@ -1,3 +1,4 @@ +@SQLITE @APIDB Feature: Search queries Testing different queries and parameters @@ -7,13 +8,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 +26,78 @@ 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ê, 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 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 centroid 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 | Florida | - 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 | -57.95468,-31.39261,-57.94741,-31.39490 | + | en | 9.45949,47.08421,9.54094,47.05466 | Then result addresses contain - | ID | state | - | 0 | Salto | + | 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,7 @@ Feature: Search queries Then a HTTP 400 is returned Scenario: Restrict to feature type country - When sending xml search query "Uruguay" - Then results contain - | ID | place_rank | - | 1 | 16 | - When sending xml search query "Uruguay" + When sending xml search query "fürstentum" | featureType | | country | Then results contain @@ -190,22 +195,16 @@ 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 at least 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" - Then results contain - | ID | place_rank | - | 1 | 30 | + Then at least 1 result is returned When sending xml search query "vaduz" | featureType | | city | @@ -214,19 +213,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 +239,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 +253,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 +265,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 @@ -279,7 +278,7 @@ Feature: Search queries | geojson | Scenario Outline: Search with namedetails - When sending search query "Hauptstr" + When sending search query "Landstr" | namedetails | | 1 | Then result has attributes namedetails @@ -292,7 +291,7 @@ Feature: Search queries | 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 @@ -304,7 +303,7 @@ Feature: Search queries | jsonv2 | geotext | Scenario Outline: Search result contains SVG geometry - When sending search query "Highmore" + When sending search query "triesenberg" | polygon_svg | | 1 | Then result has attributes @@ -316,7 +315,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 @@ -328,7 +327,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 @@ -341,7 +340,7 @@ Feature: Search queries | geojson | geojson | Scenario Outline: Search result in geojson format contains no non-geojson geometry - When sending geojson search query "Highmore" + When sending geojson search query "triesenberg" | polygon_text | polygon_svg | polygon_geokml | | 1 | 1 | 1 | Then result 0 has not attributes @@ -353,12 +352,11 @@ Feature: Search queries | 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 | - Then result addresses contain - | city | - | Rapid City | - + 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 |