From 3cfd2a20191cb87281061d14ad2b5aa1d7e29058 Mon Sep 17 00:00:00 2001 From: Robert Schaefer <robert.schaefer@student.hpi.de> Date: Wed, 10 Jan 2018 23:30:48 +0100 Subject: [PATCH] Proper error handling Remove silly check for HTML tags Add test case for invalid json --- lib/geocoder/lookups/ipdata_co.rb | 4 ---- test/fixtures/ipdata_co_8_8_8 | 1 + test/unit/lookups/ipdata_co_test.rb | 8 ++++++++ 3 files changed, 9 insertions(+), 4 deletions(-) create mode 100644 test/fixtures/ipdata_co_8_8_8 diff --git a/lib/geocoder/lookups/ipdata_co.rb b/lib/geocoder/lookups/ipdata_co.rb index f1322a2c..a5fa295c 100644 --- a/lib/geocoder/lookups/ipdata_co.rb +++ b/lib/geocoder/lookups/ipdata_co.rb @@ -18,10 +18,6 @@ module Geocoder::Lookup private # --------------------------------------------------------------- - def parse_raw_data(raw_data) - raw_data.match(/^<html><title>404/) ? nil : super(raw_data) - end - def results(query) # don't look up a loopback address, just return the stored result return [reserved_result(query.text)] if query.loopback_ip_address? diff --git a/test/fixtures/ipdata_co_8_8_8 b/test/fixtures/ipdata_co_8_8_8 new file mode 100644 index 00000000..2462e127 --- /dev/null +++ b/test/fixtures/ipdata_co_8_8_8 @@ -0,0 +1 @@ +8.8.8 does not appear to be an IPv4 or IPv6 address \ No newline at end of file diff --git a/test/unit/lookups/ipdata_co_test.rb b/test/unit/lookups/ipdata_co_test.rb index fcd98f80..3811a13c 100644 --- a/test/unit/lookups/ipdata_co_test.rb +++ b/test/unit/lookups/ipdata_co_test.rb @@ -12,8 +12,16 @@ class IpdataCoTest < GeocoderTestCase assert result.is_a?(Geocoder::Result::IpdataCo) end + def test_invalid_json + Geocoder.configure(:always_raise => [Geocoder::ResponseParseError]) + assert_raise Geocoder::ResponseParseError do + Geocoder.search("8.8.8", ip_address: true) + end + end + def test_result_components result = Geocoder.search("74.200.247.59").first assert_equal "Jersey City, NJ 07302, United States", result.address end + end -- GitLab