From 88374c2522fd30967ce1e0460cb696d68a817f67 Mon Sep 17 00:00:00 2001 From: Sarah Hoffmann Date: Mon, 20 Aug 2018 23:05:49 +0200 Subject: [PATCH] improve test coverage for reverse and debug output --- lib/DebugHtml.php | 2 ++ test/bdd/api/reverse/queries.feature | 16 ++++++++++++++++ test/bdd/api/search/simple.feature | 13 ++++++++++++- test/bdd/steps/queries.py | 14 +++++++++----- 4 files changed, 39 insertions(+), 6 deletions(-) diff --git a/lib/DebugHtml.php b/lib/DebugHtml.php index a600fae5..98da8794 100644 --- a/lib/DebugHtml.php +++ b/lib/DebugHtml.php @@ -155,6 +155,8 @@ class Debug } } elseif (is_object($mVar) && method_exists($mVar, 'debugInfo')) { Debug::outputVar($mVar->debugInfo(), $sPreNL); + } elseif (is_a($mVar, 'stdClass')) { + Debug::outputVar(json_decode(json_encode($mVar), true), $sPreNL); } else { Debug::outputSimpleVar($mVar); } diff --git a/test/bdd/api/reverse/queries.feature b/test/bdd/api/reverse/queries.feature index 67e4676c..88f3bccb 100644 --- a/test/bdd/api/reverse/queries.feature +++ b/test/bdd/api/reverse/queries.feature @@ -75,3 +75,19 @@ Feature: Reverse geocoding | 2 | | 3 | | 4 | + + Scenario: When on a street, the closest interpolation is shown + When sending jsonv2 reverse coordinates -33.2309430210215,-54.38126470020989 + | zoom | + | 18 | + Then results contain + | display_name | + | 1429, Andrés Areguati, Treinta y Tres, 33000, Uruguay | + + Scenario: When on a street with zoom 18, the closest housenumber is returned + When sending jsonv2 reverse coordinates 53.551826690895226,9.885258475318201 + | zoom | + | 18 | + Then result addresses contain + | house_number | + | 33 | diff --git a/test/bdd/api/search/simple.feature b/test/bdd/api/search/simple.feature index 5cd80a83..ca441258 100644 --- a/test/bdd/api/search/simple.feature +++ b/test/bdd/api/search/simple.feature @@ -233,6 +233,17 @@ Feature: Simple Tests When sending xml search query "Vaduz" | countrycodes | | pl,1,,invalid,undefined,%3Cb%3E,bo,, | - Then result header contains + Then result header contains | attr | value | | more_url | .*&countrycodes=pl%2Cbo&.* | + + Scenario Outline: Search with debug prints valid HTML + When sending html search query "" + | extratags | addressdetails | namedetails | debug | + | 1 | 1 | 1 | 1 | + Then the result is valid html + + Examples: + | query | + | 10, Alvierweg, 9490, Vaduz | + | Hamburg | diff --git a/test/bdd/steps/queries.py b/test/bdd/steps/queries.py index fd13dd13..df34b5cc 100644 --- a/test/bdd/steps/queries.py +++ b/test/bdd/steps/queries.py @@ -122,13 +122,17 @@ class SearchResponse(GenericResponse): options={'char-encoding' : 'utf8'}) #eq_(len(errors), 0 , "Errors found in HTML document:\n%s" % errors) + self.result = [] b = content.find('nominatim_results =') e = content.find('') - content = content[b:e] - b = content.find('[') - e = content.rfind(']') - - self.result = json.JSONDecoder(object_pairs_hook=OrderedDict).decode(content[b:e+1]) + if b >= 0 and e >= 0: + content = content[b:e] + + b = content.find('[') + e = content.rfind(']') + if b >= 0 and e >= 0: + self.result = json.JSONDecoder(object_pairs_hook=OrderedDict)\ + .decode(content[b:e+1]) def parse_xml(self): et = ET.fromstring(self.page) -- 2.43.2