diff --git a/lib/geocoder/lookups/google.rb b/lib/geocoder/lookups/google.rb index 6ed7fa62ea24dddf7e4d9ea797ba608b4a9ee408..5f5e8fe69fb6f12d7bd627c69c0433086d906131 100644 --- a/lib/geocoder/lookups/google.rb +++ b/lib/geocoder/lookups/google.rb @@ -44,7 +44,7 @@ module Geocoder::Lookup params[:region] = region end unless (components = query.options[:components]).nil? - params[:components] = components.join("|") + params[:components] = components.is_a?(Array) ? components.join("|") : components end params end diff --git a/test/services_test.rb b/test/services_test.rb index 6f2a86dd0f33fb56ecebd1ee99e8b73d1a56976f..2f537b6f105778cf5c3c25d51933982e0d1a189f 100644 --- a/test/services_test.rb +++ b/test/services_test.rb @@ -65,7 +65,17 @@ class ServicesTest < Test::Unit::TestCase assert_match /region=gb/, url end - def test_google_query_url_contains_properly_formatted_components + def test_google_query_url_contains_components_when_given_as_string + lookup = Geocoder::Lookup::Google.new + url = lookup.send(:query_url, Geocoder::Query.new( + "Some Intersection", + :components => "locality:ES" + )) + formatted = "components=" + CGI.escape("locality:ES") + assert url.include?(formatted), "Expected #{formatted} to be included in #{url}" + end + + def test_google_query_url_contains_components_when_given_as_array lookup = Geocoder::Lookup::Google.new url = lookup.send(:query_url, Geocoder::Query.new( "Some Intersection",