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
And result 0 has bounding box in 46.5,47.5,9,10
+ Scenario: Unknown formats returns a user error
+ When sending search query "Vaduz"
+ | format |
+ | x45 |
+ Then a HTTP 400 is returned
+
Scenario: JSON search with addressdetails
When sending json search query "Montevideo" with address
Then address of result 0 is
| type | value |
| city | Montevideo |
| state | Montevideo |
- | postcode | 11000 |
| country | Uruguay |
| country_code | uy |
| en |
Then results contain
| display_name |
- | Plei Ya Rê, Kon Tum province, Vietnam |
+ | Plei Ya Rê, Vietnam |
Scenario: Address details with unknown class types
When sending json search query "Hundeauslauf, Hamburg" with address
| ID | class | type |
| 0 | leisure | dog_park |
And result addresses contain
- | ID | address29 |
+ | ID | leisure |
| 0 | Hundeauslauf |
- And address of result 0 has no types leisure,dog_park
Scenario: Disabling deduplication
When sending json search query "Sievekingsallee, Hamburg"
| city |
| Montevideo |
+ 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 |
+ 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 |
| ^[^,]*[Rr]estaurant.* |
Scenario: bounded search remains within viewbox, even with no results
- When sending json search query "restaurant"
+ When sending json search query "[restaurant]"
| bounded | viewbox |
| 1 | 43.5403125,-5.6563282,43.54285,-5.662003 |
Then less than 1 result is returned
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
+ Then result has centroid in 53.54500,53.61634,9.93027,10.10073
Scenario: Prefer results within viewbox
When sending json search query "25 de Mayo" with address
| en |
Then result addresses contain
| ID | state |
- | 0 | Salto |
+ | 0 | Florida |
When sending json search query "25 de Mayo" with address
| accept-language | viewbox |
- | en | -56.35879,-34.18330,-56.31618,-34.20815 |
+ | en | -57.95468,-31.39261,-57.94741,-31.39490 |
Then result addresses contain
| ID | state |
- | 0 | Florida |
+ | 0 | Salto |
+
+ Scenario: viewboxes cannot be points
+ When sending json search query "foo"
+ | viewbox |
+ | 1.01,34.6,1.01,34.6 |
+ Then a HTTP 400 is returned
+
+ Scenario Outline: viewbox must have four coordinate numbers
+ When sending json search query "foo"
+ | viewbox |
+ | <viewbox> |
+ Then a HTTP 400 is returned
+
+ Examples:
+ | viewbox |
+ | 34 |
+ | 0.003,-84.4 |
+ | 5.2,4.5542,12.4 |
+ | 23.1,-6,0.11,44.2,9.1 |
+
+ Scenario Outline: viewboxlbrt must have four coordinate numbers
+ When sending json search query "foo"
+ | viewboxlbrt |
+ | <viewbox> |
+ Then a HTTP 400 is returned
+
+ Examples:
+ | viewbox |
+ | 34 |
+ | 0.003,-84.4 |
+ | 5.2,4.5542,12.4 |
+ | 23.1,-6,0.11,44.2,9.1 |
Scenario: Overly large limit number for search results
When sending json search query "restaurant"
| 4 |
Then exactly 4 results are returned
+ Scenario: Limit parameter must be a number
+ When sending search query "Blue Laguna"
+ | limit |
+ | ); |
+ Then a HTTP 400 is returned
+
Scenario: Restrict to feature type country
When sending xml search query "Uruguay"
Then results contain
| xml |
| json |
| jsonv2 |
+ | geojson |
Scenario Outline: Search with namedetails
When sending <format> search query "Hauptstr"
| xml |
| json |
| jsonv2 |
+ | geojson |
Scenario Outline: Search result with contains TEXT geometry
When sending <format> search query "Highmore"
| json | geotext |
| jsonv2 | geotext |
- Scenario Outline: Search result contains polygon-as-points geometry
- When sending <format> search query "Highmore"
- | polygon |
- | 1 |
- Then result has attributes <response_attribute>
-
- Examples:
- | format | response_attribute |
- | xml | polygonpoints |
- | json | polygonpoints |
- | jsonv2 | polygonpoints |
-
Scenario Outline: Search result contains SVG geometry
When sending <format> search query "Highmore"
| polygon_svg |
| 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 "Highmore"
+ | polygon_text | polygon_svg | polygon_geokml |
+ | 1 | 1 | 1 |
+ Then result 0 has not attributes <response_attribute>
+
+ 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 |
+ Then result addresses contain
+ | city |
+ | Rapid City |
+
+