more API tests for code coverage

Also fixes two minor issues related to structured queries.
This commit is contained in:
Sarah Hoffmann
2017-09-17 23:30:08 +02:00
parent 2dbf58d461
commit a0de20e9bc
4 changed files with 64 additions and 4 deletions

View File

@@ -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;
}

View File

@@ -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 |
| <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"
| 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 |

View File

@@ -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

View File

@@ -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 |