mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-02-16 15:47:58 +00:00
add functional tests
These are the tests that were formerly located at https://github.com/lonvia/test-nominatim
This commit is contained in:
172
tests/features/api/search_params.feature
Normal file
172
tests/features/api/search_params.feature
Normal file
@@ -0,0 +1,172 @@
|
||||
Feature: Search queries
|
||||
Testing different queries and parameters
|
||||
|
||||
Scenario: Simple XML search
|
||||
When sending xml search query "Schaan"
|
||||
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 not attributes address
|
||||
|
||||
Scenario: Simple JSON search
|
||||
When sending json search query "Vaduz"
|
||||
And result 0 has attributes place_id,licence,icon,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
|
||||
|
||||
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
|
||||
| country | Uruguay
|
||||
| country_code | uy
|
||||
|
||||
Scenario: XML search with addressdetails
|
||||
When sending xml search query "Inuvik" with address
|
||||
Then address of result 0 is
|
||||
| type | value
|
||||
| town | Inuvik
|
||||
| state | Northwest Territories
|
||||
| country | Canada
|
||||
| country_code | ca
|
||||
|
||||
Scenario: Address details with unknown class types
|
||||
When sending json search query "foobar, Essen" with address
|
||||
Then results contain
|
||||
| ID | class | type
|
||||
| 0 | leisure | hackerspace
|
||||
And result addresses contain
|
||||
| ID | address29
|
||||
| 0 | foobar
|
||||
And address of result 0 does not contain leisure,hackerspace
|
||||
|
||||
Scenario: Disabling deduplication
|
||||
When sending json search query "Oxford Street, London"
|
||||
Then there are no duplicates
|
||||
Given the request parameters
|
||||
| dedupe
|
||||
| 0
|
||||
When sending json search query "Oxford Street, London"
|
||||
Then there are duplicates
|
||||
|
||||
Scenario: Search with bounded viewbox in right area
|
||||
Given the request parameters
|
||||
| bounded | viewbox
|
||||
| 1 | -87.7,41.9,-87.57,41.85
|
||||
When sending json search query "restaurant" with address
|
||||
Then result addresses contain
|
||||
| ID | city
|
||||
| 0 | Chicago
|
||||
|
||||
Scenario: Search with bounded viewboxlbrt in right area
|
||||
Given the request parameters
|
||||
| bounded | viewboxlbrt
|
||||
| 1 | -87.7,41.85,-87.57,41.9
|
||||
When sending json search query "restaurant" with address
|
||||
Then result addresses contain
|
||||
| ID | city
|
||||
| 0 | Chicago
|
||||
|
||||
Scenario: No POI search with unbounded viewbox
|
||||
Given the request parameters
|
||||
| viewbox
|
||||
| -87.7,41.9,-87.57,41.85
|
||||
When sending json search query "restaurant"
|
||||
Then results contain
|
||||
| display_name
|
||||
| [^,]*(?i)restaurant.*
|
||||
|
||||
Scenario: bounded search remains within viewbox, even with no results
|
||||
Given the request parameters
|
||||
| bounded | viewbox
|
||||
| 1 | -5.662003,43.54285,-5.6563282,43.5403125
|
||||
When sending json search query "restaurant"
|
||||
Then less than 1 result is returned
|
||||
|
||||
Scenario: bounded search remains within viewbox with results
|
||||
Given the request parameters
|
||||
| bounded | viewbox
|
||||
| 1 | -5.662003,43.55,-5.6563282,43.5403125
|
||||
When sending json search query "restaurant"
|
||||
| lon | lat
|
||||
| >= -5.662003 | >= 43.5403125
|
||||
| <= -5.6563282| <= 43.55
|
||||
|
||||
Scenario: Prefer results within viewbox
|
||||
Given the request parameters
|
||||
| accept-language
|
||||
| en
|
||||
When sending json search query "royan" with address
|
||||
Then result addresses contain
|
||||
| ID | country
|
||||
| 0 | France
|
||||
Given the request parameters
|
||||
| accept-language | viewbox
|
||||
| en | 51.94,36.59,51.99,36.56
|
||||
When sending json search query "royan" with address
|
||||
Then result addresses contain
|
||||
| ID | country
|
||||
| 0 | Iran
|
||||
|
||||
Scenario: Overly large limit number for search results
|
||||
Given the request parameters
|
||||
| limit
|
||||
| 1000
|
||||
When sending json search query "Neustadt"
|
||||
Then at most 50 results are returned
|
||||
|
||||
Scenario: Limit number of search results
|
||||
Given the request parameters
|
||||
| limit
|
||||
| 4
|
||||
When sending json search query "Neustadt"
|
||||
Then exactly 4 results are returned
|
||||
|
||||
Scenario: Restrict to feature type country
|
||||
Given the request parameters
|
||||
| featureType
|
||||
| country
|
||||
When sending xml search query "Monaco"
|
||||
Then results contain
|
||||
| place_rank
|
||||
| 4
|
||||
|
||||
Scenario: Restrict to feature type state
|
||||
When sending xml search query "Berlin"
|
||||
Then results contain
|
||||
| ID | place_rank
|
||||
| 0 | 1[56]
|
||||
Given the request parameters
|
||||
| featureType
|
||||
| state
|
||||
When sending xml search query "Berlin"
|
||||
Then results contain
|
||||
| place_rank
|
||||
| [78]
|
||||
|
||||
Scenario: Restrict to feature type city
|
||||
Given the request parameters
|
||||
| featureType
|
||||
| city
|
||||
When sending xml search query "Monaco"
|
||||
Then results contain
|
||||
| place_rank
|
||||
| 1[56789]
|
||||
|
||||
|
||||
Scenario: Restrict to feature type settlement
|
||||
When sending json search query "Everest"
|
||||
Then results contain
|
||||
| ID | display_name
|
||||
| 0 | Mount Everest.*
|
||||
Given the request parameters
|
||||
| featureType
|
||||
| settlement
|
||||
When sending json search query "Everest"
|
||||
Then results contain
|
||||
| ID | display_name
|
||||
| 0 | Everest.*
|
||||
Reference in New Issue
Block a user