]> git.openstreetmap.org Git - nominatim.git/commitdiff
more API tests for code coverage
authorSarah Hoffmann <lonvia@denofr.de>
Sun, 17 Sep 2017 21:30:08 +0000 (23:30 +0200)
committerSarah Hoffmann <lonvia@denofr.de>
Sun, 17 Sep 2017 21:30:08 +0000 (23:30 +0200)
Also fixes two minor issues related to structured queries.

lib/Geocode.php
test/bdd/api/search/params.feature
test/bdd/api/search/queries.feature
test/bdd/api/search/structured.feature

index b89337041efe78a3d8183ad1f7118d184fe23d04..5a8ff199119eefe496310ddd1116e275c9eaa402 100644 (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;
                             }
index bfc7cb152d5edf015920b3164c376ef872393589..c1318a62e85804782fec5237e49c2d905d96e405 100644 (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 |
index 638177fdf1a1bb3845a9fce161e893d06a39c1cc..dc30dc89f419e983d3801e02a6b9909bae4ef6e3 100644 (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
index c93603d6e00d57096bd9bcd8b67e9b6d5c5339e5..f45a1a6dcaac19bcd04764d08211ec88b0d06cf3 100644 (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 |