fix syntax errors and update tests

Some of the tests with bad parameters now return a HTTP 400.
This commit is contained in:
Sarah Hoffmann
2016-06-12 22:33:37 +02:00
parent 033b9590bd
commit 348a3082c9
8 changed files with 24 additions and 27 deletions

View File

@@ -514,7 +514,7 @@
$sSQL .= " order by importance desc"; $sSQL .= " order by importance desc";
if (CONST_Debug) { echo "<hr>"; var_dump($sSQL); } if (CONST_Debug) { echo "<hr>"; var_dump($sSQL); }
$aSearchResults = chksql($this->oDB->getAll($sSQL); $aSearchResults = chksql($this->oDB->getAll($sSQL),
"Could not get details for place."); "Could not get details for place.");
return $aSearchResults; return $aSearchResults;
@@ -879,7 +879,7 @@
$sViewboxCentreSQL .= ")'::geometry,4326)"; $sViewboxCentreSQL .= ")'::geometry,4326)";
$sSQL = "select st_buffer(".$sViewboxCentreSQL.",".(float)($_GET['routewidth']/69).")"; $sSQL = "select st_buffer(".$sViewboxCentreSQL.",".(float)($_GET['routewidth']/69).")";
$this->sViewboxSmallSQL = chksql($this->oDB->getOne($sSQL); $this->sViewboxSmallSQL = chksql($this->oDB->getOne($sSQL),
"Could not get small viewbox."); "Could not get small viewbox.");
$this->sViewboxSmallSQL = "'".$this->sViewboxSmallSQL."'::geometry"; $this->sViewboxSmallSQL = "'".$this->sViewboxSmallSQL."'::geometry";
@@ -1414,9 +1414,8 @@
$sSQL .= " limit ".$this->iLimit; $sSQL .= " limit ".$this->iLimit;
if (CONST_Debug) { var_dump($sSQL); } if (CONST_Debug) { var_dump($sSQL); }
$aViewBoxPlaceIDs = chksql($this->oDB->getAll($sSQL)); $aViewBoxPlaceIDs = chksql($this->oDB->getAll($sSQL),
"Could not get places for search terms."); "Could not get places for search terms.");
}
//var_dump($aViewBoxPlaceIDs); //var_dump($aViewBoxPlaceIDs);
// Did we have an viewbox matches? // Did we have an viewbox matches?
$aPlaceIDs = array(); $aPlaceIDs = array();
@@ -1638,11 +1637,6 @@
} }
if (PEAR::IsError($aPlaceIDs))
{
failInternalError("Could not get place IDs from tokens." ,$sSQL, $aPlaceIDs);
}
if (CONST_Debug) { echo "<br><b>Place IDs:</b> "; var_Dump($aPlaceIDs); } if (CONST_Debug) { echo "<br><b>Place IDs:</b> "; var_Dump($aPlaceIDs); }
foreach($aPlaceIDs as $iPlaceID) foreach($aPlaceIDs as $iPlaceID)

View File

@@ -11,9 +11,6 @@
function osmMapUrl($aFeature) function osmMapUrl($aFeature)
{ {
$sLon = $aFeature['error_x'];
$sLat = $aFeature['error_y'];
if (isset($sFeature['error_x']) && isset($sFeature['error_y'])) if (isset($sFeature['error_x']) && isset($sFeature['error_y']))
{ {
$sBaseUrl = '//www.openstreetmap.org/'; $sBaseUrl = '//www.openstreetmap.org/';
@@ -23,8 +20,7 @@
$sBaseUrl += $sOSMType.'/'.$aFeature['osm_id']; $sBaseUrl += $sOSMType.'/'.$aFeature['osm_id'];
} }
return '<a href="'.$sBaseUrl.'?mlat='.$sLat.'&mlon='.$sLon.'">view on osm.org</a>'; return '<a href="'.$sBaseUrl.'?mlat='.$aFeature['error_y'].'&mlon='.$aFeature['error_x'].'">view on osm.org</a>';
}
} }
return ''; return '';
} }

View File

@@ -100,7 +100,7 @@ INTERNALFAIL;
{ {
if (!isset($_GET[$sName])) return $bDefault; if (!isset($_GET[$sName])) return $bDefault;
if (!preg_match('/^[+-][0-9]+$/', $_GET[$sName])) if (!preg_match('/^[+-]?[0-9]+$/', $_GET[$sName]))
{ {
userError("Integer number expected for parameter '$sName'"); userError("Integer number expected for parameter '$sName'");
} }

View File

@@ -99,35 +99,35 @@ Feature: Simple Reverse Tests
| lat | lat
| 51.51 | 51.51
When sending an API call reverse When sending an API call reverse
Then exactly 0 results are returned Then a HTTP 400 is returned
Scenario: Missing lat parameter Scenario: Missing lat parameter
Given the request parameters Given the request parameters
| lon | lon
| -79.39114 | -79.39114
When sending an API call reverse When sending an API call reverse
Then exactly 0 results are returned Then a HTTP 400 is returned
Scenario: Missing osm_id parameter Scenario: Missing osm_id parameter
Given the request parameters Given the request parameters
| osm_type | osm_type
| N | N
When sending an API call reverse When sending an API call reverse
Then exactly 0 results are returned Then a HTTP 400 is returned
Scenario: Missing osm_type parameter Scenario: Missing osm_type parameter
Given the request parameters Given the request parameters
| osm_id | osm_id
| 3498564 | 3498564
When sending an API call reverse When sending an API call reverse
Then exactly 0 results are returned Then a HTTP 400 is returned
Scenario Outline: Bad format for lat or lon Scenario Outline: Bad format for lat or lon
Given the request parameters Given the request parameters
| lat | lon | | lat | lon |
| <lat> | <lon> | | <lat> | <lon> |
When sending an API call reverse When sending an API call reverse
Then exactly 0 results are returned Then a HTTP 400 is returned
Examples: Examples:
| lat | lon | lat | lon
@@ -137,4 +137,4 @@ Feature: Simple Reverse Tests
| 48.966.0 | 8.4482 | 48.966.0 | 8.4482
| 48.966 | 8.448.2 | 48.966 | 8.448.2
| Nan | 8.448 | Nan | 8.448
| 48.966 | Nan | 48.966 | Nan

View File

@@ -187,7 +187,6 @@ Feature: Search queries
| 0.0 | 0.0
| 0.5 | 0.5
| 999 | 999
| nan
Scenario Outline: Search with polygon threshold (xml) Scenario Outline: Search with polygon threshold (xml)
Given the request parameters Given the request parameters
@@ -203,7 +202,14 @@ Feature: Search queries
| 0.0 | 0.0
| 0.5 | 0.5
| 999 | 999
| nan
Scenario Outline: Search with invalid polygon threshold (xml)
Given the request parameters
| polygon_geojson | polygon_threshold
| 1 | <th>
When sending xml search query "switzerland"
Then a HTTP 400 is returned
Scenario Outline: Search with extratags Scenario Outline: Search with extratags
Given the request parameters Given the request parameters

View File

@@ -61,7 +61,7 @@ Feature: Simple Tests
| format | format
| fd$# | fd$#
When sending search query "Berlin" When sending search query "Berlin"
Then the result is valid html Then a HTTP 400 is returned
Scenario Outline: Simple Searches Scenario Outline: Simple Searches
When sending search query "<query>" When sending search query "<query>"

View File

@@ -5,6 +5,7 @@
require_once(CONST_BasePath.'/lib/init-website.php'); require_once(CONST_BasePath.'/lib/init-website.php');
require_once(CONST_BasePath.'/lib/log.php'); require_once(CONST_BasePath.'/lib/log.php');
require_once(CONST_BasePath.'/lib/PlaceLookup.php'); require_once(CONST_BasePath.'/lib/PlaceLookup.php');
require_once(CONST_BasePath.'/lib/output.php');
if (strpos(CONST_BulkUserIPs, ','.$_SERVER["REMOTE_ADDR"].',') !== false) if (strpos(CONST_BulkUserIPs, ','.$_SERVER["REMOTE_ADDR"].',') !== false)
{ {
@@ -38,7 +39,7 @@
$oPlaceLookup->setIncludeExtraTags(getParamBool('extratags', false)); $oPlaceLookup->setIncludeExtraTags(getParamBool('extratags', false));
$oPlaceLookup->setIncludeNameDetails(getParamBool('namedetails', false)); $oPlaceLookup->setIncludeNameDetails(getParamBool('namedetails', false));
$aOsmIds = explode(',', $getParamString('osm_ids', '')); $aOsmIds = explode(',', getParamString('osm_ids', ''));
if (count($aOsmIds) > CONST_Places_Max_ID_count) if (count($aOsmIds) > CONST_Places_Max_ID_count)
{ {

View File

@@ -56,8 +56,8 @@
$hLog = logStart($oDB, 'reverse', $_SERVER['QUERY_STRING'], $aLangPrefOrder); $hLog = logStart($oDB, 'reverse', $_SERVER['QUERY_STRING'], $aLangPrefOrder);
$sOsmType = getParamSet('osmtype', array('N', 'W', 'R')); $sOsmType = getParamSet('osm_type', array('N', 'W', 'R'));
$iOsmId = getParamInt('osmid', -1); $iOsmId = getParamInt('osm_id', -1);
$fLat = getParamFloat('lat'); $fLat = getParamFloat('lat');
$fLon = getParamFloat('lon'); $fLon = getParamFloat('lon');
if ($sOsmType && $iOsmId > 0) if ($sOsmType && $iOsmId > 0)