From 54b6484a1672d6e1d3d308a039412907acfff13f Mon Sep 17 00:00:00 2001 From: Huiming Teo <teohuiming@gmail.com> Date: Mon, 5 Sep 2016 14:23:48 +0800 Subject: [PATCH] Return valid result when searching for loopback address using ipinfo.io --- lib/geocoder/lookups/ipinfo_io.rb | 9 ++++++++- test/unit/lookups/ipinfo_io_test.rb | 8 ++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/lib/geocoder/lookups/ipinfo_io.rb b/lib/geocoder/lookups/ipinfo_io.rb index 2c126b11..b7966d46 100644 --- a/lib/geocoder/lookups/ipinfo_io.rb +++ b/lib/geocoder/lookups/ipinfo_io.rb @@ -42,7 +42,14 @@ module Geocoder::Lookup end def reserved_result(ip) - {"message" => "Input string is not a valid IP address", "code" => 401} + { + "ip" => ip, + "city" => "", + "region" => "", + "country" => "", + "loc" => "0,0", + "postal" => "" + } end def query_url_params(query) diff --git a/test/unit/lookups/ipinfo_io_test.rb b/test/unit/lookups/ipinfo_io_test.rb index 379f3838..60b3ca31 100644 --- a/test/unit/lookups/ipinfo_io_test.rb +++ b/test/unit/lookups/ipinfo_io_test.rb @@ -14,4 +14,12 @@ class IpinfoIoTest < GeocoderTestCase query = Geocoder::Query.new("8.8.8.8") assert_match(/^https:/, query.url) end + + def test_ipinfo_io_lookup_loopback_address + Geocoder.configure(:ip_lookup => :ipinfo_io, :use_https => true) + result = Geocoder.search("127.0.0.1").first + assert_equal 0.0, result.longitude + assert_equal 0.0, result.latitude + assert_equal "127.0.0.1", result.ip + end end -- GitLab