From a0de20e9bcfec679eb929f2bedfe2ac28db1590b Mon Sep 17 00:00:00 2001 From: Sarah Hoffmann Date: Sun, 17 Sep 2017 23:30:08 +0200 Subject: [PATCH] more API tests for code coverage Also fixes two minor issues related to structured queries. --- lib/Geocode.php | 8 +++--- test/bdd/api/search/params.feature | 40 ++++++++++++++++++++++++++ test/bdd/api/search/queries.feature | 9 ++++++ test/bdd/api/search/structured.feature | 11 +++++++ 4 files changed, 64 insertions(+), 4 deletions(-) diff --git a/lib/Geocode.php b/lib/Geocode.php index b8933704..5a8ff199 100644 --- a/lib/Geocode.php +++ b/lib/Geocode.php @@ -304,7 +304,7 @@ class Geocode $aViewbox = $oParams->getStringList('viewboxlbrt'); if ($aViewbox) { if (count($aViewbox) != 4) { - userError("Bad parmater 'viewbox'. Expected 4 coordinates."); + userError("Bad parmater 'viewboxlbrt'. Expected 4 coordinates."); } $this->setViewbox($aViewbox); } else { @@ -372,7 +372,7 @@ class Geocode $this->aAddressRankList = array(); $this->aStructuredQuery = array(); - $this->sAllowedTypesSQLList = ''; + $this->sAllowedTypesSQLList = False; $this->loadStructuredAddressElement($sAmenity, 'amenity', 26, 30, false); $this->loadStructuredAddressElement($sStreet, 'street', 26, 30, false); @@ -385,7 +385,7 @@ class Geocode if (sizeof($this->aStructuredQuery) > 0) { $this->sQuery = join(', ', $this->aStructuredQuery); if ($this->iMaxAddressRank < 30) { - $sAllowedTypesSQLList = '(\'place\',\'boundary\')'; + $this->sAllowedTypesSQLList = '(\'place\',\'boundary\')'; } } } @@ -1403,7 +1403,7 @@ class Geocode if ($aSearch['sCountryCode']) $aTerms[] = "country_code = '".pg_escape_string($aSearch['sCountryCode'])."'"; if ($aSearch['sHouseNumber']) { $aTerms[] = "address_rank between 16 and 27"; - } else { + } elseif (!$aSearch['sClass'] || $aSearch['sOperator'] == 'name') { if ($this->iMinAddressRank > 0) { $aTerms[] = "address_rank >= ".$this->iMinAddressRank; } diff --git a/test/bdd/api/search/params.feature b/test/bdd/api/search/params.feature index bfc7cb15..c1318a62 100644 --- a/test/bdd/api/search/params.feature +++ b/test/bdd/api/search/params.feature @@ -115,6 +115,38 @@ Feature: Search queries | ID | state | | 0 | Florida | + 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 | + | | + 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 | + | | + 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" | limit | @@ -298,3 +330,11 @@ Feature: Search queries | xml | geojson | | json | geojson | | jsonv2 | geojson | + + 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 | diff --git a/test/bdd/api/search/queries.feature b/test/bdd/api/search/queries.feature index 638177fd..dc30dc89 100644 --- a/test/bdd/api/search/queries.feature +++ b/test/bdd/api/search/queries.feature @@ -57,6 +57,15 @@ Feature: Search queries | 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 | + # https://trac.openstreetmap.org/ticket/5094 Scenario: housenumbers are ordered by complete match first When sending json search query "6395 geminis, montevideo" with address diff --git a/test/bdd/api/search/structured.feature b/test/bdd/api/search/structured.feature index c93603d6..f45a1a6d 100644 --- a/test/bdd/api/search/structured.feature +++ b/test/bdd/api/search/structured.feature @@ -31,6 +31,17 @@ Feature: Structured search queries | attr | value | | querystring | Old Palace Road, GU2 7UP, United Kingdom | + Scenario: Amenity, city + When sending json search query "" with address + | city | amenity | + | Vaduz | church | + Then result addresses contain + | country | + | Liechtenstein | + And results contain + | class | type | + | amenity | place_of_worship | + Scenario: gihub #176 When sending json search query "" with address | city | -- 2.39.5